MySQL数据的增删查改(CRUD)

一、增(Create)

drop table if exists student;
create table student(
	id int,
	sn int comment 学号,
	sname varchar(20) comment 姓名,
	e_mail varchar(20) comment 邮箱
);

插入数据:

1、全列插入

INSERT INTO table_name VALUES(字段1要插入的值,字段2要插入的值);

顺序为建表时的默认顺序

insert into student values(10,1,张三,NULL);
insert into student values(11,2,李四,1234567@.com);

2、指定列插入

INSERT INTO table_name(属性名1,属性名2...) VALUES(字段1要插入的值,字段2要插入的值...);

insert into student(sn,sname) values(3,王五);

3、插入多行数据

INSERT INTO table_name(属性名1,属性名2...) VALUES(字段1要插入的值,字段2要插入的值...)(字段1要插入的值,字段2要插入的值...);

insert into student(sn,sname) values(3,王五)(4,赵六);

二、查询(retrieve)

1、全列查询(一般不建议使用)

效率较低,涉及到了索引优化问题

select * from student;

2、指定列+表达式查询

select id+10,concat(sname,学生),100 from student;

结果id属性列会加10,sname后面统一加学生二字(使用concat函数连接字符串),后面还会多一列名称和值皆为100的属性

3、别名

select id 卡号 from student;

空格隔开写别名

4、DISTINCT去重

select distinct id from student;

这里id相同的元组会被去掉。如果这里写两个属性,则只有这两个属性全部相同才会被去掉。

5、ORDER BY排序

select id,amount from student order by id,amount;-- 升序
select id,amount from student order by id,amount DESC;-- 降序

默认为ASC(升序),DESC为降序。

查找结果优先按照id(主关键字)进行排序,如果id相等再按照amount进行排序(次关键字),按书写顺序来。

注:如果有NULL数据视为比任何值都小;如果使用别名也可以进行排序

6、WHERE条件查询

like使用样例:

select Sname from student where Sname like 李%;-- 匹配到所有姓李的学生
select Sname from student where Sname like 李_;-- 匹配到所有姓李的两个字的学生

注:WHERE条件可以使用表达式,但不能使用别名

7、分页查询(MySQL特有)

select * from student limit 2,3;

表示从下标2行开始(第三行),向下显示三行数据。

注:分页操作是基于上面的过滤结果进行分页的,而且如果顺序不一样(升序降序),分页结果也是不一样的。

三、修改(Update)

UPDATE table_name SET 要修改的属性 = 修改量 [WHERE ...] [ORDER BY ...] [LIMIT ...]

update student set Sname = 冰墩墩 where Sno = 1;

大部分情况,update都会结合where操作,当然还有limit和order by。

建议:修改前先写一下select语句,以确保修改无误

四、删除(Delete)

DELETE FROM table_name where 条件 order by

delete form student where Sno = 1;-- 删除学号为一的学生数据
delete from table_name-- 删除整表数据
经验分享 程序员 微信小程序 职场和发展