连接 MySQL window+R 输入cmd 回车
输入 mysql -u root -p 命令,回车,然后输入 MySQL 的密码再回车,就可以连接上 MySQL 了。
一.数据库
1.查看所有数据库 show databases;
2.创建数据库 create database mm;
3.删除数据库 drop database mm;
4.使用这个数据库 use mm;
二.表
1.. 查看所有的表 show tables;
2..创建一个表
Schedule表
ScheduleId 整数 主键,自增,不为空
Date 日期类型datetime 不为空
Time 时间类型time 不为空
AircraftId 整数 不为空,外键,引用Aircraft表中的AircraftId
EconomyPrice 小数,长度10,保留两位小数decimal(10,2) 不为空
FlightNumber 字符串,长度20 不为空
Schedule rename mm;(rename table mm to Schedule;)
4..查看表的结构(属性) desc Schedule;
三.表的结构
1..添加字段 alter table Schedule add address varchar(50) after ScheduleId;
2..删除字段 alter table Schedule drop address;
3.. 更改字段和字段属性
为Schedule表修改date列,修改列名及数据类型为 college varchar(30)
alter table Schedule change date college varchar(30);
4.只修改字段属性
为Schedule表college列修改为varchar(10),非空,默认值为'大学';,
alter table Schedule modify college varchar(10) not null default “大学”;
5..删除默认值
为course表中"教材"列表删除默认值
alter table Schedule alter college drop default;
四.表的数据
1.增加数据
insert into student (Sno,Sname,Ssex,Sage,Sdept)
values
(9512101,'李勇','男',19,'计算机系');
2.删除数据 delete from student where Sno='9512102';
3.更改数据 update student set Sage=Sage+1;
4.查询数据 select * from student;
A.简单查询
①where条件实际是一个条件表达式
②表达式常用运算符= 、<>(不等于,!=)、>、<、>=、<=
③in 指定多个值,后跟数组(数组用圆括号,其中多组值逗号隔开)
示例:select * from student where id in (1,2);
in对应的是数组,可以嵌套查询sql子集
示例:select * from student where id in (select id from test);
④.between
between操作符选取介于两个值之间的数据范围内的值。可以表示数字和时间,包括边界值
select * from student where id between 5 and 7;
select * from schedule where date between '2020=09-21 23:00:00' and '2020-09-22 18:00:00';
⑤and运算符(并且的逻辑关系,多个同时满足条件用and相连)
示例:select * from student where name ='lifang' or sex ='M';
⑥or运算符(或者的逻辑关系,用or相连)
示例:select * from student where id =1 or id =2;
⑦not(对立面)
示例:select * from student where id not in (1,2);
select * from schedule where date not between '2020=09-21 ' and '2020-09-22 ';
⑧.like 模糊查询(1)%替代 0 个或多个字符
like %张% 包含张字的所有结果集
like %张 张字在末位
like 张% 张字在首位
(2)_替代一个字符(中文要占两个字节)
_张 表示关键字在第二位
⑨.null作为条件
is null 为空 is not null不为空10.别名
⑩通过as的方式指定列头信息 select Sno as '编号' from student;
⑪order by
排序关键字:asc升序,desc降序
如果order by 字段1 排序关键字1,字段2 排序关键字2
其意味着字段1为主排序字段
⑫limit
limit a,b a代表起始数据的序号,b代表从起始数据开始显示多少条数据
例如:limit 0,4 显示前四条数据 limit 2,3显示第3条到第5条数据
limit b是limit 0,b简写
⑬distinct
distinct 关键词用于返回唯一不同的值
五. 键
1.添加主键 alter table n add primary key (id);
2.删除主键 alter table n drop primary key;
3.添加外键
为n表添加外键约束,分别是约束名为fk_sno : n表中字段Sno引用Student的Sno
alter table n add constraint fk_sno foreign key(Sno) REFERENCES Student(Sno);
4.删除外键 alter table n drop foreign key fk_sno;
5.添加索引 alter table n add index(age);
6.删除索引 alter index age on n;
六.连接
内连接 inner join select A.字段,B.字段 from A inner join B on A.关联字段=B.关联字段 where 条件;
左连接 left join select A.字段,B.字段 from A left join B on A.关联字段=B.关联字段 where 条件;
右连接 right join select A.字段,B.字段 from A right join B on A.关联字段=B.关联字段 where 条件;
全连接 full join
七.函数
//聚合函数
- select count(id) as total from n; # 总数
- select sum(age) as all_age from n; # 总和
- select avg(age) as all_age from n; # 平均值
- select max(age) as all_agefrom n; # 最大值
- select min(age) as all_age from n; # 最小值
八.统计分组
1.单独使用group by分组
查询student表中的数据,对Sage进行分组,查询出来了五条数据,group by 一般和聚合函数一起使用。
2.group by和聚合函数一起使用
此时用到了count函数,查询出来的是按照年龄分组查询出来的各年龄段的人数。
3.group by和having函数一起使用
having关键字和where关键字的作用相同,都是用于设置条件表达式,对查询结果进行过滤。
两者的区别,HAVING关键字后,可以跟聚合函数,而WHERE关键字不能,通常情况下,HAVING关键字,都是和GROUP BY一起使用,用于对分组后的结果进行过滤。