"Experimento de restricción de datos" de MySQL

/* 在查询分析器中用Create命令创建的“score_info”数据库中定义基本表:学生表(Student),课程表(Course),选修表(SC)。 */
-- 创建库  “score_info”
DROP DATABASE IF EXISTS score_info;
CREATE DATABASE IF NOT EXISTS score_info;
USE  score_info;

-- 创建学生表 Student,字符集 utf8
DROP TABLE IF EXISTS student;
CREATE TABLE student (
sno int not null primary key comment '学号', 
sname varchar(20) not null unique comment '学生姓名',
ssex enum('男','女') comment '性别',
sage smallint default 18 comment '年龄',
sdept varchar(30) comment '所在院系'
) charset utf8;

-- 创建课程表 Course,字符集 utf8
DROP TABLE IF EXISTS course;
CREATE TABLE course (
cno int not null primary key comment '课程号',
cname varchar(20) not null comment '课程名',
cpno int comment '先行课',
credit smallint comment '学分'
) charset utf8;

-- 创建选课表 SC,字符集 utf8 
DROP TABLE IF EXISTS SC;
CREATE TABLE SC (
sno int not null comment '学号',
cno int not null comment '课程号',
grade int comment '成绩',
primary key (sno,cno)
) charset utf8;


-- 学生表插入数据
INSERT INTO student VALUES 
(201215121,'李勇','男',20,'CS'),
(201215122,'刘晨','女',19,'CS'),
(201215123,'王敏','女',18,'MA'),
(201215124,'张立','男',19,'IS');
 
 -- 课程表插入数据
 INSERT INTO course VALUES 
(1, '数据库', 5, 4),
(2, '数学', NULL, 2),
(3, '信息系统', 1, 4),
(4, '操作系统', 6, 3),
(5, '数据结构', 7, 4),
(6, '数据处理', NULL, 2),
(7, 'PASCAL', 6, 4);

 -- 选课表插入数据
 INSERT INTO SC VALUES 
(201215121, 1, 92),
(201215121, 2, 85),
(201215121, 3, 88),
(201215122, 2, 90),
(201215122, 3, 80);
/* 表和数据输入完毕。开始操作。 */

(1) Agregue una restricción única en Cname a la tabla Course existente en la base de datos.

alterar el curso de la tabla agregar único (cname);

(2) Para la tabla Course existente en la base de datos, aumente la restricción de clave externa de Cno de referencia de Cpno (clave externa de tabla propia, también llamada clave interna y clave externa de tabla, dicha tabla se llama tabla autoasociada). Para conocer la clave externa, consulte la página 168 del libro de texto.

modificar curso de tabla añadir curso de referencias de clave externa (cpno) (cno);

(3) Agregue restricciones de clave externa (2 comandos) a la tabla SC que ya existe en la base de datos Los nombres de clave son sc_fk_sno y sc_fk_cno. ①Agregue la clave externa sc_fk_sno al campo sno: ②Agregue la clave externa sc_fk_cno al campo cno:

alterar tabla sc agregar restricción sc_fk_sno la clave externa (sno) hace referencia al estudiante (sno);

alterar tabla sc agregar restricción sc_fk_cno clave externa (cno) hace referencia al curso (cno);

(4) Verifique la restricción de clave principal en la tabla de Estudiantes y luego elimine la restricción de clave principal. Verifique el mensaje de error. Agregue una restricción única para el campo sno de la tabla de estudiantes y luego elimine la restricción de clave principal. ① Agregue una restricción única al campo sno de la tabla de estudiantes. ② Elimine la restricción de clave principal de la tabla de Estudiantes.

alterar la tabla estudiante agregar único (sno);

alterar la tabla, el alumno descarta la clave principal;

(5) Verifique la restricción de unicidad de Cname en la tabla del curso y luego elimine la restricción de unicidad. Escribir código: elimine la restricción única del campo Cname.

alterar el índice de caída del curso de la tabla cname;

(6) Verifique la restricción de valor predeterminado de Sage en la tabla de Estudiantes y luego elimine la restricción de valor predeterminado. Escribir código: eliminar la restricción de valor predeterminado de Sage (no es necesario escribir un comentario).

alterar la mesa estudiante modificar salvia smallint;

(7) Verifique la restricción no vacía del atributo Sname en la tabla Student y luego elimine la restricción no vacía. Escribir código: elimine la restricción no vacía de Sname (no es necesario escribir un comentario).

alterar tabla estudiante modificar sname varchar (20) ;; alterar tabla estudiante modificar sname varchar (20) nulo;

(8) Verifique las restricciones de clave externa en la tabla del curso y luego elimine las restricciones de clave externa. Escribir código: eliminar restricciones de clave externa.

alterar el curso de la tabla quitar la clave externa course_ibfk_1;

(9) Cambie la edad del estudiante 201215124 a 22 años.

actualizar el conjunto de estudiantes sage = 22 donde sno = 201215124;

(10) Aumentar la edad de todos los estudiantes en un año.

actualizar el conjunto de estudiantes sabio = sabio + 1;

(11) Agregue 5 puntos a las calificaciones de todos los estudiantes para el curso No. 1.

actualizar sc set grade = grade + 5 donde cno = 1;

(12) Modifique la identificación de estudiante de "201215121" a "201215221". Verifique el mensaje de error. Modifique el atributo de clave externa del campo sno de la tabla SC para actualizar en cascada (elimine la clave externa y agréguela). Modifique el número de estudiante nuevamente. ① Elimine la clave externa del campo sno de la tabla sc. ②Agregue la clave externa sc_fk_sno del campo sno de la tabla sc y configure la actualización en cascada (en la actualización, la cascada se agregó después de que se agregó el código de clave externa original, consulte la página 168 del libro de texto).

Primero vacío:
alter table sc soltar la clave externa sc_fk_sno;

第二 空 :
alterar tabla sc agregar restricción sc_fk_sno la clave externa (sno) hace referencia al estudiante (sno) en la cascada de actualización;

Supongo que te gusta

Origin blog.csdn.net/ziyue13/article/details/112070354
Recomendado
Clasificación