创建学生表CREATE TABLE student( stuld INT PRMARY KEY AUTO_INCREMENT COMMENT学生编号, stuNAME VARCHAR(25)COMMENT学生姓名, stuPwd VARCHAR(50)COMMENT学生密码, gender CHAR(2)DEFAUT男COMMENT性别, gradeId INT COMMENT年级编号编号 phone VARCHAR(11COMMENT电话, email VARCHAR(25) COMMENT邮箱, address VARCHAR(255)DEFAUT地址不详, identityCard VARCHAR(18)UNQUE COMMENT省份证号 )COMMENT学生表, 1…修改表: 更改identityCard字段名称为identityId CHANGE:更改字段信息时 并且可以改名/MODIFY 只能改字段信息 ALTER TABLE student CHANGE identityCard identityId VARCHAR(18); 添加字段信息 出生日期 birthday/bornDate datetime COMMENT ‘出生日期’ ALTER TABLE student ADD bornDate datetime COMMENT出生日期 删除字段信息 删除出生日期: ALTER TABLE student DROP bornDate; 修改表名 ALTER TABLE student RENAME school_stu;
主键和外键 主键:能够唯一标识信息表中的一条数据的字段/字段组 ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段名); ALTER TABLE school stu ADD CONSTRNIAT pk_stu_stuld PRIMARY KEY school stu(stuld) 外键: 外键:在一张表中的某个字段引用的数据来自另一张表的某个字段的信息, 主表:它的主键一般是需要被从表引用 从表:在其中拥有外键 可以引用主表的主 grade主表 student从表 实现物理外键: 通过SQL语句将外键绑定好,可保证数据点一致性 ALTER TABLE school stu ADD CONSTRAINT fk_stu_grade FOREIGN KEY (gradeId) REFERENCES grade(gradeId); 为了进行数据表操作 在实际项目中一般不设置物理外键 而设置逻辑外键
/* DDL 数据定义语言 CREATE DROP … [DML] 数据操作语言 增删改 DQL 数据查询语言 DCL 数据控制语言 */ 数据添加:TNSERT INSERT INTO表名[(要添加值的字段列表)] VALUES(字段值列表<必须按照前面的顺序赋值>); INSERT INTO school_stu (stuId,stuName,stuPwd) VALUES(2,'王五,‘root’); 若省略了字段列表 则需要将所有字段进行赋值 且严格按照顺序 INSERT INTO school_stu V省略了字段列表 则需要将所有字段进行赋值 且严格按照顺序ALUES(3,‘呵呵’,‘hehe’,‘女’,2,‘12345’,‘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 + 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不会影响事务