sql建立表格语句Word文档下载推荐.docx
《sql建立表格语句Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《sql建立表格语句Word文档下载推荐.docx(6页珍藏版)》请在冰豆网上搜索。
2定义表的语句:
cReatetable
([]
[,[]][,]);
[例]
3修改表的语句:
alteRtable
[add[完整性约束]][dRop]
[alteRcolumn];
[例
]
4删除表的语句:
dRoptable
5增加、删除索引
三.实验内容
1.创建学生-课程数据库(命名为s_t),然后在s_t数据库中创建学生情况表student,课程表course,学生选课表sc。
各种表的表结构如下:
表3-2course表结构
1)修改表结构
将course表的cpno的长度改为3
将student表中的sdept列的长度改为50
给student表中的ssex列的增加默认约束,默认值为“男”为course表增加一列teacher,char(8)删除course表的teacher列
为sc增加主键约束,约束建立在sno,cno两列上,命名为s_c答案
--修改表中字段列的长度
--将course表的cpno的长度改为3
--将student表中的sdept列的长度改为50
altertablecoursealtercolumncpnochar(3)altertablestudentaltercolumnsdeptchar(50)--修改表位列增加约束
--给student表中的ssex列的增加默认约束,默认值为“男”
altertablestudentaddconstraintdf_stu_sexdefault(男)forssex--修改表增加新列
--为course表增加一列teacher,char(8)altertablecourseaddteacherchar(8)
--修改表删除列:
删除course表的teacher列altertablecoursedropcolumnteacher
--修改表添加主键约束:
为sc增加主键约束,约束建立在sno,cno两列上,命名为s_c
altertablescaddconstraintpk_sc_scprimarykey(sno,cno)
2.完成课后练习的spj数据库及相应的s、p、j表的建立,并按照以下的要求补充:
为每个表设一个主键
为s表增加一个唯一索引s_sno
为p表增加一个索引p_pno,要求降序为j表增加一个索引j_jno为spj表加外键约束
为spj表增加列qty的检查约束,要求qty>
为spj表增加索引spj_sno_pno_jno,要求索引列sno用降序,pno、jno用升序
3.预习inseRtinto语句的用法,完成以上所有数据库表的记录输入
答案
usemaster--进入当前需要使用的数据库go
--创建spj数据库createdatabasespjon--数据文件(
name=spj_db,
filename=e:
\sqlserver20xx\database\spj_db.mdf,size=3,
maxsize=10,filegrowth=1)
logon--日志文件(
name=spj_log,
\sqlserver20xx\database\spj_log.ldf,size=1,
maxsize=10,filegrowth=1)go
usespjgo
--在spj数据库中创建表createtables--创建供应商表(
snochar(5)notnullprimarykey,--主键供应商代码snamevarchar(20),--供应商姓名sstatusint,--供应商状态
cityvarchar(10),--供应商所在地)go
createtablep--创建零件表
(
pnochar(5)notnullprimarykey,--零件代码pnamevarchar(20)notnull,--零件名colorvarchar(10),--颜色weightint--重量)go
createtablej--创建工程项目表(
jnochar(5)notnullprimarykey,--项目代码jnamevarchar(20)notnull,--项目名称cityvarchar(10),--项目所在城市)go
createtablespj--创建供应情况表(
snochar(5)notnullReFeRencess(sno),--供应商代码pnochar(5)notnullReFeRencesp(pno),--零件代码jnochar(5)notnullReFeRencesj(jno),--工程项目代码qtyint,--供应数量
primarykey(sno,pno,jno))go
--为表创建索引
createuniqueindexs_snoons(sno)createindexp_pnoonp(pnodesc)createindexj_jnoonj(jno)
createindexspj_sno_pno_jnoonspj(snodesc,pno,jno)--为spj表加外键约束
altertablespjaddconstraintfk_snoforeignkey(sno)referencess(sno)altertablespjaddconstraintfk_pnoforeignkey(pno)referencesp(pno)altertablespjaddconstraintfk_jnoforeignkey(pno)referencesj(jno)
--为表添加check约束
altertablespjaddconstraintck_qtycheck(qty>
0)go
--向数据库表中插入数据
insertintosvalues(s1,精益,20,天津)insertintosvalues(s2,盛锡,10,北京)insertintosvalues(s3,东方红,30,北京)
篇二:
sql语句创建学生信息数据库表的示例
用sql语句创建如下三个基本表:
学生表(student)、课程表(course)、学生选课表(sc),结构如下所示
student表结构
createtablestudent()
course
表结构
createtablecourse()
sc表结构
cnovarchar(10)primarykey,cnamevarchar(20)notnull,ccreditintcheck(sctedit>
0),semesterintcheck(semester>
0),periodintcheck(period>
0)
snovarchar(7)primarykey,snamevarchar(10)notnull,
ssexchar
(2)check(ssex=‘男’orssex=’女’),sageintcheck(sagebetween15and45),sdeptvarchar(20)default(‘计算机系’)
createtablesc()
snovarchar(7)foreignkeyreferencesstudent(sno),cnovarchar(10)foreignkeyreferencescourse(cno),gradeintcheck(gradebetween0and100),primarykey(sno,cno)
1.查询学生选课表中的全部数据。
select*FRomscgo
2.查询计算机系学生的姓名、年龄。
selectsname,sageFromstudent
wheresdept=’计算机系’
3.查询成绩在70~80分之间的学生的学号、课程号和成绩。
selectsno,cno,gradeFromcourse,sc
o=oandsc.gradebetween70and80
4.查询计算机系年龄在18~20之间且性别为“男”的学生的
姓名和年龄。
wheresagebetween18and20andssex=’男’andsdept=’计算机系’go
5.查询课程号为“c01”的课程的最高分数。
selecttop1gradeselectmax(grade)as最高分Fromscfromsc
wherecno=’c01’wherecno=’c01’orderbygradedescorderbygradedesc
6.查询计算机系学生的最大年龄和最小年龄。
selectmax(sage)as年龄最大,min(sage)as年龄最小Fromstudent
7.统计每个系的学生人数。
selectcount(sdept)as学生人数,sdeptFromstudentgroupbysdept
8.统计每门课程的选课人数和考试最高分。
selectcount(sno)as选课人数,c.sno,max(grade)as最高分Fo=o
9.统计每个学生的选课门数和考试平均成绩,并按学号的升序显示结果。
selectsno,avg(grade)as’平均成绩’,count(cno)as’选课门数’Fromsc
groupbysnoorderbysno
10.查询总成绩超过200分的学生,要求列出学号、总成绩。
selectsno,sum(grade)Fromsc
groupbysno
havingsum(grade)>
200
11.查询选修了课程“c02”的学生的姓名和所在系。
selectsname,sdeptFromstudents1,scs2
wheres1.sno=o=’c02’
12.查询成绩在80分以上的学生的姓名、课程号和成绩,并按
成绩的降序排列结果。
selects1.sname,o,s2.gradeFromstudents1,scs2
wheres1.sn(sql建立表格语句)o=s2.snoandgrade>
80orderbygradedesc
13.查询哪些课程没有人选修、要求列出课程号和课程名。
o,ame
Fo=o,amehavingcount(s.sno)=0
14.用子查询实现如下查询:
(1)查询选