《2022年创建数据库表格 .pdf》由会员分享,可在线阅读,更多相关《2022年创建数据库表格 .pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、创建数据库表格createdatabase zhangwei on primary ( name =scoredata3 , filename =d:zhangweizhangwei.mdf, size =10mb , maxsize=50mb , filegrowth=5mb ) log on ( name =scorelog1 , filename =d:zhangweizhangwei.ldf, size =3mb , maxsize=unlimited, filegrowth=2) go 更改文件属性ALTER DATABASE studentscore MODIFY FILE (NA
2、ME = sss_data, SIZE = 20MB, MAXSIZE=60 ) GO 更改逻辑文件名ALTER DATABASE studentscore MODIFY FILE (NAME=sss_data, NEWNAME = scoredata1 ) 删除数据库文件alter DATABASE StudentScore remove file ScoreData4 主键约束格式: CONSTRAINT 约束名 PRIMARY KEY ( 列名) 。如: CONSTRAINT Pk_课程表 PRIMARY KEY ( 课程号 ) 惟一键约束:格式: CONSTRAINT 约束名 UNIQ
3、UE KEY ( 列名) 如: CONSTRAINT Uk_专业表 UNIQUE (专业名 ) 外键( FOREIGN KEY )约束:格式: CONSTRAINT 约束名 FOREIGEN KEY ( 外键列) REFERENCES 引用表名(引用列)如: CONSTRAINT Fk_CourseId FOREIGN KEY ( 课程号) REFERENTCES 成绩表 (课程号) , 检查( CHECK )约束:CHECK 约束通过限制可输入或修改的一列或多列的值来强制实现域完整性,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
4、 - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 它作用于插入( INSERT )和修改( UPDATE)语句。格式: CONSTRAINT 约束名 CHECK (检查表达式 ) 如:CONSTRAINT Ck_成绩表 CHECK (成绩=0) 默认值( DEFAULT )约束:格式: CONSTRAINT 约束名 DEFAULT 默认值如: CONSTRAINT De_bScore DEFAULT(0) 创建规则创建规则的语法是:CREATE RULE rule_name AS condition_expression 例:crea
5、te rule eee as kk=60 and kk 200) 例:查找学生成绩大于学分为4 的最低成绩的学生的学号、姓名、课程名称、成绩和学分。SELECT dbo. 学生表 . 学号, dbo. 学生表 . 姓名, dbo. 课程表 . 课程名称 , dbo.成绩表 . 成绩, dbo. 成绩表 . 学分FROM dbo. 成绩表 INNER JOIN dbo.学生表 ON dbo. 成绩表 . 学号 = dbo. 学生表 . 学号 INNER JOIN dbo.课程表 ON dbo. 成绩表 . 课程号 = dbo. 课程表 . 课程号WHERE (dbo. 成绩表 . 成绩 = AN
6、Y (SELECT 成绩 FROM 成绩表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - WHERE 成绩表 . 学分=4) 例:钱河的成绩加 100 分。UPDATE 成绩表SET 成绩 = 成绩 + 100 WHERE ( 学号 IN (SELECT 学号 FROM 学生表 WHERE 姓名 = 钱河) 例:查询平均(每一门课)成绩大于80 分学生的情况SELECT 学生表 . 学号, 学生表 . 姓名, 学生表 . 性别
7、into student FROM 学生表 INNER JOIN 成绩表 ON 学生表 . 学号 = 成绩表 . 学号WHERE ( 成绩表 . 课程号 IN (SELECT 成绩表 . 课程号 FROM 成绩表 INNER JOIN 学生表 ON 成绩表 . 学号 = 学生表 . 学号 GROUP BY 成绩表 . 课程号 HAVING (AVG(成绩表 . 成绩) 80) 视图例: 在“计算机系学生”视图上,列出年龄小于22 的学生。SELECT 姓名, 系部名称 , 年龄FROM dbo. 计算机系学生WHERE ( 年龄 = 60) 删除视图:drop view view_name 局
8、部变量例:声明局部变量Studno、Studname ,并用 SET语句为其赋值。DECLARE Studno Char(10) ,Studname Char(8) SET Studno =200009001 SET Studname = 葛文 例:从成绩表中查询学号为“ 200009001 ”学生的成绩总分, 并将其赋给变量 Sumscore 。DECLARE Sumscore Float SELECT sumscore = SUM(成绩) FROM 成绩表 WHERE 学号 = 200009001 全局变量例:演示全局变量 rowcount 和error的使用。select * from
9、学生表where 性别= 女 select rowcount 处理记录数select error error的值为:CAST 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - - - - - 功能:将某种数据类型的表达式显式转换为另一种数据类型。 CAST 和 CONVERT 提供相似的功能。例:将学生表中的姓名属性的类型转换为char(50) select cast( 姓名 as char(50),学号 from 学生表或:select co
10、nvert(char(50),姓名), 学号 from 学生表BEGIN.END 功能:当需要将一个以上的S Q L 语句作为一组对待时, 可以使用 BEGIN和 END 将它们括起来形成一个SQL语句块。例:如果课程 aa 的平均成绩低于 60,那么显示“不及格”,如果高于80,显示“优秀”,其他为“合格”。declare score numeric if (select avg(成绩) from 成绩表where 课程号 =aa )=80 begin select score= avg(成绩) from 成绩表where 课程号 =aa print 平均成绩为 :+convert(varc
11、har(10),score)+space(5)+此科目优秀 end else begin select score= avg(成绩) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - from 成绩表where 课程号 =aa print 平均成绩为 :+convert(varchar(10),score)+space(5)+此科目合格 end 用户自定义数据类型(1)用户定义数据类型 使用系统存储过程sp_addtype 来
12、定义(增加一个用户定义数据类型)。语法如下:sp_addtype type_name,phystype type_name 是用户定义数据类型的名字例如:exec sp_addtype typ_ch_pid,char(4) (2)查看用户定义数据类型例如: exec sp_help typ_ch_tid (3) 删除用户定义数据类型。例如: exec sp_droptype typ_ch_pid WAITFOR 例:waitfor delay 00:00:05 insert into 学生表 (学号, 姓名) values(200206008,许晴) CASE CASE 表达式可以根据多个选择
13、确定执行的内容。语法为:CASE expression WHEN EXPRESSION THEN RESULT ,.N ELSE RESULT END 例:将成绩统计等级,并将结果保存在等级表中。select 学号, 等级= case when 成绩90 then 优秀 else 合格 end , 成绩 into 等级表from 成绩表where 成绩 is not null 创建触发器例:在StudentScore 数据库中创建一个删除触发器,实现当删除“学生表”中的某个学生记录时同时删除“成绩表”中与之对应的成绩记录。 USE StudentScore GO CREATE TRIGGER
14、Student_Delete ON 学生表AFTER DELETE AS DELETE FROM 成绩表WHERE 学号 In (SELECT 学号 FROM Deleted) 例:创建触发器 Student_Delete ,如果删除、修改、插入“学生表”中任何数据,则将提示一条信息:不得对数据表进行修改!USE StudentScore if exists(select name from sysobjects where name=Student_Delete and type=tr) drop trigger Student_Delete GO CREATE TRIGGER Student_Delete ON 学生表AFTER DELETE,insert,update AS BEGIN raiserror(不得对数据表进行修改! ,16,1) end名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -