目录
1.增加(insert)
基础语法:
insert into 表 values(值1,值2,...)
写法一:
#给表student的id列增加三个值
insert into student (id) values(1),(2),(3);
写法二:
#给表student的id,name,age列增加三个值
insert into student (id,name,age) values(4,'周杰伦',31),(5,'林觉姐',33);
2.删除(Delete)
基础语法:
delete from 表 [where 条件判断]
写法:
#删除age大于33的数据
delete from student where age>33;
3.数据更新(update)
基础语法:
update 表 set 列=值 [where 条件判断]
写法:
#修改id为1的name 为陈一讯
update student set name = '陈一讯' where id = 1;
4.注意事项
- 字符串出现再sql语句中,必须要用单引号包围起来;
- 每一条sql语句都要以分号;结尾。
5.DDL和DML语句练习
要求:
解答:
创建一个新的数据库的语句:
create database 数据库名称;
create database xjx231106;
进入数据库:
use 数据库名称;
use xjx231106;
创建一个新表:
CREATE TABLE [IF NOT EXISTS] `表名` (
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
.......
`字段名` 列类型 [属性] [索引] [注释]
) [表类型] [字符集设置] [注释]
create table student(
id int,
name varchar(25),
age int,
gender varchar(10)
);
批量插入数据:
insert into student(id,name,age,gender)
values(1,'周杰伦',31,'男'),
(2,'王力宏',33,'男'),
(3,'蔡依林',35,'女'),
(4,'林志玲',33,'男'),
(5,'刘德华',35,'男'),
(6,'张大山',31,'男'),
(7,'刘志龙',22,'男'),
(8,'王笑笑',28,'女'),
(9,'章一枚',36,'女'),
(10,'王一倩',36,'男'),
(11,'陈奕迅',24,'男'),
(12,'张晓光',22,'女'),
(13,'李大霄',23,'男'),
(14,'吕田天',25,'女'),
(15,'增月月',28,'男'),
(16,'刘家辉',38,'男'),
(17,'项羽反',31,'女'),
(18,'刘德强',31,'男'),
(19,'王强强',3,'男'),
(20,'林智慧',31,'女');
结果:
6.分组聚合
基本语法:
select 字段|聚合函数 from 表 [where 条件] group by 列
聚合函数有:
- sum(列) -求和
- avg(列) -求平均值
- min(列) -求最小值
- max(列) -求最大值
- count(列|*) -求数量
注意事项:
group by 中出现了哪个列,哪个列才能出现在select中的非聚合;
样例:
select avg(age) from student group by gender;
select gender,avg(age) from student group by gender;
7.结果排序
基础语法:
select 列|聚合函数|* from 表
where ...
group by ...
order by ... [asc|desc]
筛选年龄大于20的学生的全部信息,并且按照年龄进行升序排列
select * from student where age>20 order by age asc;
8.结果分页限制
基本语法:
select 列|聚合函数|* from 表
where ...
group by ...
order by ... [asc|desc]
limit n[,m]
输出student表的前五条数据
select * from student limit 5;
从student表的第十条开始往后取五条
select * from student limit 10,5;
综合使用:(关键字的顺序有讲究)
挑选出年龄大于20,出现次数最多的年龄数值
select age,count(*) from student
where age>20
group by age
order by age
limit 3;