数据库系统概论 第3章 SQL语句复习(SQL Server实现)

说明:
1、如果语句需要用到前面的create语句创建的对象,但执行时提示相关对象不存在,此时应该把后续的语句注释,只执行create语句,然后将create语句注释,再执行后续语句。
2、一些例子与已有例子相似,未被选入本帖。同时,SQL Server不能识别的语句(例如drop cascade / restrict)相关的例子也没有收录。
3、在SQL Server中执行下列语句,温习SQL的常见语法。
4、为了防止报错,可以分批执行语句,每次只执行两个空行之间的语句,而将其余的语句注释掉。

create database Demo
use Demo
create user WANG for login Alice
create user ZHANG for login Bob
go

--例3.1 为用户WANG定义一个学生-课程模式S-T
create schema "S-T" authorization WANG
go
--例3.3 为用户ZHANG创建一个模式TEST,并在其中建立一个表TAB1。
create schema TEST authorization zhang
go
create table TEST.TAB1 (col1 smallint, con2 int, col3 char(20), col4 numeric(10,3), col5 decimal(5, 2))
--例3.5 建立一个“学生”表Student
create table Student (Sno char(9) primary key, Sname char(20) unique, Ssex char(2), Sage smallint, Sdept char(20));
--例3.6 建立一个“课程”表Course。
create table Course (Cno char(4) primary key, Cname char(40) not null, Cpno char(4), Ccredit smallint)
--例3.7 建立学生选课表SC
create table SC (Sno char(9), Cno char(4), Grade smallint, primary key (Sno, Cno))

--例3.8 向Student表增加“入学时间”列,数据类型为日期型。
alter table student add S_entrance date
--例3.9 将年龄的数据类型改为整数。
alter table student alter column sage int
--例3.10 增加课程名称必须取值唯一的约束条件。
alter table course add unique(cname)
--删除TAB1
drop table test.tab1
--例3.13 为学生-课程数据库中的student, course和sc三个表分别建立学号升序、课程号升序、学号升序和课程号降序的唯一索引。
create unique index Stusno on student(sno)
create unique index Coucno on course(cno)
create unique index SCno on sc(sno asc, cno desc)
--例3.14 将SC表的SCno索引名改为SCSno
exec sp_rename 'dbo.sc.scno', 'dbo.sc.SCSno' 
--建立和删除索引
create index idx on sc(grade)
drop index sc.idx

--先通过GUI插入书本P79的数据到各个表格,然后再执行下列语句。Course表的第7行的课程名称改成C/C++。
--添加外键
alter table course add constraint FK_Course_Cno foreign key (cpno) references course(cno)
alter table sc add constraint FK_SC_Sno foreign key (sno) references student(sno)
alter table sc add constraint FK_SC_Cno foreign key (cno) references course(cno
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值