/* 判断是不是该数据库已经存在 */
if exists(select 1 from master.dbo.sysdatabases where name='student')
drop database student
/*创建数据库 */
create database student
on primary
/*主数据文件的具体描述 */
(
name='student_data', --主数据库的文件逻辑名
filename='d:/work/student_data.mdf', --库的物理路径
maxsize=10mb, --数据库的初始大小
filegrowth=15% --增长率
)
log on
(
name='student_log',
filename='d:/work/student_data.ldf',
size=2mb,
filegrowth=1mb
)
/* 删除数据库 库名sqlsql*/
--DROP database sqlsql
use student --切换到要执行操作的数据库
/* 创建表*/
if exists(select * from master.dbo.sysdatabases where name='webstudent')
drop table webstudent --删除表
create table webstudent(
sid smallint identity(1,1),
sname varchar(20),
sxuehao varchar(20),
ssex int not null,
sage int ,
snum numeric(18,0),--身份证号 小数为0位,18位 非空
sjiguan varchar(100)
)
--主键约束
alter table webstudent
add constraint pk_sid primary key(sid)
--默认约束 如果不给该列加值则默认填写'籍贯不详'
alter table webstudent
add constraint df_sjiguan default('籍贯不详')for sjiguan
--唯一约束 只能有一个学号 不能有重复的学号
alter table webstudent
add constraint uq_sxuehao unique(sxuehao)
--检查约束 年龄在15到40岁之间
alter table webstudent
add constraint ck_sage check(sage between 15 and 40)
/*删除约束*/
alter table webstudent
drop constraint fk_sid
select * from webstudent
select * from score
/*单行插入值*/
insert into webstudent values('姓名', '060101008', 1, 22, '370829198409271710','')
/*多行插入值*/
insert webstudent (sname,sxuehao,ssex,sage,snum,sjiguan)
select '繁华蒂法', '060101010', '0', '34', '370829198709271710', '' Union
select '按时地方', '060101011', '1', '22', '370829198709271710', '' Union
select '赌东道', '060101012', '0', '23', '370829198709271710', '山东'
--创建成绩表
if exists(select 1 from master.dbo.sysdatabases where name='score')
drop table score
create table score(
sids int not null,
scoremark int not null
)
--添加外键约束 在副表里面加入约束 条件:主表的字段必须是关键字
alter table score--外键的表名
add constraint fk_score foreign key(sids) references webstudent--主表的名字
/*删除约束*/
alter table score
drop constraint fk_score
select * from score
/* 添加相关信息,要是关联成功则 在webstudent中没有的ID不能被插入数据 */
insert score (sids, scoremark)
select 11,34 Union
select 13,44 Union
select 14,45