纯属个人自总结,若有错误,还请各位大佬提出宝贵建议
表数据增删改查
如果是字符类型(char,varchar)或日期类型,使用单引号’
如果是是数值类型,直接写数字
插入一条数据
格式:
insert into 表名(列名1, 列名2…列名n) values (值1,值2…值n);
如:
insert into t_student(t_id,t_name,t_age,t_sex,t_birthday)
values('01','小明',20,'M','1995-01-01');
如果表中所有列都要插入数据,可以不用在表名后面列出所有的字段,直接写值,但是顺序一定不能错。这种方法不规范,不要用。
insert into t_student values('02','lisi',20,'F','1996-01-01') ;
注意事项
- 列名的顺序和表创建时列的顺序必须相同。
- 值的顺序和列名的顺序必须相同,数据类型也必须相符。值的顺序和列名的顺序必须相同,数据类型也必须相符。
- 如果要插入空值,可以以null代替。如果要插入空值,可以以null代替。
- 如果字段列表没有写全,未设置值的列默认为null如果字段列表没有写全,未设置值的列默认为null
Mysql特有的批量插入(测试时比较有用)
insert into t_student(t_id,t_name,t_age,t_sex,t_birthday)
values ('03','teacherchen',20,'M','1995-01-01'), ('04','zhaoting',20,'F','1995-01-01');
查询表中所有数据
select * from t_student;
select t_name,t_id,t_age,t_birthday from t_student;
使用where和> < =比较运算符控制查询结果,下面会重点讲
修改数据
格式:
update 表名 set 列=值,列=值…
如:
--修改性别都为男
update t_student set t_sex = 'M';
--修改性别都为女 同时将年龄都改成21
update t_student set t_sex = 'F', t_age = 21;
使用where和> < =比较运算符控制修改结果
--工资sal大于3000的工资增加500
update t_student set t_sal=t_sal+500 where t_sal>3000;
--将年龄大于23的学生的工资增加300
update t_student set t_sal=t_sal+300 where t_age > 23;
--将学号为1,11,21,31,41学生,年龄增长一岁,工资增长25%
update t_student set t_age=t_age+1, t_sal=t_sal*1.25 where t_id in (1, 11, 21, 31, 41);
删除表中所有数据
delete from 表名;
注意:仅仅是删除数据,表结构存在。
删除t_student表中的所有数据另外一种方法
truncate table t_student ;
delete和truncate 区别
- delete删除的数据可以恢复。写日志,dba可以根据日志恢复数据。
- truncate删除数据不能恢复。直接删,不记录日志。truncate删除数据不能恢复。直接删,不记录日志。
- delete删除慢,truncate删除快delete删除慢,truncate删除快
- delete可以有条件的删除,truncate默认所有的表内容都删除delete可以有条件的删除,truncate默认所有的表内容都删除
- 工作中使用delete,truncate在测试时可以用工作中使用delete,truncate在测试时可以用
根据条件删除数据
delete from t_student where t_name = '小明';
比较运算符
=、!=/<>、>、>=、<、<=
--删除姓名为xiaoMing学生信息
delete from t_student where name='xiaoMing';
--删除性别不为F的所有学生信息
delete from t_student where t_sex != 'F';
--删除年龄大于25的所有学生信息
delete from t_student where t_age > 25;
null
--删除电话为null的学生信息
delete from t_student where tel = null;
delete from t_student where tel is null;
and or
and连接两个条件,表示两个条件必须同时满足,结果才满足。
or 连接两个条件,表示其中任意一个条件成立,结果就成立。
--删除性别为M且年龄在25岁以上的所有学生信息
delete from t_student where t_sex='M' and t_age > 25;
--删除分数在80到90之间所有学生的信息
delete from t_student where t_score >= 80 and t_score <= 90;
--删除性别为M或者分数小于60分所有学生的信息
delete from t_student where t_sex='M' or t_score < 60;
--删除学号为1, 2, 3的学生信息,t_id此处是int类型
delete from t_student where t_id = 1 or t_id = 2 or t_i