主键:能够唯一标识信息表中的一条数据的字段/字段组 #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);
为了能够方便我们进行数据表操作 在实际项目中一般不设置物理外键 而设置逻辑外键
DDL 数据定义语言 CREATE DROP … [DML] 数据操作语言 增删改 DQL 数据查询语言 DCL 数据控制语言
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 表名 SET 字段名 = 字段值,… [where条件语句] 如果不添加条件 则默认为全表更新 UPDATE school_stu SET stuName = ‘李天二’
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 FROM school_stu WHERE stuName = ‘李元霸’ AND gender = ‘男’;
TRUNCATE TABLE school_stu;
相同点:都可以进行数据删除(全表删除) 不同点:DELETE可以进行条件删除 TRUNCATE只能进行全表删除 不同点:DELETE会保留自增序列 TRUNCATE除了表结构 其他数据全部清空 不会保留自增序列 不同点(先了解):TRUNCATE会结束事务 而DELETE不会影响到事务
