素材导入
对于数据表的操作,我们就先导入一个数据表,具体素材如下:
DROP TABLE IF EXISTS exam_result;
CREATE TABLE exam_result (
id INT,
name VARCHAR(20),
chinese DECIMAL(3,1),
math DECIMAL(3,1),
english DECIMAL(3,1)
);
– 插入测试数据
INSERT INTO exam_result (id,name, chinese, math, english) VALUES
(1,‘唐三藏’, 67, 98, 56),
(2,‘孙悟空’, 87.5, 78, 77),
(3,‘猪悟能’, 88, 98.5, 90),
(4,‘曹孟德’, 82, 84, 67),
(5,‘刘玄德’, 55.5, 85, 45),
(6,‘孙权’, 70, 73, 78.5),
(7,‘宋公明’, 75, 65, 30);
新增操作(Create)
单行数据的插入
insert into 表名 values(对应的字段);
对于数据表的操作,必须要先选中要用的数据表所在的数据库,以本张数据表为例,表名为exam_result 所对应的字段有id,name,chinese,math,english几个字段,那么在单行插入的时候我们就要对应上
如果有一列你不想插入数据,你可以设置为null(这里为了理解,我将name,chinese,math,english各列都将其设置为null了)
指定列插入
如果我们对于插入的数据,要选择性的插入几列也是可以的,对于其他列没有设置的,将会自动的设置为null的
insert into 表名 (想要设置的字段)values (与前面想要设置的字段相对应上)
多行数据插入
insert into exam_result values (插入字段),(),(), …();
对于多行数据的插入也是可以适用与多行指定列去插入的,插入的数据整体要用逗号隔开,然后最后一个用分号结束就行了
查询操作(Retrieve)
全列查询
select * from 表名 ;
从这里就可以查到我们表中的具体内容,*相当于通配符一样,全列进行查询,在以后的工作中,这个查询一定要慎用,因为如果数据量过大,那么很多可能查询操作会导致我们的服务器挂掉!!!
指定列查询
select 要查询的字段 from 表名;
查询的字段可以是多个,之间用逗号隔开,单个查询就不用逗号了。
表达式查询
select 表达式 from 表名;
这里的表达式,就是利用加减乘除进行一些有理运算,当然了表达式查询中也是可以结合指定列查询一起用的
指定别名查询
select 字段(表达式) as 别名 from 表名;
去重查询
select distinct 字段 from 表名;
如果这里字段是多个,那么必须每个字段都相等,才算重复
排序查询
select 字段(表达式) from 表名 order by 比较字段(表达式)asc/desc;
如果后面不写asc或者desc,那么默认的就是升序排序,并且排序是可以指定别名的
条件查询
select 字段(*) from 表名 where 限制条件;
在运用数据库的时候,有些时候我们需要对数据有要求,这个时候我们就引入了条件查询,利用where关键字,进行条件约束,这里的条件约束一般是结合运算符进行约束
注意:
- WHERE条件可以使用表达式,但不能使用别名。
- AND的优先级高于OR,在同时使用时,需要使用小括号()才可以改变优先级
between and 范围查询
select * from 表名 where 字段 between X and X ;
IN查询
select * from exam_result where 字段 in ();
这里的in后面跟着的具体数字就是从表中字段寻找有没有一样的,有就筛选出来
模糊查询
select * from 表名 where 字段 like …
注意这里的%可以匹配的是任意字符,也就是说只要满足是孙…的就可以了,但是_就一样了,它匹配的是一个字符,也就是必须是孙X才可以
分页查询
select * from 表名 limit 数字;
只取数据表的前三条记录
select * from 表名 limit 数字 offset 数字;
这里表示从第四行记录开始,往下取三条记录
修改操作(update)
update 表名 set 列名 = …,列名 = …where …;
修改前
修改后
修改操作也可以结合limit 以及order by都是可以结合使用的,如果不加where条件限制,那么这里将会把所有的数据(就是你set的那些字段)进行修改
修改前
修改后
修改操作也可以结合limit 以及order by都是可以结合使用的,如果不加where条件限制,那么这里将会把所有的数据(就是你set的那些字段)进行修改
删除操作(delete)
delete from 表名 where …
如果这里没有限制条件那么就将会把整张数据表里的内容全部清空
总结
1 对于查询操作,返回回来的其实就是一个临时表,而其他三个操作是针对服务器上的数据库进行修改
2 对于以上操作,有些操作是可以叠加使用的,结合成一个sql语句使用
对于掌握基础的增删改查操作一定是一个优秀程序猿必不可少的,我们需要多加练习!