1、创建数据库的语法
create database 数据库名称
on[primary]
(
<数据文件参数> [,…n] [<文件组参数>]
)
[LOG ON]
(
<日志文件参数> [,…n]
)
注意:
其中"[ ]"表示可选部分,而"{ }"表示需要部分
创建数据库实例:
create database NetBarDB
on primary --默认就属于primary主文件组,可省略
(
name='NetBar_data', --主数据文件的逻辑名
filename='e:\NetBar_mdf.mdf', --主数据文件的物理名
size=3mb, --主数据文件初始大小
maxsize=100mb, --主数据文件增长的最大值
filegrowth=15% --主数据文件的增长率
)
创建数据库数据文件和日志文件的语法:
CREATE DATABASE 数据库名
on
{
NAME=逻辑名称,
FILENAME=物理文件名称,
SIZE=文件大小,
MAXSIZE=文件可长的最大大小,
FILEGROWTH=自动增长量
}
log on
{
………………………
}
2、删除数据库语法:
drop database 数据库名称;
删除多个数据库:
drop database 数据库名称1,数据库名称2,...数据库名称n;
注意:
使用drop语句删除数据库将会删除
磁盘中与将要删除的数据库相关的
文件,如数据文件和日志文件
删除数据库示例:
if exists (select * from sysdatabases where name='NetBarDB')
drop database NetBarDB
go
或者:
if DB_ID('NetBarDB') is not null
drop database NetBarDB
go
3、创建表语法:
create table 表名
(
字段1 数据类型 字段特征,
字段2 数据类型 字段特征,
... ...
字段n 数据类型 字段特征,
)
4、修改表语法:
添加列:
alter table 表名
add { 字段 数据类型 字段特征} [,...n]
删除列:
alter table 表名
drop column {字段} [,...n]
修改列:
alter table 表名
alter column 字段 数据类型 [null|not null]
5、删除表的语法:
DROP TABLE 表名
6、SQL Server的约束:
常用的约束类型:
主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空
唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。
检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束
默认约束(Default Constraint):某列的默认值,如我们的男性学员较多,性别默认为“男”
外键约束(Foreign Key Constraint):用于两表间建立关系,需要指定引用主表的那列添加约束语法:
alter table 表名
add constraint 约束名称 约束类型 约束内容
约束名的取名规则推荐采用:约束类型_约束字段
主键(Primary Key)约束:如 PK_stuNo
唯一(Unique Key)约束:如 UQ_stuID
默认(Default Key)约束:如 DF_stuAddress
检查(Check Key)约束:如 CK_stuAge
外键(Foreign Key)约束:如 FK_stuNo
删除约束:
ALTER TABLE 表名
DROP CONSTRAINT 约束名
7、实例:
启动外围配置项:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'xp_cmdshell',1
reconfigure
go
调用dos命令创建文件夹:
exec xp_cmdshell 'md E:\user',no_output
go
判断数据库是否存在,若存在,则执行删除数据库操作
if DB_ID('UserDB') is not null
drop database UserDB
go
创建数据库
create database UserDB
on
(
name = userdb,
filename = 'E:\user\userdb.mdf',
size = 10MB, -- KB MB GB TB
maxsize = unlimited,
filegrowth = 1MB
)
log on
(
name = userdb_log,
filename = 'E:\user\userdb_log.ldf',
size = 3MB,
maxsize = 10MB,
filegrowth = 10%
)
go
use UserDB
go
判断对象是否存在 对象:
table trigger view proc
if OBJECT_ID('Student','table') is not null
drop table Student go
create table Student
(
StuNo int identity(1,1) primary key,
StuName varchar(20) not null,
ClaNo int not null
)
go
if OBJECT_ID('Class','table') is not null
drop table Class go
create table Class
(
ClaNo int identity(1,1) primary key,
ClaName varchar(20) not null,
)
新增一列
alter table Student
add StuSex bit null
go
删除一列
alter table Student
drop column StuSex
go
修改一列
alter table Student
alter column StuSex int null
go
主键约束
alter table Student
add constraint PK_Student_StuNo primary key(StuNo)
go
唯一约束
alter table Student
add constraint UQ_Student_StuName unique(StuName)
go
检查约束
alter table Student
add constraint CK_Student_StuName check(len(StuName) > 10)
go
默认值约束
alter table Student
add constraint DF_Student_StuName default 'zs' for StuName
go
外键约束
alter table Student
add constraint FK_Student_Class_ClaNo foreign key(ClaNo) references Class(ClaNo)
go
主键约束(Primary Key Constraint) PK :要求主键列数据唯一,并且不允许为空 唯一约束(Unique Constraint) UQ :要求该列唯一,允许为空,但只能出现一个空值。 检查约束(Check Constraint) CK :某列取值范围限制、格式限制等,如有关年龄的约束 默认约束(Default Constraint)DF :某列的默认值,如我们的男性学员较多,性别默认为“男” 外键约束(Foreign Key Constraint) FK :用于两表间建立关系,需要指定引用主表的那列
select * from Student insert into Student values('张三',0)
权限
create login zhangsan with password = '123456'
create user zhangsan for login zhangsan
grant revoke deny
deny select on Student to zhangsan
create role username grant select on Student to username
SQLServer 添加用户 添加角色 分配权限
--创建一个简单的登录,登录名为:newlogin;登录密码:123456;默认数据库:master,默认数据库也可以不指定。
EXEC sp_addlogin 'newlogin','123456','master'
--创建用户 --创建一个简单的用户,如果不指定用户名,则添加到当前数据库登录名中,如果不指定角色,则该用户默认属于public角色。下为添加newlogin登录名。
EXEC sp_adduser 'newlogin'
--创建一个带用户名的用户,用户可以与登录名相同(同上一种类似),也可以不同,但要设定当前登录名,用户角色可选,默认为public。下为将用户newuser添加到newlogin登录名中。
EXEC sp_adduser 'newlogin','newuser'
--创建角色 EXEC sp_addrole 'newrole' --下为将用户下为将用户newuser添加到newlogin登录名中。并指定newrole角色。
EXEC sp_adduser 'newlogin','newuser','newrole'
--为角色newrole赋予jobs表的所有权限
GRANT ALL ON jobs TO newrole
--为角色newrole赋予sales表的查、改权限
GRANT SELECT,UPDATE ON sales TO newrole
--禁止角色newrole使用employees表的插入权限
DENY INSERT ON employees TO newrole
另一种创建用户和赋予角色的方式 --为登录newlogin在数据库中添加安全账户newuser
EXEC sp_grantdbaccess 'newlogin','newuser'
--添加newuser为角色newrole的成员 EXEC sp_addrolemember 'newrole','newuser'
--数据库用户、角色、登录的删除操作 --删除当前数据库用户
EXEC sp_revokedbaccess 'newuser';
--删除数据库登录
EXEC sp_droplogin 'newlogin'
--删除数据库角色
EXEC sp_droprole 'newrole'
--从数据库角色(newrole)中删除用户(newuser)
EXEC sp_droprolemember 'newrole', 'newuser'
--用SQL代码新建登录、用户 --创建带密码的mylogin登录名,MUST_CHANGE 选项需要用户首次连接服务器时更改此密码。
CREATE LOGIN mylogin WITH PASSWORD = '123456' MUST_CHANGE;
--创建映射到凭据的登录名。 --以下示例将创建mylogin登录名。此登录名将映射到mycredential凭据。
CREATE LOGIN mylogin WITH PASSWORD = '123456', CREDENTIAL = mycredential;
--从Windows 域帐户创建登录名 --如果从Windows 域帐户映射登录名,则登录名必须用方括号([ ]) 括起来。
CREATE LOGIN [jack\xiangzhao] FROM WINDOWS;
--如果指定用户名,则不使用默认登录名作为该数据库用户
CREATE USER myuser FOR LOGIN mylogin
--以下示例将创建用户myuser拥有的数据库角色myrole
CREATE ROLE myrole AUTHORIZATION myuser;
--以下示例将创建db_role固定数据库角色拥有的数据库角色myrole
CREATE ROLE myrole AUTHORIZATION db_role