/*
将自动提交功能置为ON以及置为OFF的具体语法。
将自动提交功能置为ON:
SET AUTOCOMMIT=0;
将自动提交功能置为OFF:
SET AUTOCOMMIT=1;
*/
SET AUTOCOMMIT=1;
#选中数据库 关键词:use
USE kj11;
/*
主键表:grade
外键表:Students
创建时:
先创建主表在创建外表
删除时:
先删除外表在删除主表
添加数据时:
先添加主键数据在添加外键数据
删除数据是:
先删除外键数据在删除主键数据
技巧:
添加数据insert 在创建表结构完成之后再进行操作
*/
#删除表
DROP TABLE IF EXISTS Students;
#删除表
DROP TABLE IF EXISTS grade;
#创建表二grade
CREATE TABLE IF NOT EXISTS `grade`(
GradeId INT(11) NOT NULL PRIMARY KEY,
GradeName VARCHAR(50) NOT NULL
)ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_bin COMMENT'年级表';
#创建表Studentd
CREATE TABLE IF NOT EXISTS `Students`(
StudentNo INT(11) NOT NULL AUTO_INCREMENT,
StudentName VARCHAR(50) NOT NULL,
Sex VARCHAR(10) NOT NULL,
Score DOUBLE,
Gradeid INT(11) NOT NULL,
PRIMARY KEY (StudentNo),CONSTRAINT fk_students_gradeId FOREIGN KEY (Gradeid) REFERENCES grade(Gradeid)
)ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_bin COMMENT'学生名单';
#添加年纪数据
INSERT INTO grade(GradeId,GradeName) VALUES
(1,'S1'),
(2,'S2'),
(3,'S3');
#查看年纪表记录
SELECT * FROM grade;
#查看表结构
DESC grade;
#添加学生数据
INSERT INTO Students(StudentNo,StudentName,Sex,Score,Gradeid) VALUES
(100,'张三','男',100,1),
(101,'李四','女',98,2),
(102,'王五','男',87,3),
(103,'赵六','女',60,3);
#查询学生表记录
SELECT * FROM Students;
#查看表结构
DESC Students;
#增删改查
/*
关键词:
1)delete from :删除表的记录,保留了之前自增的值
2)truncate table:请空表记录 连同之前自增的值一起删除
3)insert into :怎家记录
4)update...set...where...:修改指定数据
5)
*/
#先删除表中所有数据
TRUNCATE TABLE Students;
#查看学生表记录
SELECT * FROM Students;
#truncate table grade;错误:原因不能清空主键表下的自增的信息
#只能使用delete from:进行清空
DELETE FROM grade;
#查看表记录
SELECT * FROM grade;
#重新给主键添加一个新的自增
INSERT INTO grade(GradeId,GradeName) VALUES
(1,'大一'),
(2,'大二'),
(3,'大三'),
(4,'大四');
#查看表数据
SELECT * FROM grade;
#给学生表添加记录
INSERT INTO Students(StudentName,Sex,Score,Gradeid) VALUES
('张三','男',100,1),
('李四','女',98,2),
('王五','男',87,3),
('赵六','女',60,4);
#查看学生表
SELECT * FROM Students;
#修改学生赵六的成绩为99
UPDATE Students SET Score = 99
WHERE StudentName = '赵六';
#查看学生表
SELECT * FROM Students;
#修改主键表greade信息 GradeId=4修改成GradeId=5,GradeName改为毕业
/*
1.先在外键表中删除包含GradeId = 4的内容
2.在修改主键表中GradeId = 4 的内容;
*/
DELETE FROM Students
WHERE Gradeid = 4;
UPDATE grade SET GradeId = 5,GradeName = '毕业班'
WHERE GradeId = 4;
#查看表信息
SELECT * FROM grade;
#重新给外键表students添加信息
INSERT INTO Students(StudentNo,StudentName,Sex,Score,Gradeid)VALUES
(4,'赵六','女',60,5);
#查看学生表信息
SELECT * FROM Students;
#删除外键
ALTER TABLE `kj11`.`Students` DROP FOREIGN KEY `fk_students_gradeId`;
ALTER TABLE `kj11`.`Students` DROP INDEX `fk_students_gradeId`;