数据库代码注释
Posted chenzeyuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库代码注释相关的知识,希望对你有一定的参考价值。
use 学生课程;
drop database 学生课程;
show databases;
create database 学生课程;
use 学生课程;//使用数据库
create table 学生 (
学号 CHAR(4) NOT NULL,
姓名 CHAR(10) NOT NULL,
性别 ENUM(‘男‘,‘女‘),//枚举类型
专业 CHAR(20),
系别 CHAR(20),
年级 CHAR(2),
班别 CHAR(2),
联系电话 CHAR(8),
出生日期 DATE,
地区来源 VARCHAR(30),
变动情况 CHAR(10),
政治面貌 CHAR(8),
民族 CHAR(8) DEFAULT ‘汉‘,
PRIMARY KEY (学号)
)CHARSET=utf8;//字符设置
create table 课程注册 (
课程编号 CHAR(4),
课程名称 CHAR(10) UNIQUE,//唯一
任课教师 CHAR(8),
授课教室 CHAR(8),
学分 INT,
primary key (课程编号)//主键设置 我觉得吧这个写在定义后面也是可行的
)CHARSET=utf8;
create table 学期成绩 (
学号 CHAR(4),
课程编号 CHAR(4),
成绩 REAL,
备注 VARCHAR(50),
foreign key (学号) references 学生(学号),
foreign key (课程编号) references 课程注册(课程编号),
primary key (学号,课程编号)
)CHARSET=utf8;
delimiter //
create trigger check_成绩 before insert on 学期成绩
for each row
begin
declare msg varchar(200);
if NEW.成绩 > 100 or NEW.成绩 < 0 then
set msg = ‘成绩范围有误,检查范围‘;
signal sqlstate ‘HY000‘ set message_text = msg;
end if;
end;//
delimiter ;
drop trigger check_学号;
alter table 学期成绩 modify column 成绩 real;
insert into 学生(学号,姓名,性别,专业,系别,年级,班别,联系电话,出生日期,地区来源,政治面貌,民族)
values(‘2012‘,‘李春刚‘,‘男‘,‘计算机应用‘,‘计算机‘,‘01‘,‘02‘,‘88923546‘,‘1985-2-10‘,‘呼市‘,‘团员‘,‘汉‘);
update 学生 set 学号 = ‘0122‘ where 学号 = ‘2012‘;
insert into check_学号(学号,姓名,性别,专业,系别,年级,班别,联系电话,出生日期,地区来源,政治面貌,民族)
values(‘0012‘,‘李春刚‘,‘男‘,‘计算机应用‘,‘计算机‘,‘01‘,‘02‘,‘1245435‘,‘1985-2-10‘,‘呼市‘,‘团员‘,‘汉‘);
insert into 课程注册(课程编号,课程名称,任课教师,授课教室,学分)
values(‘J134‘,‘计算机应用‘,‘王晓梅‘,‘4‘,‘4‘);
insert into 学期成绩(学号,课程编号,成绩,备注)
values(‘2012‘,‘01‘,52,‘33‘);
select * from 学生 where 姓名 = ‘李春刚‘;
delete from 学期成绩 where 学号 = ‘0019‘;
delete from 学生 where 学号 = ‘2012‘;
delete from 课程注册 where 课程编号 = ‘134‘;
select * from information_schema.TABLES;
select * from information_schema.COLUMNS;
select * from information_schema.KEY_COLUMN_USAGE;
show index from information_schema.tables;
delimiter //
create trigger check_学号 before insert on 学生
for each row
begin
if NEW.学号 not rlike ‘^[1-9][[:digit:]]{2}[1-9]$‘
then
signal sqlstate ‘45000‘
set message_text = ‘学号格式有误‘;
end if;
end;//
delimiter ;
delimiter //
create trigger check_学号2 before update on 学生
for each row
begin
if NEW.学号 not rlike ‘^[1-9][[:digit:]]{2}[1-9]$‘
then
signal sqlstate ‘45000‘
set message_text = ‘学号格式有误‘;
end if;
end;//
delimiter ;
create view check_学号 as
select * from 学生
where 学号 rlike ‘^[1-9][[:digit:]]{2}[1-9]$‘
with check option;
drop view check_学号;
delimiter //
create trigger check_课程编号 before insert on 课程注册
for each row
begin
if NEW.课程编号 not rlike ‘^J[[:digit:]]{3}$‘
then
signal sqlstate ‘45000‘
set message_text = ‘课程编号格式有误‘;
end if;
end;//
delimiter ;
delimiter //
create trigger check_课程编号2 before update on 课程注册
for each row
begin
if NEW.课程编号 not rlike ‘^J[[:digit:]]{3}$‘
then
signal sqlstate ‘45000‘
set message_text = ‘课程编号格式有误‘;
end if;
end;//
delimiter ;
update 课程注册 set 课程编号 = ‘J123‘ where 课程编号 = ‘J134‘;
drop trigger check_联系电话;
alter table 学生 modify column 性别 ENUM(‘男‘,‘女‘) default ‘男‘;
delimiter //
create trigger check_联系电话 before insert on 学生
for each row
begin
if NEW.联系电话 not rlike ‘^8892[234][[:digit:]]{3}$‘
then
signal sqlstate ‘45000‘
set message_text = ‘联系电话格式有误‘;
end if;
end;//
delimiter ;
alter table 学生 add column 班长 CHAR(4);
delimiter //
create trigger check_班长 before insert on 学生
for each row
begin
if NEW.班长 not rlike ‘^[1-9][[:digit:]]{2}[1-9]$‘
then
signal sqlstate ‘45000‘
set message_text = ‘学号格式有误‘;
end if;
end;//
delimiter ;
alter table 学生 drop column 政治面貌;
alter table 学生 add column 政治面貌 CHAR(8);
alter table 学生 add column 总学分 INT(11);
alter table 课程注册 add column 授课学时 INT;
alter table 课程注册 add column 开课学期 INT;
alter table 学生 change 年级 入学时间 DATE;
以上是关于数据库代码注释的主要内容,如果未能解决你的问题,请参考以下文章
MySql SQL 脚本的可移植性,MySql 可以执行的注释代码
MySql SQL 脚本的可移植性,MySql 可以执行的注释代码