一:mysql的常见命令和语法规范
1.创建数据库
create database 数据库名;
2.使用数据库
use 数据库名;
3.查看有哪些数据库
show databases;
4.查看当前数据库有哪些表
show tables;
5.查看其他数据库中的表
show tables from 数据库名;
6.查看当前使用的数据库
select database();
7.查看数据库版本
select version();
8.终止一条语句
想要终止一条正在编写的语句,输入\c
9.退出MySQL
QUIT或EXIT10.查看表的结构
desc 表名;
11.查看创建表的SQL语句
show create table 表名;
增删改查
增加
insert into 表名(字段名1,字段名2,字段名3 ...) values(值1,值2,值3 ...);
删除
delete from 表名 where 条件;
修改
update 表名 set 字段名1 = 值1,字段名2 = 值2 ... where 条件;
查
select 字段名1,字段名2 ... from 表名 where 条件;
二:创建表:
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型,
...
)
三:limit
limit是MySQL中特有的,其他的数据库中没有
limit用于取结果集中的部分数据
limit startIndex, length,startIndex表示起始位置,从0开始,length表示要取的数据的长度
select ... from ... [order by ...] limit 0 ,5;和select ... from ... [order by ...] limit 5;等价
select ... from ... where ...group by...having ...order by ... limit...执行顺序:from>where>group by>having>select>order by>limit
四 :条件查询
任何一条sql语句都是以";"结尾
sql语句不区分大小写
select 字段名1,字段名2 ... from 表名 where 条件;
五:排序查询
MySQL中默认的排序是升序,可以使用 order by 进行控制升序或降序
select 字段名1,字段名2 ... from 表名 [where 条件] order by 字段名;//升序
select 字段名1,字段名2 ... from 表名 [where 条件] order by 字段名 asc;//升序
select 字段名1,字段名2 ... from 表名 [where 条件] order by 字段名 desc;//降序
执行顺序:form>where>select>order by
六:分组函数
group by:按照某个字段或者某些字段进行分组
having:对分组之后的数据进行在次过滤
having 是group by 的搭档,没有group by ,having是不能出现的。
MySQL中有5个分组函数count()计数、sum()求和、avg()平均值、max()最大值、min()最小值
分组函数一般都是和group by 联合使用。
select sum(sal) from emp;
select max(sal) from emp;
select min(sal) from emp;
select avg(sal) from emp;
select count(*) from emp;
SQL当中有一个语法规则,分组函数不可直接使用在where子句当中
因为group by是在where执行之后才会执行的(分组函数必须在分完组之后才能使用,where的时候,group by还没有执行,意味着还没有分组,不能使用分组函数)
count(*)和count(具体的某个字段)区别
count(*):统计总记录条数
count(具体的某个字段):统计具体的某个字段中不为NULL的数据的总数量
select ... from ... where ... group by ... having ...order by ...
执行顺序:from>where>group by>having>select>order by
七:结果集去重
distinct 关键字只能出现在所有字段的最前面,表示所有字段联合去重,并不会修改表中的数据
select distinct 字段名1,字段名2 ...from 表名 [where 条件]
八:内连接与外连接
1.内连接之自连接:特点:一张表看做两张表,自己连接自己
select ... from 表名 as A [inner]join 表名 as B on 连接条件
2.外连接之右连接:特点:右边的这张表为主表
select ... from A表 right [outer] join B表 on 连接条件
3.外连接之左连接:特点:左边的这张表为主表
select ... from A表 left [outer] join B表 on 连接条件
4.外连接和内连接区别
内连接:假设A表和B表进行连接,使用内连接,凡是A表和B表能够匹配上的记录都能查询出来,AB两表没有主副之分,两张表是平等的
外连接:假设A表和B表进行连接,使用外连接,AB两表中有一张表是主表,一张表是副表,主要查询主表中的数据,捎带着查询副表,当副表中的数据没有和主表中的数据匹配上,副表自动模拟出NULL与之匹配。