DML 操作表中数据
SQL中的DML 用于对表中的数据进行增删改操作
插入数据
语法格式:
insert into 表名 (字段名1,字段名2...) values(字段值1,字段值2...);
创建一个student学生表:
student表中字段:
学员ID, sid int
姓名, sname varchar(20)
年龄, age int
性别, sex char(1)
地址, address varchar(40)
SQL示例
-- 创建学生表
CREATE TABLE student(
sid INT,
sname VARCHAR(20),
age INT,
sex CHAR(1),
address VARCHAR(40)
);
需求:使用3种方式向学生表中添加数据
•方式1: 插入全部字段, 将所有字段名都写出来
INSERT INTO student (sid,sname,age,sex,address) VALUES(1,'孙悟空',20,'男','花果山');
•方式2: 插入全部字段,不写字段名
INSERT INTO student VALUES(2,'孙悟饭',10,'男','地球');
•方式3:插入指定字段的值
INSERT INTO student (sname) VALUES('白骨精');
注意事项:
1)值与字段必须要对应,个数相同&数据类型相同
2)值的数据大小,必须在字段指定的长度范围内
3)varchar char date类型的值必须使用单引号,或者双引号 包裹。
4)如果要插入空值,可以忽略不写字段,或者插入null
图例:
更改数据
•需求1:将所有的性别改为女
不带条件的修改(慎用),语法格式:
update 表名 set 列名 = 值
SQL示例
UPDATE student SET sex = '女';
•需求2:将sid 为2的学生,性别改为男
带条件的修改,语法格式:
update 表名 set 列名 = 值 [where 条件表达式:字段名 = 值 ]
SQL示例
UPDATE student SET sex = '男' WHERE sid = 2;
•需求3:将sid为 2 的学员,年龄改为 20,地址改为 北京
SQL示例
UPDATE student SET age = 20,address = '北京' WHERE sid = 2;
3.6.3 删除数据
•需求1:删除student表中的所有数据
删除所有数据,语法格式:
delete from 表名
SQL示例
-- 方式1
DELETE FROM student;
-- 方式2
truncate table student;
以上两种方式的区别:
1)delete from 表名; 不推荐. 有多少条记录 就执行多少次删除操作. 效率低
2)truncate table 表名: 推荐. 先删除整张表, 然后再重新创建一张一模一样的表. 效率高
•需求2:删除 sid 为 1 的数据
指定条件 删除数据
delete from 表名 [where 字段名 = 值]
SQL示例
DELETE FROM student WHERE sid = 1;