1.sql语句分类
1)DQL(数据查询语言):查询语句,凡是select语句都是DQL
2)DML(数据操作语言):insert delete update,对表当中的数据进行增删改
3)DDL(数据定义语言):create drop alter,对表结构的增删改
4)TCL(事务控制语言):commit提交事务,rollback回滚事务。(TCL中的T是Transaction)
5)DCL(数据控制语言):grant授权,revoke撤销权限等
2.一些基本的Mysql语句
1)查看有那些数据库
show databases;
2)创建数据库
create database 数据库名;
3)使用数据库数据
use 数据库名;
4)查看当前数据库中有那些表
show tables;
3.sql语句的常用命令
1)当sql脚本中的数据量太大时,可以用source命令完成初始化
source sql脚本的绝对路径;
2)查看表结构
desc 表名;
3)查看当前使用的数据库
select database();
4)查看MySQL的版本号
select version();
5)结束一条语句: ctrl+c
6)查看创建表的语句
show create table 表名;
7)删除数据库
drop database unipue;
4.简单的查询语句(DQL)及注意
1)查询语句顺序
select 5
…(当一条语句中有group by的话,select后面只能跟分组函数和参与分组的字段)
from 1
…
where 2
…
group by 3
…(按照某个字段或者某些字段进行分组)
having 4
…(对分组之后的数据进行再次过滤。一条语句中要有group by,才能有having)
order by 6
…(默认为升序。asc表示升序,desc表示降序)
当按多个字段进行排序时,越靠前的字段越能起主导作用。只有当前面字段无法完成排序时,才会用到后面的)
limit 7
…;
注意事项
1.sql语句不区分大小写
2.标准sql语句中要求字符串使用单引号括起来(MySQL支持双引号,但尽量别用)
3.字段可以参与数学运算
2)条件语句查询
2.1、between and的使用
between and在使用时必须左小右大
between and除了用在数字方面(闭区间)之外,还可以用在字符串方面(左闭右开)
2.2、is null 和 is not null的使用
在数据库中NULL不是一个值,代表什么也没有,为空
只能使用is null和is not null来查询
2.3、模糊查询like
%代表任意多个字符,代表任意一个字符
注意:要想找出名字带有%、、\这些字符的,要使用转义字符****
2.4、isnull()函数的使用
由于有NULL参与的运算结果一定为NULL,因此用isnull()函数处理,把NULL当作0处理
isnull(可能为null的数据,被当作什么处理)
eg:isnull(sal,0) 把sal字段中为NULL的数据都当作0来处理
2.5、distinct关键字去除重复记录
distinct只能出现在所有字段的最前面
与count()连用,可以统计出某个字段不重复的总数量(比如统计岗位的数量)
2.6、union使用
union可以将查询结果集相加
可以将多张不相干的表中数据拼接在一起显示!!!
2.7、limit使用(分页效果)
limit:取结果集中的部分数据
语法机制:limit startIndex(可省略),length
startIndex:起始位置 length:取几个
3)分组函数(分完组之后才能用)
3.1、分组函数有哪几个
count 计数,sum 求和,avg 平均值,max 最大值,min 最小值
注意
1.分组函数会自动忽略NULL
2.分组函数不能在where语句中使用,由于group by是在where执行后才会执行。
3.count()和count(某个字段)的区别
count():不是统计某个字段中数据的个数,而是统计总记录条数。(与某个字段无关)
count(某个字段):表示统计某个字段不为NULL的数据的总数量
4)链接查询
4.1、什么是连接查询及连接查询分类
(1)通过多张表进行联合查询称为链接查询
(2)分类:内连接和外连接
4.2、什么是内连接、外连接及他们的区别
内连接:
假设A和B表进行连接,使用内连接的话,凡是A表和B表能够匹配上的记录查询出来,这就是内连接。
AB两张表没有主副之分,两张表是平等的。
外连接:
假设A和B表进行连接,使用外连接的话,AB两张表中有一张表是主表,一张表是副表,主要查询主表中
的数据,捎带着查询副表,当副表中的数据没有和主表中的数据匹配上,副表自动模拟出NULL与之匹配。
外链接的分类:
左外链接(左连接):表示左边的这张表是主表
右外连接(右连接):表示右边的这张表是主表
4.3、内连接、外连接的写法
内连接:
select
…
from
…(表)
(inner) join
…(表)
on
连接的条件
where
再次过滤的条件
外连接:(左外连接\左连接)
select
…
from
…(表)
left (outer) join
…(表)
on
连接的条件
where
再次过滤的条件
注意:
把lefe改为right,就是右外连接\右连接
外连接重要的特点:主表的数据无条件的全部查询出来
5)子查询
5.1、select语句 当中嵌套select语句,被嵌套的select语句是子查询
5.2、子查询出现在如下地方:
select
… (select),
from
…(select),
where
…(select);