一、数据库的基本操作
1. 数据库的创建
If Exists(Select Name from SysDatabases Where Name='Gmis_2009')
Drop DataBase Gmis_2009
Go
Create Database Gmis_2009
On Primary
(
Name=Gmis_2009_data,
FileName='C:\program Files\Data\Gmis_2009.mdf',
Size=10MB,
Filegrowth=1MB
),
Filegroup FileGroup_Gmis_2009_1
(
Name=Gmis_2009_data_1,
FileName='C:\programFiles\Data\Gmis_2009_data_1.ndf',
Size=2MB,
MaxSize=10MB,
FileGrowth=1MB
),
(
Name=Gmis_2009_data_2,
FileName='C:\program Files\Data\Gmis_2009_data_2.ndf',
Size=2MB,
MaxSize=10MB,
FileGrowth=1MB
),
FileGroup FileGroup_Gmis_2009_2
(
Name=Gmis_2009_data_3,
FileName='C:\program Files\Data\Gmis_2009_data_3.ndf'
),
(
Name=Gmis_2009_data_4,
FileName='C:\program Files\Data\Gmis_2009_data_4.ndf'
)
Log On
(
Name=Gmis_2009_log,
FileName='C:\program files\Data\Gmis_2009.ldf',
Size=2MB
)
GO
创建数据库说明:
默认后缀为MB,如果主文件没设置那么Size就和model数据库主文件的Size相等,次要文件和日志文件如果没设置那么Size就默认为1MB,其中Name为文件的逻辑名称而FileName为文件的物理名称。FileGrowth自动增长。
2. 分离、附加数据库
2.1、分离数据库
Exec sp_detach_db Gmis_2009
GO
格式: Exec sp_detach_db 要分离的数据库名称
2.2、附加数据库
1>.sp_attach_db方法
Exec sp_attach_db Gmis_2009,'C:\program files\Data\Gmis_2009.mdf' Go
格式:要附加的数据库名称 , 要附加数据库的主文件的路径
2>.Create DataBase方法
Create DataBase Gmis_2009
On Primary(FileName='C:\program files\Data\Gmis_2009.mdf')
For Attach
Go
格式: Create DataBase 要附加的数据库名称(附加的名称必须一致) On Primary(FileName=主文件路径) For Attach
3. 收缩数据库
3.1收缩数据库
DBCC ShrinkDataBase(Gmis_2009, 是数据库收缩后的数据库文件中所要的剩余可用空间百分比。)
Go
3.2收缩文件 格式:DBCC ShrinkFile(文件名称,收缩比例)
DBCC ShrinkFile(Gmis_2009_data,10)
Go
4. 备份、还原数据库
4.1备份
4.1.1数据库的完整备份
BackUp DataBase Gmis_2009 To
Disk=‘C:\Program Files\\BackUp\Gmis_2009.bak’
4.1.2备份数据库的日志文件
BackUp Log Gmis_2009 To
Disk=‘C:\Program Files\ BackUp\Gmis_2009_log.bak’
4.1.3备份数据文件、组
BackUp DataBase Gmis_2009 File=‘Gmis_2009_data’To
Disk=‘C:\Program Files\BackUp\Gmis_2009_data.bak’
4.2还原
4.2.1还原数据库的完整备份
Restore DataBase Gmis_2009 From
Disk=‘C:\Program Files \BackUp\Gmis_2009.bak’
4.2.2还原数据库的日志文件
Restore Log Gmis_2009 From
Disk=‘C:\Program Files\\BackUp\Gmis_2009_log.bak’
4.2.3还原数据文件、组
Restore DataBase Gmis_2009 File=‘Gmis_2009_data’From
Disk=‘C:\Program Files\BackUp\Gmis_2009_data.bak’
备份与还原格式:
1>.BackUp DataBase[Log] 数据库名称
[File=file_name,FileGroup=filegroup_name] To Disk=‘路径’
2>.Restore DataBase[Log] 数据库名称
[File=file_name,FileGroup=filegroup_name] From Disk=‘路径’
5. 脱机、联机数据库
5.1脱机数据库
Alter DataBase Gmis_2009 Set OffLine With Rollback Immediate
5.2联机数据库
Alter DataBase Gmis_2009 Set OnLine With RollBack Immediate
6. 删除数据库
Drop DataBase Gmis_2009 删除Gmis_2009数据库
Drop DataBase Gmis_2009,Test删除多个数据库
7. 修改数据库
7.1、修改数据库名称
Alter DataBase Gmis_2009 Modify Name=Gcms_2009
7.2、 修改文件组名称
Alter DataBase Gmis_2009
Modify FileGroup FileGroup_Gmis_2009_2 Name=FileGroup_Gmis_2009_3
7.3、修改文件逻辑名称(逻辑名称Name,物理名称FileName)
Alter DataBase Gmis_2009
Modify File(Name='Gmis_2009_data',NewName='Gcms_2009_data')
7.4、修改数据库文件配置
Alter DataBase Gmis_2009 Modify File(Name='Gmis_2009_data',Size=11MB)
7.5、删除数据库中的文件、组
Alter DataBase Gmis_2009 Remove File Gmis_2009_data_4
修改数据库删除文件|组格式:
Alter DataBase Gmis_2009
Remove File file_name(逻辑文件名)[FileGroup=filegroup_name]
二、数据库中的数据表与字段
1. 创建数据表
If Exists(Select * From SysObjects Where Name='Gmis_Test' And Xtype='U')
Drop Table Gmis_Test
Go
Create Table Gmis_Test
( MoCode Int Identity(1,1) PriMary Key,
Test_1_1 VarChar(200),
Test_1_2 DateTime
)
2. 修改数据表
2.1、添加带有约束条件的字段
Alter Table Gmis_Test Add Test_1_3 Int Not Null Default 0 Check(Test_1_5>0)
2.2、当表中有数据时,添加带有默认值的字段
Alter Table Gmis_Test Add Test_1_5 DateTime Null Default GetDate() With Values
2.3、修改字段
Alter Table Gmis_Test Add Test_1_4 VarChar(200) Null(添加字段方便修改演示)
Alter Table Gmis_Test Alter Column Test_1_4 Int Not Null(修改字段类型时,如果有值那么值的类型要能转换成要改变之后的数据类型,且不能有默认值)
2.4、删除字段
Alter Table Gmis_Test Drop Column Test_1_3
3. 删除数据表
3.1、删除当前数据库中的表
Drop Table Gmis_Test
3.2、删除另外数据库中的表
Drop Table Gmis_2009..dbo.Gmis_Test
Drop Table Gmis_2009..guast.Gmis_Mo_10
三、视图
1. 创建视图并且视图的列的列名按括号中的名称显示
If Exists(Select * From Sysobjects Where Name=’userViewState’And Xtype=’V’)
Drop View userViewState
Go
Create View userViewState(用户编号,用户名,密码,状态)
[With Encryption] 加密,在用sp_helptext查看视图文本的时,加密了看不到文本
As
Select MoCode,fld_11_1,fld_11_2,(Select fld_12_1 From Gmis_Mo_12 Where Mocode=fld_11_3) as fld_11_3 From Gmis_Mo_11
Go
Select * From userViewState
2. 修改视图
Alter View userViewState
……
3. 删除视图
Drop View userViewState
……
4. 查看视图
Exec sp_helptext 视图名称 查看视图文本
四、存储过程
存储过程的使用数据
If Exists(Select * From SysObjects Where Name='Gmis_Mo_13' And Xtype='U')
Drop Table Gmis_Mo_13
Go
Create Table Gmis_Mo_13
(
MoCode Int Identity Primary Key,
fld_13_1 VarChar(200),
fld_13_2 float,
fld_13_3 int
)
Go
Insert Into Gmis_Mo_13 Values('长江七号',20,1)
Insert Into Gmis_Mo_13 Values('蜡笔小新',17,2)
Insert Into Gmis_Mo_13 Values('笔记本电脑',5000,3)
Insert Into Gmis_Mo_13 Values('手机',2000,3)
Insert Into Gmis_Mo_13 Values('溜溜球',10,1)
Insert Into Gmis_Mo_13 Values('名侦探柯南',30,1)
Insert Into Gmis_Mo_13 Values('老虎',210000,4)
Insert Into Gmis_Mo_13 Values('熊猫',2000000,4)
Select * From Gmis_Mo_13
Go
1. 创建存储过程
If Exists(Select * From SysObjects Where Name='up_Table_Select' And Xtype='P')
Drop Procedure up_Table_Select
Go
Create Procedure up_Table_Select
@Mocode VarChar(4) ='%'
as
Begin
If(@mocode='%')
Begin
Select * From Gmis_Mo_13 Where Cast(MoCode as VarChar(20)) like '%'
End
Else
Begin
If Exists(Select * From Gmis_Mo_13 Where MoCode=@Mocode)
Begin
Select * From Gmis_Mo_13 Where MoCode=@Mocode
End
Else
Begin
print '不存在此数据'
End
End
End
Go
2. 修改存储过程
Alter Procedure up_Table_Select
……
3. 删除存储过程
Drop Procedure up_Table_Select
4. 执行存储过程
4.1执行带参数但不传值的存储过程(参数就一定要带有默认值)。
Exec(Execute) up_Table_Select
4.2、执行带参数的成熟过程
Exec(Execute) up_Table_Select 8
5. 查看存储过程的文本 格式:sp_helptext 存储过程名
Exec sp_helpText up_Table_Select
6. 动态Sql(重点)
……
五、数据库用户的管理(重点)
1. 创建与删除用户登录
1.1、创建用户
Exec sp_addlogin Gmis,Gmis,Gm is_2009 创建一个新的用户Gmis登录,密码为Gmis默认登录数据库为Gmis_2009
格式:sp_addlogin登录名称,登录密码,登录默认数据库(没写就默认为Master数据库)
1.2、删除用户
Exec sp_droplogin Gmis 删除用户,阻止使用此登录名称访问Sql Server
格式:sp_droplogin 登录用户名称
2. 创建与删除用户帐户
2.1、创建用户帐户
Exec sp_adduser Gmis,Gcms 为当前数据库中的用户添加帐户
格式:sp_adduser 登录名称 【帐户名称[,角色名称]】
2.2、删除用户帐户
Exec sp_dropuser Gcms 从当前数据库用户中删除帐户
格式:sp_dropuser 帐户名称
3. 创建与删除固定服务器角色
3.1、创建固定服务器角色
Exec sp_addsrvrolemember Gmis,sysadmin
格式:sp_addsrvrolemember添加到固定服务器的登录名称,固定服务器的角色名称
3.2、删除固定服务器角色
Exec sp_dropsrvrolemember Gmis,sysadmin 将Gmis中固定服务器角色成员中删除
格式: 要从固定服务器角色删除的登录的名称,固定服务器的角色名称
4. 创建与删除数据库角色
4.1、创建数据库角色
Exec sp_addrole gust,Gmis 在当前数据库中创建新的Sql Server角色
格式:sp_addrole 新角色名称,新角色的所有者(默认值为dbo,值必须为当前数据库的用户或某个角色)
4.2、删除数据库角色
Exec sp_droprole gust 在当前数据库中删除Sql Server角色
格式:sp_droprole 要删除的当前数据库的角色名称
5. 创建与删除数据库中的Sql Server角色中的安全帐户
5.1、创建(将安全帐户作为当前数据库中现有Sql Server数据库角色的成员进行添加.)
Exec sp_addrolemember gust,Gcms 将安全帐户作为当前数据库中现有Sql Server数据库角色的成员进行添加。
格式:sp_addrolemember 角色名称,添加到角色的安全账户名称
5.2、删除(从当前数据库中的Sql Server角色中删除安全帐户)
Exec sp_droprolemember gust,Gcms 从当前数据库中的Sql Server角色中删除安全帐户
格式:sp_droprolemember 角色名称,从角色中删除的安全账户名称
六、针对用户的权限进行分配
1. 授予权限(当前数据库中的用户得以处理当前数据库中的数据或执行特定的Sql 语句)
格式:grant 权限|[on [表|视图…]] to 安全帐户(角色|用户)
grant select on score to gust --授予角色对表中数据的某些权限(对固定的表(sorce)只能查、增、删、改的权限)
grant select on Gmis_Mo_11 to gust
grant create table to gust,Gcms --授予角色创建表的权限同时就赋予了角色对这个表进行操作(增、删、改、查)的权限
grant create procedure to Gcms,gust --授予角色创建存储过程同时也赋予了角色对存储过程进行操作的权限
2. 禁止权限(拒绝给当前数据库内的安全帐户授予权限并防止安全帐户通过其组或角色成员资格继承权限)
格式:deny 权限 to 安全帐户(角色|用户)
deny all to Gcms 拒绝所有适用的权限.
3. 撤销权限(删除以前在当前数据库内的用户上授予或拒绝的权限)
格式:revoke 权限 on 表 to/from 被撤销权限的安全帐户(角色|用户)
revoke create table, create view from Gcms, Gcms1撤销授予多个用户的多个权限
revoke create procedure to Gcms,gust
revoke create table to Gcms
来源:https://www.cnblogs.com/bky250214511/archive/2009/12/11/1622220.html