⼀⽂带你⼊门MySQL8(上)1. 下载安装,设置登录密码******(⾃⼰定的),设置服务器名称MySQLykp(⾃⼰定的),配置环境变量
2.启动MySQL服务器 (默认是⾃动开启状态):
net start MySQLykp
关闭:匿名内部类怎么写
net stop MySQLykp
查看数据库版本:
mysql -V
3. 连接MySQL:
直接CMD进⼊,需要输⼊命令⾏
mysql -h hostname|hostip -P port -u username -p [databasename] -e 'sql语句'
hostname:主机名;
hostip:主机ip;
django网站模板port:数据库端⼝号,默认3306;
username:⽤户名;
-p 会提⽰输⼊密码,或可直接加密码(中间不能有空格);
databasename:数据库名;
退出数据库
exit                --或者 \q
3.1 获取当前数据库的版本号和当前⽇期
select version(),current_date;
3.2 出服务器上当前存在哪些数据库
show databases;
3.3 使⽤某⼀个数据库
use 数据库名;
3.4 查看数据库下的所有表名
show tables;
3.5 显⽰数据表的字段,字段类型,主键信息,是否为NULL,默认值等其他信息,两种⽅法SHOW COLUNNS FROM 数据表;
DESC 数据表;
3.6 查看创建表的sql语句
show create table 数据表;
3.7 显⽰当前操作库
select database();
3.8 查看当前数据库使⽤的字符集和排序⽅式
select @@character_set_database,@@collation_database;
注:MySQL8 默认使⽤的字符集为utf8mb4,默认的排列⽅式为utf8mb4_0900_ai_ci
3.9 查看某数据表的字符集和排序
show table status like ‘数据表”;
4. 创建数据
create database sqlykp                        --创建数据库
default character set utf8mb4                --声明字符集
default collate utf8mb4_0900_ai_ci;          --声明排序⽅式
5. 创建表
create table customers(
客户id int not null auto_increment,
姓名 varchar(18) default nul1,
地址 varchar(50) default null,
城市 varchar(28) default null,
邮编 char(6) default null,
省份 varchar(20) default null,
primary key (客户id)
)default character set utf8mb4 default collate utf8mb4_0900_ai_ci;
6. 插⼊数据
6.1 从其他⽂本导⼊数据库数据
load data local infile 'd:\\' into table pet [fields terminated by '\t' lines terminated by "\r\n"];
注:将中的数据缩⼊到数据库表pet中。
默认情况下,txt⽂件中每⼀⾏数据以tab键做分割(fields terminated by).
⾏尾是换⾏符(lines terminated by)(win10是'\r\n',mac是'\r').
6.2 ⼿动插⼊数据
insert into tablename () values ();
mysql查看所有存储过程7.查询
7.1 从数据表中查某⼀列
select 姓名 from customers;
7.2 从数据表中查所有列
select * from customers;
7.3 去重查询    --distinct关键字⽤来去重
select distinct 地址 from customers;
7.4 in查询
select 姓名 from students where 班号 in(1,2);        --in 或者 not in
7.5 between and 查询(包前包后)
select 姓名 from students where 班号 [not] between 2 and 3;    --[不在]2和3之间
7.6 模糊查询
select * from pet where [not] name like 'f%';    --name[不]以f开头的
select * from pet where [not] name like '_f%';    --第⼆个字母是f的,'_'为通配符,占⼀位
select * from pet where [not] name like '%f';    --以f结尾的
select * from pet where [not] name like '%f%';    --包含f的,包括开头、中间和结尾
select * from pet where regexp_like(name,'f','c');--查name以f开头的所有⾏,后⾯的'c'代表区分⼤⼩写,正则查询
7.7 结果排序
select name,birth from pet order by birth [desc];  --order by 正向[desc 反向]排序,desc只影响紧邻它的值,null可理解为最⼩值
7.8 简单分组查询
settings安卓select 城市 from customers group by 城市;  --group by所针对的字段必须是重复的,分组才有意义
7.9 统计分组查询
select count(*) as 数量,group_concat(姓名) from students group by 班号;--count()统计数量,group_concat()显⽰每个分组中的字段    7.10 查询指定⾏数
select * from customers limit 3;        --从数据表中查前3列
select * from customers limit 2,4;      --从数据表的第3列(下标为2)向下查2⾏
8.联合查询
8.1 内连接查询
select s.姓名,s.性別,s.年龄,c.班级 from students s,class c where s.班号=c.班号;
select s.姓名,s.性别,s.年龄,c.班级 from students s join class c on s.班号=c.班号;
8.2 外连接查询
select from tablename1 left/right/full [outer] join tablename2 on condition;  --左|右|全连接
8.3 合并查询
select from tablename1 union|union all select from tablename2;  --选择的列数要相等
8.4 ⼦查询
带⽐较运算符的、带关键字in的、带关键字any或all的、带关键字exists的
9. 删除表内容
delete from tablename [where condition];    --按⾏删,不标明条件则代表所有⾏
9.1 删除表(删除不带外键的普通表)
drop table tablename;
9.2 删除表内所有内容还可以⽤ truncate
10.更新表内容(按⾏更新)
update tablename set column1=value3 where [条件:指定某⼀⾏或⼏⾏]
10.1 修改表(属性)
10.1.1 修改表名
alter table oldtablename rename[to] newtablename;  --将旧表名换为新表名
10.1.2 增加字段
alter table tablename add propname propType;  --在表的最后位置插⼊⼀个新的字段proename,后接属性propType
alter table tablename add propname propType first;  --在表的开头(first)位置插⼊新学段
alter table tablename add propname propType after pNameOld;  --在原有字段pNameOld后⾯插⼊新字段
10.1.3 删除字段
alter table tablename drop propname;  --删除表中的字段propname
10.1.4 修改字段
alter table tablename modify propname propType;  --更新字段propname的属性为propType
alter table tablename change pNameOld pNameNew pTypeOld; --将旧字段名改为新字段名,沿⽤旧的属性
alter table tablename change pNameOld pNameNew pTypeNew; --将旧字段名改为新字段名,改⽤新的属性。更改字段名,后⾯必须注明新字段名的属性,⽆论新旧alter table tablename modify pName1 propType FIRST|AFTER pName2; --调整pName1字段的位置到第⼀个,或者在pName2之后
11. ⽇期相关的⼏个函数
函数说明
curdate()获取当前⽇期,返回格式yyyy-mm-dd
curtime()获取当前时间,返回格式为 hh-mm-ss
now()获取当前⽇期+时间,返回格式为yyyy-mm-dd hh-mm-ss
dayname(date)date是星期⼏
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)计算datetime_expr2-datetime_expr1的差值,返回值以unit为单位,可选项为
year/month/day/hour/minute/second
month(参数)/year(参数)/dayofmonth(参数)参数是⼀个时间⽇期。分别⽤来提取其中的⽉份/年份/⽇期
mod(num1,num2)如果num1=num2,则返回0;如果num1 != num2,则返回num1
select name,timestampdiff(year,'2028-18-12',surdate()) as age from pet;    --可⽤来计算年龄
12. NULL 和 NOT NULL
伦勃朗的三角光是什么光
"In MySQL, 0 or NULL means false and anything else means true. The default truth value from a boolean operation is 1."
--摘⾃官⽅⽂档
13. 操作表的约束
app源码13.1 ⾮空约束(NOT NULL,NK)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。