码迷,mamicode.com
首页 > 数据库 > 详细

数据库代码注释

时间:2019-04-24 23:27:43      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:bsp   定义   lstat   姓名   使用   int   mit   git   ati   

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;

数据库代码注释

标签:bsp   定义   lstat   姓名   使用   int   mit   git   ati   

原文地址:https://www.cnblogs.com/chenzeyuan/p/10765638.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!