测试必会的sql基本操作
1、创建数据库
1  |  | 
2、查看全部的数据库
1  |  | 
3、查看某个数据库的定义的信息:
1  |  | 
4、删除数据库
1  |  | 
5、切换数据库:
1  |  | 
6、查看正在使用的数据库:
1  |  | 
7、查看数据库中的所有表:
1  |  | 
8、查看表结构:
1  |  | 
9、修改表删除列.
1  |  | 
10、修改表名
1  |  | 
11、修改表的字符集
1  |  | 
12、数据类型与约束
- int :整数 有符号和无符号,长度不受限制
 - varchar:字符串 中文/数字/字母都是一字字符,受长度限制
 - decimal :小数 decimal(5,2)总长度5位,整数3位,小数2位
 - 主键 id :int unsigned primary key auto_increment
 - 非空 :not null
 - 唯一 :unique
 - 默认 :default
 
SQL中表的操作
1、创建表
1  |  | 
2、删除表
1  |  | 
3、表数据操作
3.1、添加数据
1  |  | 
3.2、修改数据
1  |  | 
3.3、删除数据
1  |  | 
3.4、查询数据
3.4.1、查询表中所有信息
1
select * from 表名 where 条件3.4.2、查询表中指定字段
1
select 字段1,字段2,字段3...from 表名 where 条件3.4.3、给字段取别名
1
select 字段1 (as) 别名,字段2 别名 from 表名 where 条件3.4.4、去重
1
select distinct 字段 from 表名 where 条件3.4.5、比较运算符
1
select * from 表名 where age>203.4.6、逻辑运算符
and 满足所有条件
or 满足其中任意一个条件
not 不满足条件
3.4.7、模糊查询
- like
 - % 0到任意多个字符
 - _表示任意一个字符
 
3.4.8、范围查询
- in 在一个非连续的范围内
 - between and 在一个连续的范围内 闭区间 小的数据在前
 
3.4.9、空查询
- is null
 - ‘’空字符串
 
3.5、多表查询
3.5.1、排序
1
2select * from 表名 where 条件 order by 列1 (asc)|desc,列2 asc|desc
select * from student where 条件 order by convert(字段 using gbk)asc|desc 纯中文转换后排序3.5.2、聚合函数
1
2
3
4
5
6count: 总数 select count(*/字段)from 表名 where 条件
max: 最大值 select max(age) from 表名 where 条件
min: 最小值 select min(age) from 表名 where 条件
avg: 平均值 select avg(grade) from 表名 where 条件
sum: 求和 select sum(grade) from 表名 where 条件
select avg(age)as 平均年龄,max(age)最大年龄,min(age)最小年龄 from 表名 where 条件3.5.3、分组
1
select * from 表名 group by 字段,字段2 having 条件3.5.4、分页
1
2select * from 表名 limit 0,5 从第一行数据开始,显示5行
select * from 表名 limit (n-1)*m,m n代表第几页,m代表每页显示多少条数据3.5.5、等值连接
1
2
3
4方式一 :
select * from 表1,表2,表3 where 表1.列=表2.列 and 表2.列=表3.列 where 条件
方式二 内连接 取交集:
select * from 表1 inner join 表2 on 表1.列=表2.列 inner join 表3 on 表2.列=表3.列 where 条件3.5.6、左连接
左边的表全显示,右边表能匹配的上的数据连接显示,匹配不上(没有的)以null补充
1
select * from 表1 left join 表2 on 表1.列=表2.列 left join 表3 on 表2.列=表3.列 where 条件3.5.7、右连接
右边的表全显示,左边表能匹配上的数据连接显示,匹配不上(没有的)以null补充
1
select * from 表1 right join 表2 on 表1.列=表2.列 right join 表3 on 表2.列=表3.列 where 条件3.5.8、自关联
1
select * from 表 别名1 inner join 表 别名2 on 别名1.aid=别名2.pid3.5.9、子查询
子查询结果输出的是一行一列
1
select * from student where age>(select avg(age) from student)子查询的结果输出的是一列多行
1
2
3
4
5
6
7
8
9
10
11in:
select * from student where age in
(select age from student where age=18)
any/some: >:大于最小的; <: 小于最大的
select * from student where age>/< any
(select age from student where age between 18 and 22)
all: >:大于最大的; <: 小于最小的
select * from student where age>/<all
(select age from student where age between 18 and 22)子查询的结果输出的是一行多列
1
select * from student where(name,sex)=(select name,sex from student where sex='男' order by age desc limit 1)子查询的输出结果是一个表
1
select * from scores inner join (select cno from courses where cname in('数据库',‘系统测试’) as c on scores.cno=c.cno
3.6、数据分表
1  |  | 
 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 GGLSS!
 评论
WalineValine








