#创建外键方式一:创建子表的同时创建外键 #年级表(id\年及名称) CREATE TABLE IF NOT EXISTS grade( gradeid INT(10) PRIMARY KEY AUTO_INCREMENT, #主键garde gradename VARCHAR(50) NOT NULL
); #学生信息表(学号,性名,性别,年级,手机号,地址,出生日期,邮箱,身份证号) CREATE TABLE student( studentno INT(4) PRIMARY KEY, #学号int类型主键 studentname VARCHAR(20) NOT NULL DEFAULT’姜言荣’, #学生姓名长度20不能为空默认是姜言荣 sex TINYINT(1) DEFAULT 1, #性别 1代表男的 gradeid INT(10), #外键年级 phone VARCHAR(50) NOT NULL, #手机号不能为空 address VARCHAR(255), #家庭住址 borndate DATETIME, #出生日期 email VARCHAR(50), #邮箱 identityCard VARCHAR(18) NOT NULL, #身份证号长度18位 不能为空 CONSTRAINT FK_gradeid FOREIGN KEY(gradeid) REFERENCES grade(gradeid) #我创建外键约束
);
#创建外键方式二:创建子表完毕后,修改子表添加外键 CREATE TABLE student( studentno INT(4) PRIMARY KEY, #学号int类型主键 自增的列 studentname VARCHAR(20) NOT NULL DEFAULT’姜言荣’, #学生姓名长度20不能为空默认是姜言荣 sex TINYINT(1) DEFAULT 1, #性别 1代表男的 gradeid INT(10), #外键年级 phone VARCHAR(50) NOT NULL, #手机号不能为空 address VARCHAR(255), #家庭住址 borndate DATETIME, #出生日期 email VARCHAR(50), #邮箱 identityCard VARCHAR(18) NOT NULL #身份证号长度18位 不能为空
);
ALTER TABLE student #修改表 ADD CONSTRAINT FK_gradeid FOREIGN KEY(gradeid) REFERENCES grade(gradeid); #我创建外键约束
#删除具有主外键关系的表时,要先删除子表,再删主表。
#删除外键
ALTER TABLE student DROP FOREIGN KEY FK_gradeid; #我去修改student表把他的外键删除+外键名 ALTER TABLE student DROP INDEX FK_gradeid; #执行完上一步之后 还会存在 是因为有索引 本句就是再把索引删除
#使用语句如何增加数据 INSERT INTO grade(gradename)VALUES(‘大一’); INSERT INTO grade VALUES(2,‘大二’); #可以增加但是失去了自增的意义 INSERT INTO grade(gradename)VALUES(‘大三’),(‘大四’); #实现同时增加
INSERT INTO student(studentno,studentname,sex,gradeid,phone,address,borndate,email,identityCard) VALUES(1000,‘张三’,DEFAULT,1,‘18704529482’,‘中国’,NOW(),NULL,‘23345678907654367’), #NOW()代表当前时间 (1001,‘李四’,DEFAULT,2,‘18704529482’,‘北疆’,NOW(),NULL,‘66645678907654367’), (1002,‘马武’,DEFAULT,3,‘18704529482’,‘东北’,NOW(),NULL,‘23345678907654367’);
#使用语句修改数据 #将李四的地址修改为南京 UPDATE student SET address=‘南京’ WHERE studentno=1001
#同时修改多列 UPDATE student SET address=‘南京’,email=‘lisi@163.com’ WHERE studentno=1001
#条件可以使用运算符 UPDATE student SET sex=2 WHERE studentno=1001 OR studentno=1002
UPDATE student SET sex=1 WHERE studentno>=1000 AND studentno<=1002
#在1001和1002之间 并且包括1001和1002 UPDATE student SET sex=2 WHERE studentno BETWEEN 1001 AND 1002
#使用函数 #在名字前加 姓名:
UPDATE student SET studentname=CONCAT(“姓名:”,studentname)
#删除数据 #删除大四 因为大四的 grade 是 4 所以 DELETE FROM grade WHERE gradeid=4