DQL数据查询语言(复杂的)
- 连接查询
- 交叉连接(cross join):不带on子句,返回连接表中所有数据行的笛卡尔积
- 内连接(inner join):返回连接表中符合连接条件及查询条件的数据行
- 外连接:分为左外连接(left out join)、右外连接(right outer join)。外连接不仅返回连接表中符合连接条件及查询条件的数据行,也返回左表(左外连接时)或右表(右外连接时)中仅符合查询条件但不符合连接条件的数据行
- 子查询
- 联合查询
- 报表查询
查询每个人的考试成绩
#交叉查询
select * from stu s cross join score c on s.id=c.sid;
查询参加考试的人的成绩
#内连查询
select name,china,english,history,china+english+history 总分 from stu s inner join score c on s.id = c.sid;
查询所有人的成绩
#左外连
select name,china,english,history,china+english+history 总分 from stu s left join score c on s.id = c.sid;
#右外连
select name,china,english,history,china+english+history 总分 from stu s right join score c on s.id = c.sid;
查询没有参加考试的人
#子查询
select * from stu where id not in(select sid from score);
查询参加考试的人的成绩
select name,china,english,history,china+english+history 总分 from stu s,score c where s.id=c.sid;
统计函数
- 聚合函数
sum max min avg count
- 分组函数
根据多个字段进行分组
select count(*) 数量,sex,name from stu group by sex,name;
分组条件
select count(*),sex from stu where age >= 16 group by sex having count(*)>1;
数据的备份与恢复
数据库备份
#在退出数据库以后在dos命令行执行
mysqldump -u root -proot 数据库名>test.sql
数据库恢复
#在退出数据库以后在dos命令行执行
mysql -u root -proot 数据库名>test.sql
或者- 创建数据库并选择该数据库
- SOURCE数据库文件(加路径的数据库文件)