作为职场人,学一门技能是用来解决日常工作问题的,没必要从头到尾把这块知识弄透,没那么多时间 。
基于此,十二根据自己的经验,把软件测试从业者需要掌握的SQL知识,整理如下;只要跟着这个顺序,从头到尾执行即可 。
前置准备事项:
1、在自己电脑上安装一个mysql数据库,文章见 ->
虚拟机Centos下安装Mysql完整过程(图文详解)_虚拟机安装mysql-CSDN博客
2、找一个mysql客户端链接工具:初学者,推荐 Navicat,文章见 ->
如上准备完成后,接下来就是实操了 。
1. 创建数据库:
create DATABASE isTester
2. 删除数据库:
drop DATABASE isTester
3. 创建新表:
1)创建isTester和Twelve表
CREATE TABLE isTester (id INT(10) NOT NULL UNIQUE PRIMARY KEY ,uname VARCHAR(20) NOT NULL ,sex VARCHAR(4) ,birth YEAR,department VARCHAR(20) ,address VARCHAR(50) ,Twelve VARCHAR(20) );
CREATE TABLE Twelve (id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT ,stu_id INT(10) NOT NULL ,c_name VARCHAR(20) ,istester VARCHAR(50) ,grade INT(10));
2)根据已有的表创建新表(复制表)
create table isTester2 like isTester ;
create table Twelve2 as select * from Twelve where 2=1;
create table Twelve2 as select id,stu_id,isTester from Twelve where 1<>1;
4. 删除表:
drop table isTester2
drop table Twelve,Twelve2,isTester2
5. 增加表字段:
Alter table isTester add column isTester6 VARCHAR(20) NOT NULL
6. 主键
-- 添加主键:
Alter table isTester add primary key(Twelve)
-- 删除主键:
Alter table isTester drop primary key(Twelve)
7. 几个简单的基本入门sql语句
(1)插入:
insert into isTester(id,uname,Twelve) values(1,"Twelve",2020);
insert into isTester(id,uname,Twelve) values(2,"Twelve2",2020);
insert into Twelve(id,stu_id,c_name,grade) values(4,11,"Twelve",90),(5,12,"lin",100),(6,33,"6ido",20);
insert into isTester(id,sex,Twelve) values(11,1,2020),(12,2,2020),(13,2,2020),(14,1,2020);
(2)选择:
select * from isTester
select * from isTester where id = 1
(3)删除:
delete from isTester where id = 1
(4)更新:
update isTester set uname="Twelve666" where id = 12
(5)查找:
select * from isTester where uname like '%Twelve%'
(6)排序:
select * from isTester order by id desc
(7)总数:
select count(id) as totalcount from isTester
(8)求和:
select sum(grade) from Twelve
(9)平均:
select avg(id) as avgvalue from isTester
(10)最大:
select max(id) as "maxvalue" from isTester
(11)最小:
select min(id) as "minvalue" from isTester
8. 模糊查找(like)
select * from isTester where uname like "%Twe%" order by id desc limit 10;
select * from isTester t where t.uname like "Twe%" order by id desc limit 10;
select * from isTester.Twelve s where s.stu_id like "%2%";
9. 拷贝表数据(从其他表)
INSERT into isTester2 SELECT * FROM isTester;
INSERT INTO Twelve(id,stu_id,grade) SELECT id,id,Twelve FROM isTester;
10. 修改表名
-- ALTER TABLE 旧表名 RENAME TO 新表名 ;
ALTER TABLE Twelve3 RENAME TO Twelve6
11. 修改表字段名
-- ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
alter table isTester CHANGE uname aname varchar(60);
12. 跨数据库之间表的拷贝
CREATE TABLE isTester10 LIKE isTester.Twelve;
13. 查询between的使用
select * from Twelve where grade between 1 and 30;
select id,stu_id,c_name,grade from Twelve where grade not between 1 and 30;
14. 查询 in 的使用
select id,stu_id,c_name,grade from Twelve where grade in (10,20,90);
select id,stu_id,c_name,grade from Twelve where grade not in (10,20,90);
15. 子查询
select id,stu_id,c_name,grade from Twelve where id in (select id from isTester);
16. 多表(左链接、右链接、内链接)
-- 左链接
select i.id,i.stu_id,i.c_name,i.grade from Twelve i LEFT join isTester t ON i.id = t.id;
-- 右链接
select i.id,i.stu_id,i.c_name,i.grade from Twelve i RIGHT join isTester t ON i.id = t.id;
-- 内链接
select i.id,i.stu_id,i.c_name,i.grade from Twelve i inner join isTester t ON i.id = t.id;
17. 条件筛选查询
select * from (Select id,stu_id,c_name,grade FROM Twelve ) d where d.id > 10
18. 四表联查
select i.id,i.stu_id,i.c_name,i.grade from Twelve i LEFT join isTester t ON i.id = t.id right join isTester2 c on i.id=c.id inner join Twelve2 d on i.id=d.id where 1=1;
19. 内连接
select d.* from (select d.id,d.stu_id,d.c_name,d.grade from idoxu d order by grade desc limit 10) i,Twelve d where i.id = d.id order by stu_id desc limit 10;
20. 选择从10到15的记录
select * from (select * from Twelve order by id asc limit 15) i order by id desc limit 5
21. 创建视图
create view isTester_view as select id,stu_id,c_name,grade from Twelve where id in (select id from isTester);
22. 删除视图
drop view isTester_view