SQL server 数据库最新修改.docx
- 文档编号:5843474
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:19
- 大小:24.54KB
SQL server 数据库最新修改.docx
《SQL server 数据库最新修改.docx》由会员分享,可在线阅读,更多相关《SQL server 数据库最新修改.docx(19页珍藏版)》请在冰豆网上搜索。
SQLserver数据库最新修改
SQLserver数据库
第一章创建数据库
1用企业管理器创建数据库
(1)在企业管理器中,在控制台的数据库文字上右单击选择,新建数据库,然后给数据库起名字,比如STUDENT,
(2)然后在数据文件选项卡,选择数据文件放置位置;数据库文件名STUDENT_Data.MDF,初始大小1MB,文件增长限制为20MB,防止文件被数据写满。
同样在事务日志选项卡选择日志文件放置位置,初始大小1MB,文件属性为自动增长,最大文件大小限制为20MB,
2在查询分析器中用代码创建数据库
CREATEDATABASEdatabase_name
ONPRIMARY
(
NAME=,
FILENAME=‘’
SIZE=,
MAXSIZE=,
FILEGROWTH=
)
案例在查询分析器中创建数据库
CREATEDATABASEJSJX_DB
ONPRIMARY
(
NAME='JSJX_DB_DATA',
FILENAME='E:
\JSJX_DB_DATA.MDF',
SIZE=5MB,
MAXSIZE=20MB,
FILEGROWTH=20%
)
3查看数据库信息
(1)使用企业管理器在数据库上右单击选择属性
(2)代码查看EXECsp_helpdb‘jsjx_db’
第二章管理数据库
1打开数据库
(1)企业管理器中,控制台---服务器组---服务器----数据库……
(2)查询分析器中代码usedatabase_name
2删除数据库
(1)企业管理器中,在控制台的数据库上右单击选择删除
(2)代码DROPDATABASEdatabase_name
3分离数据库
在要分离数据库上右单击选择所有任务-----分离数据库
4附加数据库
在企业管理器的控制台---数据库----右单击选择所有任务-----附加数据库
5备份数据库:
在企业管理器的控制台---数据库----右单击选择所有任务-----备份数据库
6还原数据库:
在企业管理器的控制台---数据库----右单击选择所有任务-----还原数据库
第三章表的操作
常用数据类型
数据类型
类型
描 述
bit
逻辑数据类型
这种数据类型用于存储只有两种可能值的数据,如True或False
int
整数数据类型
int数据类型可以存储从(-2147483648)到(2147483647)之间的整数。
这种数据类型在数据库里每个值占用4个字节
float
浮点数据类型
float数据类型是一种近似数值类型,浮点数可以是从-1.79E+308到1.79E+308之间的任意数
datetime
日期时间类型
datetime数据类型用来表示日期和时间。
这种数据类型存储从1753年1月1日到9999年12月31日间所有的日期和时间数据,精确到三百分之一秒或3.33毫秒
CHAR
字符数据类型
char(n)按固定长度存储字符串,n必须从1-8000.若输入的数据不足nB,则补足后存储.若输入的数据过nB,则截断遑存储。
VARCHAR
字符数据类型
varchar(n)它与char类型相似,n必须从1-8000.之间的数值。
存储大小为输入数据字节的实际长度。
由于CHAR数据类型长度固定,因此它比VARCHAR类型的处理速度快。
TEXT
文本
TEXT数据类型用于存储大量文本数据,其容量理论上为1到2的31次方-1(2147483647)个字节,在实际应用时需要视硬盘的存储空间而定。
1建表的步骤
(1)定义表结构:
给表的每一列取字段名,并确定每一列的数据库型、数据长度、列数据是否可以为空等。
(2)设置约束:
设置约束是为了限制该列输入值的取值范围,以保证输入数据的正确性和统一性。
(3)添加数据:
表结构建立完成之后,应该向表中输入数据。
“班级”表的结构:
2创建表
(1)使用企业管理器,在student数据库,展开找到表图标,右单击选新建表,然后输入例如如下字段:
字段名称
数据类型
字段长度
是否为空
班级代码
Char
9
否
班级名称
Varchar
20
是
专业代码
Char
4
是
系部代码
Char
2
是
备注
Varchar
50
是
单击保存按钮保存表,起名字比如班级
输入内容如下
班级代码
班级名称
专业代码
系部代码
备注
010101001
01级软件工程001班
0101
01
010101002
01级信息管理002班
0102
01
010201001
01级经济管理001班
0201
02
010202002
01级会计002班
0202
02
(2)使用代码创建表
字段名
数据类型
长度
是否为空
系部代码
Char
2
否
系部名称
Varchar
30
否
系主任
Char
8
是
Usestudent
Go
createtabledbo.系部
(
系部代码char
(2)notnull,
系部名称Varchar(30)notnull,
系主任char(8)
)
3修改表结构
(1)在表图标上双击,然后再在需要的表上右单击选择------设计表比如添加、删除字段,修改原有的字段定义等
(2)代码方式
案例1在student数据库教师表中增加家庭住址一列,Varchar类型,允许空
Usestudent
Go
Altertable教师
Add家庭住址varchar(40)
Go
案例2在student数据库教师表家庭住址修改varchar(50),允许空
Usestudent
Go
Altertable教师
Altercolumn家庭住址varchar(50)
Go
案例3在student数据库教师表中删除“家庭住址“一列
Usestudent
Go
Altertable教师
Dropcolumn家庭住址
Go
4删除表
(1)在需要删除的表上右单击选择删除,选择全部删除
(2)代码比如
Droptable系部
Go
5添加数据
(1)双击表图标,在右侧表名上右单击选择打开表–返回所有行
(2)使用代码
例如使用insert向student库中系部表添加记录
Usestudent
Go
Insert系部
Values(’03’,’数学系’,’张三’)
Go
6查看表
(1)在表上右单击选择属性
(2)代码execsp_help表名
第四章数据库增删改查操作
1数据的添加
语法:
insert[into]tablename[column_list]values(datavalues)
案例1在专业表中添加一行记录:
在计算机系部中添加-个电子科学专业
Usestudent
Go
Insert专业
(专业代码,专业名称,系部代码)
Values
('0105','电子科学','01')
Go
案例2省略清单insert语句在班级表中添加2004级电子商务班
Usestudent
Go
Insert专业
(专业代码,专业名称,系部代码)
Values
('0106','电子系','01')
Go
2数据的修改update
案例3将教学计划表中专业代码为”0101”的“开课学期”值改为第2学期
Usestudent
Go
Update教学计划
Set开课学期=2
Where专业代码='0101'
Go
3数据的删除
案例4删除“课程注册”表中所有记录
Delete课程注册go
案例5删除“教师”表中没有姓名的记录
Delete教师where姓名isnull
Go
案例6删除课程注册表中姓名为“张斌”的课程号位“0001”的选课信息
Delete课程注册表
Where课程注册表.课程号='0001'and学号=(select学号from学生where姓名like'张斌')
Go
4数据查询
(1)查询表中若干列
案例1查询“学生”表中全体学生的记录
Select*from学生
Go
案例2查询全体教师的教师编号,姓名,和职称信息
Select教师编号,姓名,职称
From教师
Go
(3)查询表中若干记录
案例3查询选修了课程的学生号并且取消重复记录
Selectdistinct学号From课程注册
Go
(4)限制返回行数
案例4查询“课程注册”表中的前3条记录
Selecttop3*from课程注册
Go
(5)查询满足条件的元组
查询条件
运算符
意义
比较
=,>,<,>=,<=,!
=,<>,!
>
比较大小
确定范围
Betweenand,notBetweenand
判断值是否在范围内
确定集合
In,notin
判断值是否为列表中的值
字符匹配
Like,notlike
判断值是否与指定的字符通配符格式相符
空值
Isnull,notisnull
判断值是否为空
多重条件
And,or,not
用于多重条件判断
案例5查询“课程注册”表中成绩>50分的记录
Select*from课程注册where成绩>=50
Go
案例6查询出生日期在1970年至1982年之间的学生姓名、学号和出生日期
Select姓名,学号,出生日期from学生
Where出生日期between‘1970-01-01’and‘1982-12-31’
Go
案例7查询计算机系、经济管理系的班级名称与班级编号
select班级代码,班级名称from班级where系部代码in('01','02')
案例8字符匹配查询“学生”中姓“周”的同学的信息
Select*from学生where姓名like'周%'
Go
注意%代表任意长度字符;_下划线代表任意单个字符
案例9查询“教师”表中备注字段为空的班级信息
Select*from教师where备注isnull
Go
案例10多重条件查询查询“课程注册”表中课程号为”0001”成绩在70分—79分之间的学生的学号,成绩
Select学号,成绩from课程注册where课程号='0001'and成绩>=70and成绩<79
Go
(6)对查询结果排序
OrderbyASC(升序)、Desc(降序)
案例11查询选修”0001”号课程的同学的学号,并按成绩降序排列
Select学号,成绩from课程注册where课程号='0001'
Orderby成绩DESC
(7)对数据进行统计
使用集合函数
Count([distinct/all]*)统计记录个数。
Count([distinct/all]列名)统计一列中值的个数。
Sum([distinct/all]列名)计算一列值的总和(此列必须是数值型的)。
Avg([distinct/all]列名)计算一列值的平均值(此列必须是数值型的)。
Max([distinct/all]列名)求一列值中的最大值。
Min([distinct/all]列名)求一列值中的最小值。
案例12查询“教师”表中教师总数。
Selectcount(*)as教师总数from教师
Go
案例13查询“课程注册”表中学生的成绩平均分。
Selectavg(成绩)as平均分from课程注册
Go
案例14对结果进行分组
查询“课程注册”表中课程选课人数4人以上的各个课程号和相应的选课人数。
代码如下。
Select课程号,count(*)as选课人数from课程注册
Groupby课程号
Havingcount(*)>=4
Go
案例15Compute对查询的结果集中所有的记录进行汇总统计。
查询所有学生所有成绩的总和。
Select*from课程注册
Orderby学号
Computesum(成绩)
Go
案例16对每个学生的所有课程的成绩求和,并显示详细记录。
Select*from课程注册
Orderby学号
Computesum(成绩)by学号
Go
案例17用查询结果生成新的表
创建“课程注册”表的一个副本。
Select*into课程注册副本from课程注册
Go
Select*from课程注册副本
Go
合并结果集:
union
案例18查询“课程注册”表中0102专业的学生学号及课程成绩大于70分小于79分的学生学号,并按成绩降序排列记录。
Select*from课程注册where专业代码=’0102’
Union
Select*from课程注册where成绩>=70and成绩<79
Orderby成绩desc
Go
案例19查询“课程注册”表中选修了0001课程或选修了0002课程的学生,也就是选修了课程0001的学生集合与选修了课程0002的学生集合的并集,且按课程号升序排序。
Select*from课程注册where课程号='0001'
Union
Select*from课程注册where课程号='0002'
Orderby课程号asc
Go
(8)交叉连接:
两个表属性列的和
语法格式:
Select列表列名from表名1crossjoin表名2
其中crossjoin为交叉表连接关键字。
案例20使用上例中的“学生”表、“专业”表,实现交叉查询。
Select学号,姓名,性别,学生.系部代码,学生.专业代码,专业.专业代码,专业名称,专业.系部代码
From学生crossjoin专业
(9)自然连接
等值连接:
用=作为连接条件或连接谓词时候
自然连接:
在等值连接中,把目标列中重复的列删除。
用等值连接方法连接学生表和专业表,观察效果
Select学号,姓名,性别,学生.系部代码,学生.专业代码,专业.专业代码,专业名称,专业.系部代码From学生innerjoin专业on学生.专业代码=专业.专业代码
案例21自然连接“学生”表和“专业”表。
Select学号,姓名,性别,学生.系部代码,专业.专业代码,专业名称
From学生join专业on学生.专业代码=专业.专业代码
(10)自身连接查询:
一个表与自己进行连接
案例22使用“教师任课”表,查询至少为两个专业开设课程的教师编号和专业代码。
Selectfirst.教师编号,second.专业代码
From教师任课asfirstjoin教师任课assecond
Onfirst.教师编号=second.教师编号
Andfirst.专业代码!
=second.专业代码
(11)
左外连接是结果表中除了包含满足连接条件的记录外,还包括左表中不满足连接条件的记录。
左外连接语法格式
Select列表列名
From表名1left[outer]join表名2
On表名1.列名=表名2.列名
案例23将“学生”表左外连接“专业”表。
Select学号,姓名,性别,学生.系部代码,学生.专业代码,专业.专业代码,专业.专业名称,专业.系部代码
From学生leftouterjoin专业
On学生.专业代码=专业.专业代码
(12)右外连接是结果表中除了包含满足连接条件的记录外,还包括右表中不满足连接条件的记录。
案例24将“学生”表右外连接“专业”表。
Select学号,姓名,性别,学生.系部代码,学生.专业代码,专业.专业代码,专业.专业名称,专业.系部代码
From学生rightouterjoin专业
On学生.专业代码=专业.专业代码
(13)完全外连接是结果表中除了包含满足连接条件的记录外,还包括2个表中不满足连接条件的记录。
案例25将“学生”表完全外连接“专业”表
Select学号,姓名,性别,学生.系部代码,学生.专业代码,专业.专业代码,专业.专业名称,专业.系部代码
From学生fullouterjoin专业
On学生.专业代码=专业.专业代码
(14)复合连接:
on中连接有多个连接条件
案例26使用学生表,课程表和课程注册表,查询成绩在70分-80分之间(含70分和80分)的学生的学号,姓名,专业代码,选修课的课程号,课程名以及对应的成绩。
Selects.学号,s.姓名,s.专业代码,c.课程号,cn.课程名,c.成绩
From学生assjoin课程注册asc
Ons.学号=c.学号andc.成绩>=70andc.成绩<=80
Join课程ascn
Onc.课程号=cn.课程号
(15)带有比较运算符的子查询
案例27使用教师表,查询与“王钢”同在一个系的教师基本信息
Select教师编号,姓名,性别,学历,职称from教师
Where系部代码=(select系部代码from教师where姓名='王钢')
(16)带有exists运算符的子查询
使用教师表,查询与“王钢”同在一个系的教师基本信息
Select教师编号,姓名,性别,学历,职称from教师asT1
Whereexists(select*from教师asT2whereT2.系部代码andT2.姓名=’王钢’)
第五章约束
约束定义了关于允许什么数据进入数据库的规则。
使用约束的目的是为了防止列出现非法数据,以保证数据库中数据的一致性和完整性。
1常见约束
(1)NOTNULL指定不接受NULL值的列
(2)CHECK约束对放入列中的值进行限制,以强制执行域的完整性
(3)UNIQUE约束在列集内强制执行值的唯一性
(4)primarykey约束列这些列唯一标识表中的行
(5)ForeignKey约束标识表之间的关系
(6)default约束为列填入默认值
2创建主键约束
(1)用企业管理器创建主键约束在“学生”表,右单击选择“设计表”,在需要的字段上右单击选择设置主键
(2)使用SQL语句创建主键
案例1在student数据库中,建立一个“教材”表,包括教材代码、教材名称、书号、出版社、版本、价格六个字段,并将教材代码设置为主键。
Createtable教材
(
教材代码intprimarykey,
教材名称char(50),
书号char(50),
出版社char(50),
版本char(50),
价格char(50)
)
Go
案例2如果在创建”教材”表的时段没有指定主键,那么在创建好后的“教材”表中,将教材代码设置为主键。
Altertable教材
Addconstraintps_jc
Primarykeyclustered(教材代码)
Go
3创建唯一约束
(1)在表上右单击选择“设计表“,然后在要设置唯一约束字段上右单击选择---索引/键,单击新建按钮,给起名字,在从列名下拉框中选择字段名称,最好选择”创建unique”复选框和”约束’单选框。
(2)使用sql语句创建唯一约束
案例3在student表中“教材”表中,将“书号”字段创建一个唯一约束。
Altertable教材
Addconstraintuk_sh
Unique(书号)
Go
4创建检查约束
(1)在表上右单击选择“设计表“,然后在要设置check约束字段上右单击选择check约束,单击新建按钮,输入约束名,比如([学分]>=1and[学分]<=7).
(2)代码方式:
案例4利用sql语句创建“课程”表,并且在创建的同时,创建检查约束,是学分字段被约束在1至7之间。
Createtable课程
(
课程号intprimarykey,
课程名char(50),
学分char(50),
Constraint学分check(学分between1and7)
)
Go
5创建默认约束
(1)在表上右单击选择“设计表“,然后在要设置默认字段上比如性别字段。
在下方默认值处输入”男”
(2)案例5在student数据库中新建“学生注册”表,并将注册时间设置为当前日期。
Createtable学生注册
(
注册编码intprimarykey,
学号char(50),
注册时间datetimedefaultgetdate(),
学期char(50)
)
Go
案例6在student数据库中的“教师”表中,为学历字段创建默认值为“本科”的默认约束。
Altertable教师
Addconstraintdf_xl
Default‘本科’for学历
Go
6创建外键约束
(1)比如教师表,右单击选择设计表,选择要设置外键约束的字段,右单击选择关系,单击新建按钮,然后在主键表中选择主键表,比如系部表,在外键列表中选择教师表。
然后分别主键表和外键表中选择系部代码字段。
(2)用sql语句创建外键约束
案例7在student数据库中位“班级”表,为专业代码字段创建一个外键约束,从而保证输入有效的专业代码。
Altertable班级
Addconstraintfk_zydm
Foreignkey(专业代码)
References专业(专业代码)
Go
7查看约束的定语
(1)在表上右单击选择设计表,在右单击选择属性查看。
(2)代码案例8使用系统存储过程查看student数据库中定义的入学时间(名称为ck_rxsj)的约束信息和文本信息。
查询约束信息
Execsp_helpck_rxsj
Go
查询约束信息
Execsp_helptextck_rxsj
Go
8删除约束
案例9删除“课程”表中的入学时间(ck_rxsj)。
Altertable学生
Dropconstraintck_rxsj
Go
第六章Sqlserver安全管理与权限分配
1两种验证方式:
一种是windows验证方式,另一种windows和sqlserver混
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL server 数据库最新修改 数据库 最新 修改