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-- 删除整表数据
下一篇:
学生成绩管理系统 数据库设计