2022年SQLserver数据库最新修改 .pdf
SQL server 数据库第一章创建数据库1 用企业管理器创建数据库(1)在企业管理器中,在控制台的数据库文字上右单击选择,新建数据库,然后给数据库起名字,比如STUDENT, ( 2)然 后在 数 据 文 件 选 项 卡 ,选 择 数 据 文 件 放 置 位 置; 数 据 库 文 件 名STUDENT_Data.MDF,初始大小 1MB,文件增长限制为20MB,防止文件被数据写满。同样在事务日志选项卡选择日志文件放置位置,初始大小1MB,文件属性为自动增长,最大文件大小限制为20MB,2 在查询分析器中用代码创建数据库CREATE DATABASE database_name ON PRIMARY ( NAME= , FILENAME= SIZE=, MAXSIZE=, FILEGROWTH= ) 案例 在查询分析器中创建数据库CREATE DATABASE JSJX_DB ON PRIMARY ( NAME=JSJX_DB_DATA, FILENAME=E:JSJX_DB_DATA.MDF, SIZE=5MB, MAXSIZE=20MB, FILEGROWTH=20% ) 3 查看数据库信息(1)使用企业管理器在数据库上右单击选择属性(2)代码查看EXEC sp_helpdb jsjx_db第二章 管理数据库1 打开数据库(1)企业管理器中,控制台-服务器组 -服务器 -数据库,(2)查询分析器中代码 use database_name 2 删除数据库(1)企业管理器中,在控制台的数据库上右单击选择删除名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - (2)代码 DROP DATABASE database_name 3 分离数据库在要分离数据库上右单击选择所有任务 -分离数据库4 附加数据库在企业管理器的控制台 -数据库 -右单击选择所有任务 -附加数据库5 备份数据库:在企业管理器的控制台-数据库 -右单击选择所有任务-备份数据库6 还原数据库:在企业管理器的控制台-数据库 -右单击选择所有任务-还原数据库第三章 表的操作常用数据类型数据类型类型描述bit 逻 辑 数 据类型这种数据类型用于存储只有两种可能值的数据,如 True 或 False int 整 数 数 据类型int 数据类型可以存储从 ( -2 147 483 648)到(2147483 647)之间的整数。这种数据类型在数据库里每个值占用4 个字节float 浮 点 数 据类型float 数据类型是一种近似数值类型,浮点数可以是从 -1.79E+308 到 1.79E+308 之间的任意数datetime 日 期 时 间类型datetime 数据类型用来表示日期和时间。这种数据类型存储从1753 年 1 月 1 日到 9999 年 12月 3 1 日间所有的日期和时间数据,精确到三百分之一秒或 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 (2 147 483 647 )个字节,在实际应用时需要视硬盘的存储空间而定。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - 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 是Use student Go create table dbo. 系部( 系部代码 char(2) not null , 系部名称Varchar (30) not null, 系主任 char(8) ) 3修改表结构名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - - - - - - - - (1) 在表图标上双击,然后再在需要的表上右单击选择-设计表比如添加、删除字段,修改原有的字段定义等(2) 代码方式案例 1 在 student数据库教师表中增加家庭住址一列,Varchar 类型,允许空Use student Go Alter table 教师Add 家庭住址varchar(40) Go 案例 2 在 student数据库教师表家庭住址修改 varchar(50) ,允许空Use student Go Alter table 教师Alter column 家庭住址varchar(50) Go 案例 3 在 student数据库教师表中删除“家庭住址“一列Use student Go Alter table 教师Drop column 家庭住址Go 4删除表(1) 在需要删除的表上右单击选择删除,选择全部删除(2) 代码比如Drop table 系部Go 5添加数据(1) 双击表 图标,在右侧表名上右单击选择打开表 返回所有行(2) 使用代码例如使用 insert 向 student库中系部表添加记录Use student Go Insert 系部Values ( 03 , 数学系 , 张三 )Go 6查看表(1) 在表上右单击选择属性(2) 代码 exec sp_help 表名名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 - - - - - - - - - 第四章 数据库增删改查操作1 数据的添加语法: insert into tablename column_list values(data values) 案例 1 在专业表中添加一行记录:在计算机系部中添加-个电子科学专业Use student Go Insert 专业(专业代码 ,专业名称 ,系部代码 ) Values (0105,电子科学 ,01) Go 案例 2 省略清单 insert语句 在班级表中添加 2004 级电子商务班Use student Go Insert 专业(专业代码 ,专业名称 ,系部代码 ) Values (0106,电子系 ,01) Go 2 数据的修改update 案例 3 将教学计划表中专业代码为 0101 的“开课学期”值改为第2 学期Use student Go Update 教学计划Set 开课学期 =2 Where 专业代码 =0101 Go 3 数据的删除案例 4 删除“课程注册”表中所有记录Delete 课程注册go 案例 5 删除“教师”表中没有姓名的记录Delete 教师 where 姓名 is null 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - - - Go 案例 6 删除课程注册表中姓名为“张斌”的课程号位“ 0001”的选课信息Delete 课程注册表Where 课程注册表 .课程号 =0001and 学号=(select 学号 from 学生 where 姓名 like 张斌 ) Go 4 数据查询(1)查询表中若干列案例 1 查询“学生”表中全体学生的记录Select * from 学生Go 案例 2 查询全体教师的教师编号,姓名,和职称信息Select 教师编号 ,姓名,职称From 教师Go (3) 查询表中若干记录案例 3 查询选修了课程的学生号并且取消重复记录Select distinct 学号 From 课程注册Go (4) 限制返回行数案例 4 查询“课程注册”表中的前3 条记录Select top 3* from 课程注册Go (5) 查询满足条件的元组查询条件运算符意义比较=,=,=,!=,! 比较大小确定范围Between and,not Between and判断值是否在范围内确定集合In,not in 判断值是否为列表中的值字符匹配Like,not like 判断值是否与指定的字符通配符格式相符空值Is null,not is null 判断值是否为空多重条件And,or,not 用于多重条件判断案例 5 查询“课程注册”表中成绩50 分的记录Select * from 课程注册where 成绩 =50 Go 案例 6 查询出生日期在 1970 年至 1982年之间的学生姓名、学号和出生日期Select 姓名 ,学号 ,出生日期from 学生Where 出生日期between ? 1970-01-01 and ? 1982-12-31名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 14 页 - - - - - - - - - Go 案例 7 查询计算机系、经济管理系的班级名称与班级编号select 班级代码 ,班级名称from 班级 where 系部代码in(01,02) 案例 8 字符匹配查询“学生”中姓“周”的同学的信息Select * from 学生 where 姓名 like 周% Go 注意 %代表任意长度字符;_下划线代表任意单个字符案例 9 查询“教师”表中备注字段为空的班级信息Select * from 教师 where 备注 is null Go 案例 10 多重条件查询查询“课程注册” 表中课程号为 0001 成绩在 70 分79分之间的学生的学号,成绩Select 学号 ,成绩from 课程注册where 课程号 =0001and 成绩 =70 and 成绩=4 Go 案例 15 Compute对查询的结果集中所有的记录进行汇总统计。查询所有学生所有成绩的总和。Select * from 课程注册Order by 学号Compute sum(成绩) Go 案例 16 对每个学生的所有课程的成绩求和,并显示详细记录。Select * from 课程注册Order by 学号Compute sum( 成绩) by 学号Go 案例 17 用查询结果生成新的表创建“课程注册”表的一个副本。Select * into 课程注册副本from 课程注册Go Select * from 课程注册副本Go 合并结果集: union 案例 18 查询“课程注册” 表中 0102专业的学生学号及课程成绩大于70 分小于79 分的学生学号,并按成绩降序排列记录。Select * from 课程注册where 专业代码 = 0102Union Select * from 课程注册where 成绩=70 and 成绩=70 and c.成绩=1 and 学分=7). (2)代码方式:案例 4 利用 sql语句创建“课程”表,并且在创建的同时,创建检查约束,是学分字段被约束在1 至 7 之间。Create table 课程( 课程号int primary key, 课程名 char(50), 学分 char(50), Constraint 学分 check(学分 between 1 and 7 ) ) Go 5 创建默认约束(1) 在表 上右单击选择“设计表“,然后在要设置默认字段上比如性别字段。在下方默认值处输入 男(2)案例 5 在 student 数据库中新建“学生注册”表,并将注册时间设置为当前日期。Create table 学生注册( 注册编码int primary key, 学号 char(50), 注册时间datetime default getdate(), 学期 char(50) ) Go 案例 6 在 student 数据库中的“教师”表中,为学历字段创建默认值为“本科”的默认约束。Alter table 教师Add constraint df_xl Default ? 本科 for 学历Go 6 创建外键约束(1)比如教师表,右单击选择设计表,选择要设置外键约束的字段,右单击选择 关系,单击新建按钮,然后在主键表中选择主键表,比如系部表,在外键列表中选择教师表。然后分别主键表和外键表中选择系部代码字段。(2)用 sql语句创建外键约束案例 7 在 student数据库中位“班级”表,为专业代码字段创建一个外键约束,从而保证输入有效的专业代码。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 14 页 - - - - - - - - - Alter table 班级Add constraint fk_zydm Foreign key (专业代码 ) References 专业(专业代码 ) Go 7查看约束的定语(1)在表上右单击选择设计表,在右单击选择属性查看。(2) 代码案例 8 使用系统存储过程查看student 数据库中定义的入学时间 (名称为 ck_rxsj)的约束信息和文本信息。查询约束信息Exec sp_help ck_rxsj Go 查询约束信息Exec sp_helptext ck_rxsj Go 8删除约束案例 9 删除“课程”表中的入学时间(ck_rxsj) 。Alter table 学生Drop constraint ck_rxsj Go 第六章 Sql server安全管理与权限分配1 两种验证方式:一种是windows验证方式,另一种windows和 sql server混合验证方式在控制台中展开服务器组-在服务器中右单击选择属性,在安全性选项卡中修改2 sql server中超级登录账号sa, 查看登录账号: 在控制台中找到服务器的树形目录中找到安全性-登录,可以看到登录用户3 创建登录账号:在控制台中服务器-安全性 -登录上右单击选择新建登录。起名字,然后设置密码,和要管理的数据库,在服务器角色选项卡中选择角色,另外还可以设置要访问和管理的数据库名sysadmin 可以在SQL Server 中执行任何活动。serveradmin 可以设置服务器范围的配置选项,关闭服务器。setupadmin 可以管理链接服务器和启动过程。securityadmin 可以管理登录和CREATE DATABASE 权限,还可以读取错误日志和更改密码。processadmin 可以管理在SQL Server 中运行的进程。dbcreator 可以创建、更改和除去数据库。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 14 页 - - - - - - - - - diskadmin 可以管理磁盘文件。bulkadmin 可以执行BULK INSERT 语句。服务器角色是负责管理与维护SQL server 组4 禁止登录账号在控制台展开找到在目标服务器下面展开找到安全性然后单击登录,在禁止的账号上右单击选择 属性,然后再常规选项中选择拒绝访问、5 删除登录账号在控制台展开找到在目标服务器下面展开找到安全性然后单击登录,在删除的账号上右单击选择删除6创建数据库用户在控制台中展开数据库,找到数据库的用户 一项,右单击选择新建数据库用户,起名字,选择角色,确定。7删除数据库的用户展开控制台 -某数据库 -用户 ,找到要删除用户,右单击选择删除。8设置数据库用户账号权限在企业管理器的右窗格中用户账号右单击选择属性,打开数据库用户属性对话框, 单击权限按钮设置权限9 数据库角色固定数据库角色描述db_owner 在数据库中有全部权限。db_accessadmin 可以添加或删除用户 ID 。db_securityadmin 可以管理全部权限、对象所有权、角色和角色成员资格。db_ddladmin 可以发出 ALL DDL ,但不能发出 GRANT 、REVOKE 或 DENY 语句。db_backupoperator 可以发出 DBCC、CHECKPOINT 和 BACKUP 语句。db_datareader 可以选择数据库内任何用户表中的所有数据。db_datawriter 可以更改数据库内任何用户表中的所有数据。db_denydatareader 不能选择数据库内任何用户表中的任何数据。db_denydatawriter 不能更改数据库内任何用户表中的任何数据。Public角色是每个数据库最基本的数据库角色,新账号会自动加入public角色. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 14 页 - - - - - - - - -