【DQL命令:】
########################################################################################################
1).编写顺序:
select 聚合函数 from … where …join ..on.. group by … having… select..order by … limit….
2).执行顺序:
1).from
2).where--<筛选>
3).group by
4).聚合函数
5).having--<筛选>
6).select
7).order by--排序
8).limit
【in】相当于等于
########################################################################################################
1).比较运算符:
a).>:大于 b).<:小于 c).=等于 d).!=或><:不等于
格式:select *from 表名 where 条件;
举例: 查询年龄大于35的
select * from person where age>35;
2).逻辑运算符:
a).and:与
b).or:或
c).not:非
格式:select * from 表名 where 条件;
举例: 查询年龄大于35的男同学
select * from person where age>35 and sex='男';
@【条件查询】
1).范围查询:(between…and…)
格式:select * from 表名 where 列名 between 数值 and 数值;
举例:查询年龄在30-40之间的学员{select * from person where age between 30 and 40;}
2)模糊查询:(like)
a).通配符: % :通配任意数量的字符
b).通配符: _ :通配一个字符
格式:select * from 表名 where 字段 like ...
举例:查询"马姓" 学员:-----select * from person where name like '马%';
@【排序–(order_by)
格式:select * from 表名 order by 列名 asc(升序)/desc(降序);
举例: 查询所有学员,按年龄升序排序:select * from person order by age asc;
@【聚合函数】
a).count(总数):
b).sum(求和):
c).max(最大值):
d).min(最小值):
e).avg(平均值):
@格式:select * from 表名 where 列名 条件;
@示例:查询男生有多少人: select count(*/字段) from student1 where sex = ‘男’;
@注意: 使用“聚合函数”,其查询结果中只能包含“聚合函数”的结果,不能包含其它列,否则也是无意义的。因为“聚合函数”的结果是一个“计算 的结果”,不是从表中查询出来的,跟任何一条数据无关
@【分组–group by】
格式:select 将谁分组(列名) ,分组干什么(聚合函数) from 表名 group by 将谁分组(列名);
举例:-求男同学和女同学的英语的最高分分别是多少-:SELECT sex,MAX(english) FROM student1 GROUP BY sex;
@【having语句】
1).需求:查询出每个城市各有多少学员?结果只显示人数大于1的信息:
SELECT address ,COUNT() FROM student1 GROUP BY address HAVING COUNT() > 1;
因为:where要早于“聚合函数”被执行,所以在执行where时,“聚合函数”还不能被执行,所以:
where不能对聚合函数的结果进行筛选,应该用:having。
@【分页limit】
1).MySQL支持分页查询:
select … from … where …. limit 起始行索引 , 每页记录数;
select* from 表名limit 起始索引,每页记录数;
@【数据库DOS命令备份】
a).备份:不登录mysql,直接输入命令:--mysqldump -u用户名 -p密码 -B 数据库名 >备份文件位
注:-B表示:生成create database语句,否则不生成这条语句。
b).恢复:登录mysql,登录后输入--source 备份文件的位置
@【主键约束和自动增长】–<主键约束意味着这列的值:唯一、非空>
a).创建主键时:键名 类型 primary key;
b).修改表时:alter table 表名 ADD primary key 字段名;
c).删除主键:alter table 表名 drop primary key;
1).一个表只能有一个主键;【常用】
2).这个主键可以由一个字段表示,也可以由多个字段表示
@自动增长:
字段名 类型 primary key auto_increment
delete from student3;//清空表——不影响自动增长的基数
truncate student3;//清空表(快)——自动增长的基数会归为:0
@【唯一约束】–<约束字段的值必须唯一,可以是null>
格式:字段名 类型 unique;
@【非空约束】–<约束的字段不能为null,可以重复>
格式:字段名 类型 not null
@【默认值】–<可以设置某个字段的默认值>
格式:字段名 类型 deafult'默认的内容'
@【表关系】
[constraint ] foreign references
a).外键约束–创建表时–[CONSTRAINT] [外键约束名称] FOREIGN KEY(外键字段名) REFERENCES 主表名(主键字段名)
b).外键约束–修改表时–ALTER TABLE 从表 ADD [CONSTRAINT] [外键约束名称] FOREIGN KEY (外键字段名) REFERENCES 主表(主键字段名);
c).删除外键约束:ALTER TABLE 从表 drop foreign key 外键名称;