SQL语句二
1. 操作数据
1.1 新增数据
整行插入
- INSERT INTO 数据表名 VALUES(值1,值2,值3…);
指定列中插入数据
- INSERT INTO tabname (字段1, 字段2,…) VALUES (值1,值2,…);
指定列中插入多条数据
- INSERT INTO 数据表名 (字段1, 字段2,…) VALUES (值1,值2,…),(值1,值2,…);
1.2 修改数据
- UPDATE 数据表名 SET 字段1=新值,字段2=新值 [WHERE 条件];
1.3 删除数据
DELETE FROM 数据表名 [WHERE 条件];
1.4 查询数据
查询整个表数据
-
SELECT * FROM 数据表名;
查询指定字段数据 -
SELECT 字段1,字段2 FROM 数据表名;
查询指定字段数据,并给字段起别名
- ELECT 字段1 as 别名,字段2 as 别名 FROM 数据表名;
可以不加波浪号
查询指定字段并去重
- SELECT DISTINCT 字段1 FROM 数据表名;
1.5 where子句
where子句通常结合增删改查使用,用于做筛选的条件。
比如,查询当id=1的数据
不仅如此,经常结合运算符使用。
1.6 比较运算符
练习
1.查询id大于3的数据
2.查询年龄大于18岁的信息
3.查询姓名不是老王的数据
1.7 逻辑运算符
运算符 | 描述 |
---|---|
a and b | 当同时满足a,b时,则为True |
a or b | 当满足a或b其中一个时,则为True |
not a | 否定 |
练习
1.查询18~22之间的所有学生信息
2.查询id大于3的女同学
3.查询id小于2或者id大于4的学生信息
4.查询年龄不是18的女同学
1.8 模糊查询
like关键字用来进行模糊查询,并且结合%以及_使用。
- % 表示任意多个任意字符
- _ 表示一个任意字符
练习
1.查询名字以a开始的学生信息
2.查询名字含有a的学生信息
3.查询名字仅有2个字符的学生信息
4.查询名字至少有2个字符的学生信息
1.9 范围查询
关键字 | 描述 |
---|---|
in | 表示在一个非连续的范围内 |
not in | 表示不在一个非连续的范围内 |
between…and… | 表示在一个连续的范围内 |
练习
1.查询id是1或者4或者6的学生信息
2.查询年龄为18或者20的学生信息
3.查询年龄不是18,20的学生信息
4.查询id是2至4的学生信息
5.查询id是3-5的男同学信息
6.查询年龄不在18至20之间的学生信息
1.10 空判断
练习
1.查询没有填写班级的学生
2.查询填写班级的学生
2. 常用聚合函数
2.1 count 总数
-
求students总人数
-
求男性的人数
-
女性的人数
2.2 max() 最大值
-
查询最大的年龄
-
女性最大的id
2.3 min() 最小值
- 查询男学生的最小编号
2.4 sum 求和
- 查询男生年龄和
2.5 avg 平均值
-
查询四班女生的年龄的平均值
-
计算男性的平均年龄,保留2位小数
3. 练习
CREATE DATABASE mytest;
SHOW DATABASES;
SELECT DATABASE();
USE mytest;
SHOW TABLES;
CREATE TABLE Teacher(
tid INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
NAME VARCHAR(20),
age INT DEFAULT 30,
gender ENUM(‘男’,‘女’)
);
DESC Teacher;
CREATE TABLE Course(
cid INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
cname VARCHAR(20),
tid INT
);
DESC Course;
ALTER TABLE Teacher CHANGE NAME tname VARCHAR(20);
DESC Teacher;
INSERT INTO Teacher VALUES(1,‘amy’,25,‘2’);
INSERT INTO Teacher VALUES(2,‘居然’,29,‘1’),(3,‘jerry’,30,‘1’),(4,‘james’,30,‘男’);
SELECT * FROM Teacher;
INSERT INTO Course VALUES(1,‘Python基础’,3),(2,‘爬虫’,3),(3,‘web’,2),(4,‘测试’,4),(5,‘数据分析’,1);
SELECT * FROM Course;
SELECT COUNT(*) FROM Teacher WHERE gender =‘女’;
SELECT COUNT(*) FROM Course WHERE tid =3;
SELECT tname FROM Teacher WHERE tid =3;
SELECT tname FROM Teacher WHERE age >=26 AND age<=30;
SELECT * FROM Teacher WHERE tname LIKE’j%’;