Mysql复习

x33g5p2x  于2022-03-07 转载在 Mysql  
字(1.5k)|赞(0)|评价(0)|浏览(314)

现在开始每天学习写项目中可能会实际用到的mysql语句:

1:Limit关键词的使用:

(1):查询学生表种的数据,从第条3开始显示,一共显示6条:

SELECT * FROM  student LIMIT 2,6

(2):每页显示10条,显示第二页

SELECT * FROM student LIMIT 10,10

2:排序和聚合函数

(1):单列排序:查询所有数据,使用年龄降序

SELECT * from student ORDER BY age DESC

(2):组合排序:查询所有数据,在年龄降序排序的基础上,如果年龄相同以数学成绩升序排序:

SELECT * FROM student DRDER BY age DESC ,math ASC

(3):聚合函数(忽略空值)

查询学生总数:
SELECT COUNT(id) AS 总人数 FROM student

SELECT COUNT(*) AS 总人数 FROM student
查询id字段,如果id为null,则是用0代替
SELECT IFNULL (ID,0) FROM student
查询英语成绩总数,并且不要忽略空值
SELECT COUNT(IFNULL(english ,0) ) FROM student
查询年龄大于20的总数
SELECT COUNT(*) FROM student WHERE age >20
查询数学成绩总分:
SELECT SUM(math) from student
查询数学成绩平均分:
SELECT AVG(math) from student
查询数学成绩最高,最低分
SELECT  MAX(math) from student
SELECT  MIN(math) from student

3:分组查询:GROUP BY

(1):按性别分组:没有意义,一般和聚合函数一起使用,下列只会查到每组第一条数据

SELECT * FROM student 	GROUP BY sex;

(2):按性别分组,统计男生和女生平均分:

SELECT sex, AVG(math) AS 平均分  FROM student GROUP BY sex;

(3):查询年龄大于25岁的人,按性别分组,统计每组人数:

SELECT sex AS 性别, COUNT(*) AS 人数  FROM student  WHERE age > 25 	GROUP BY sex

(4):查询年龄大于25岁的人,按性别分组,统计每组人数,并显示性别人数大于2的数

解析:首先我们发现,显示性别人数大于2的数这个是在分组之后,只有分了组才知道哪个组人大于2,所以放在后面,但是年龄大于25这是在分组之前
SELECT sex AS 性别, COUNT(*) AS 人数  FROM student  WHERE age > 25 	GROUP BY sex HAVING COUNT(*)>2

3:外键约束: 将部门表中的dep_id与员工表中的id对应

删除外键约束:

ALTER TABLE employee DROP FOREIGN KEY emp_dpid_fk

添加外键约束:

ALTER TABLE employee ADD CONSTRAINT emp_dpid_fk  FOREIGN KEY (emp_id) REFERENCES department(id)

4: 级联更新,级联删除:

5:表与表关系:

(1):多对多

多对多都是通过第三张表来表示中间关系

(2):一对一:

6:多表查询

(1): 内连接查询:隐式内连接:显式内连接简化写法

SELECT * FROM emp ,dept  WHERE emp.dep_id =dept.id;

(2): 内连接查询:显式内连接

SELECT * FROM emp INNER JOIN dept ON emp.dep_id =dept.id;

(3):外连接查询:左外连接和右外连接

7:子查询

相关文章

微信公众号

最新文章

更多

目录