使用DML操作数据库

主键和外键<面试题>

主键:能够唯一标识信息表中的一条数据的字段/字段组
#ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段名);
ALTER TABLE school_stu
ADD CONSTRAINT pk_stu_stuId
PRIMARY KEY school_stu(stuId);

外键<面试题>

外键:在一张表中的某个字段引用的数据来自另一张表的某个字段的信息。
主表:它的主键一般是需要被从表引用 从表:在其中拥有外键 可以引用主表的主键信息
grade主表 student从表
实现物理外键 通过SQL语句将外键绑定好 可以保证数据一致性
ALTER TABLE school_stu
ADD CONSTRAINT fk_stu_grade
FOREIGN KEY (gradeId)
REFERENCES grade(gradeId);

为了能够方便我们进行数据表操作 在实际项目中一般不设置物理外键 而设置逻辑外键

– CUD SQL

DDL 数据定义语言 CREATE DROP …
[DML] 数据操作语言 增删改
DQL 数据查询语言
DCL 数据控制语言

数据添加 INSERT

INSERT INTO 表名[(要添加值的字段列表)] VALUES(字段值列表<必须按照前面的顺序赋值>);
INSERT INTO school_stu (stuId,stuName,stuPwd) VALUES(2,‘石浩然’,‘root’);
如果你省略了字段列表 则需要将所有字段进行赋值 且严格按照顺序
INSERT INTO school_stu VALUES(3,‘呵呵’,‘hehe’,‘女’,2,‘12312’,‘x’,‘x’,‘xxx’,‘2019-05-23’);
如果有些字段有默认(主键有自动递增) 则可以使用null来表示 / 你不需要去给此字段赋值
INSERT INTO school_stu (stuId,stuName) VALUES(null,‘我是测试的’);

同时添加多条数据

INSERT INTO school_stu(stuName) VALUES(‘陈旭’),(‘李天一’),(‘努力过’);

添加多条数据(了解)

INSERT INTO school_stu(stuName)
SELECT ‘呵呵1’ UNION
SELECT ‘呵呵2’ UNION
SELECT ‘呵呵3’

将school_stu的id和名称 赋值到stu表中的对应列
必须保证要添加数据的表提前存在!!!!
INSERT INTO stu(stuId,stuName)
SELECT stuId,stuName FROM school_stu;

将school_stu的id和名称 赋值到一张新表newstu中
CREATE TABLE newstu(
SELECT stuId,stuName FROM school_stu
);

数据修改 UPDATE

修改语句

UPDATE 表名 SET 字段名 = 字段值,… [where条件语句]
如果不添加条件 则默认为全表更新
UPDATE school_stu SET stuName = ‘李天二’

WHERE 在哪/哪里?

WHERE 后可接一系列的判断条件 id = xxx and xxx = xx or xxx = xx and not xxx
UPDATE school_stu SET stuName = ‘李易峰’ WHERE stuId = 7;
UPDATE school_stu SET stuName = ‘李元霸’ WHERE gender = ‘男’

年级升级

UPDATE school_stu SET gradeId = gradeId + 1,phone = ‘13838384383’ WHERE stuId = 1;

数据删除 DELETE

DELETE FROM 表名 [where 条件]

DELETE FROM school_stu WHERE stuName = ‘李元霸’ AND gender = ‘男’;

TRUNCATE 可以进行数据删除

TRUNCATE TABLE school_stu;

标题<面试题>DELETE TRUNCATE的区别

相同点:都可以进行数据删除(全表删除)
不同点:DELETE可以进行条件删除 TRUNCATE只能进行全表删除
不同点:DELETE会保留自增序列 TRUNCATE除了表结构 其他数据全部清空 不会保留自增序列
不同点(先了解):TRUNCATE会结束事务 而DELETE不会影响到事务

猜你喜欢

转载自blog.csdn.net/chenxu6658/article/details/90547418