🌟欢迎来到 我的博客 —— 探索技术的无限可能!
目录
查询
1 查询所有列
Select * from 表名
2 查询指定列
Select juzi ,pingguo from shuiguolao ;
条件查询就是在查询时给出WHERE子句,在WHERE子句中可以使用如下运算符及关键字:
=、!=、<>、<、<=、>、>=;
BETWEEN…AND;
IN(set);
IS NULL;
AND;
OR;
NOT;
3 模糊查询
4 如何备份sql语句文件
1、先找到需要备份的数据库
保存类型选择“全部文件”
运行完后点击“关闭”
此时在桌面可以看到备份的文件
导入备份的sql文件
导入之前要先创建这个需要导入的数据库
1、点击“运行sql文件”
1选择导入的数据库文件
1添加文件进来后,点击“开始”
去除勾选,然后点击开始
4、导入成功
5 如果列中有重复的则可以“去重”
6 将数值的列进行相加后生成一个列
7 如何给添加了ifnull条件的列起别名
给表起别名
8 升序和降序
1表中的列进行升序和降序的排列
升序 select * from school order by (列名) asc ;
降序 select * from school order by (列名) desc ;
9 聚合函数的介绍
10 分组查询
Group
1、where在分组之前进行限定,如果不满足条件,则不参与分组,
2、having是在分组之后进行限定,如果不满足结果,则不会被查询出来
3、where 后面不可以跟聚合函数,而having可以进行聚合函数的判断
即部门编号是10的有3人,部门编号20的5人,部门编号30的有6人
1分组后的查询
Having
11 分页查询
12 合并结果集
Union作用的条件是,合并的两个列的长度、列类型必须相同,行数可以不同。列名和数据类型可以不相同。
不去重
连接查询,即将两个表连在一起。
13 多表查询
用select * from emp,dept where emp.deptno=dept.deptno;来进行去除无用信息的查询是“方言”
用select * from emp e inner join dept d on e.deptno=d.deptno ;来查询是mysql的标准语言
1外连接
左连接
select * from dept d left outer join emp e on d.deptno =e.deptno ;
以左边的表为标准进行查询,如果右边表没有的则显示null
右连接
以select * from dept d left outer join emp e on d.deptno =e.deptno ;
以左边的表为标准进行查询,如果右边表没有的则显示null
自然连接
自然连接的表中,需要有两个相同的列(列名和列类型相同)
通过MySql自己的判断完成连接过程,不需要指定连接条件。MySql会使用表内的,相同的字段,作为连接条件。
自然连接分为内外之分。
Select * from emp natural join dept ;
自然连接的左连接
右连接查询
子查询
子查询→(单行单列)
子查询→(多行单列)
多行单列进行查询时要在子查询前面添加关键字ALL
select * from emp where sal > ALL(select sal from emp where deptno = 30) ;
子查询→(单行多列)
即第一步的查询条件是唯一的这样效果比较明显
子查询→(多行多列)
select e.ename ,e.sal ,d.dname ,d.loc from emp e ,dept d where e.deptno =d.deptno and empno =1006 ;
多行多列(2)
完整性约束------主键(PRIMARY KEY)
新建表时设置主键
主键的列下面不能有重复的值
主键的列的下面的值不能为null
同一个表不能多个主键,只能有一个主键
删除表的主键
表已创建时:修改表时指定主键:
ALTER TABLE stu ADD PRIMARY KEY(sid);
创建表时设置主键自增长
修改表时,设置主键自增长
Alter table 表名 change 旧列名 新列名 数据类型 auto increment
Alter table 表名 modify 列名 列类型 auto increment
修改表时删除主键自增长:
Alter table 表名 change 旧列名 新列名 数据类型 ;
非空约束
唯一约束
Insert into lll (sid,sname)values(0,1); 重复插入相同数据时会报错