#创建外键方式一:创建子表的同时创建外键
#年级表(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
#使用函数
#在名字前加 姓名:
CONCAT 为追加字符串
UPDATE student SET studentname=CONCAT(“姓名:”,studentname)
#删除数据
#删除大四 因为大四的 grade 是 4 所以
DELETE FROM grade WHERE gradeid=4