一、SqlServer2008下载与安装
二、启用与停止SqlServer
- 后台启动服务:计算机→右键→管理→服务和应用程序→服务→SqlServer(MSSQLSERVER)
- SQL Server配置管理器启用服务:开始→安装路径→配置工具→sqlserver配置管理器
- 在运行窗口cmd中使用命令启动和停止服务:net start mssqlserver / net stop mssqlserver
三、SqlServer身份验证模式
- 身份验证模式:Windows身份验证 、SQL Server身份验证
- 如何配置身份验证模式?
- 常见问题:18456、18470
- 操作步骤
1. 对象资源管理器中单机右键→安全性→配置身份验证模式;
2. 修改sa的登陆密码→直接找安全性→登陆名→sa→右键→属性;
3. 启用sa账户→直接找安全性→登陆名→sa→右键→属性→状态→启用;
4. 重新启动→对象资源管理器上单机右键→重新启动
四、SQL语句创建及删除数据库
1. 创建一个数据文件和一个日志文件的数据库
USE master --指向当前使用的数据库
GO --批处理的标志
CREATE DATABASE E_Market --创建E_Market数据库
ON PRIMARY --主文件组
(
NAME='E_Market_data', --主文件逻辑文件名
FILENAME='E:\SQLServer2008\E_Market\E_Market_data.mdf', --主文件物理文件名
SIZE=5MB, --主文件初始大小
MAXSIZE=100MB, --主文件的增长的最大值
FILEGROWTH=15% --主文件的增长率
)
LOG ON
(
NAME='E_Market_log', --日志文件逻辑文件名
FILENAME='E:\SQLServer2008\E_Market\E_Market_log.ldf', --日志物理名
SIZE=5MB, --日志文件初始大小
FILEGROWTH=0 --未启用自动增长
)
GO
2. 创建多个数据文件和多个日志文件
USE master
GO
CREATE DATABASE QQDatabase
ON PRIMARY --主文件组
(
NAME='QQDatabase_data',
FILENAME='E:\SQLServer2008\QQDatabase\QQDatabase_data.mdf',
SIZE=10MB,
FILEGROWTH=10%,
MAXSIZE=500MB
), --第一个文件组结束
FILEGROUP FG --第二个文件组
(
NAME='FG_QQDatabase_data',
FILENAME='E:\SQLServer2008\QQDatabase\FG_QQDatabase_data.ndf',
SIZE=10MB,
FILEGROWTH=0
)
LOG ON --日志文件不属于任何文件组
(
NAME='QQDatabase_log',
FILENAME='E:\SQLServer2008\QQDatabase\QQDatabase_log.ldf',
SIZE=5MB,
FILEGROWTH=0
),
( --日志1的具体描述
NAME='QQDatabase_log_one',
FILENAME='E:\SQLServer2008\QQDatabase\QQDatabase_log_one.ldf',
SIZE=5MB,
FILEGROWTH=0
)
GO
3. 向现有数据库中添加文件组合数据文件
USE E_Market
ALTER DATABASE E_Market ADD FILEGROUP FG1
GO
ALTER DATABASE E_Market ADD FILE
(
NAME='FG1_E_Market_data',
FILENAME='E:\SQLServer2008\E_Market\FG1_E_Market_data.ndf',
SIZE=5MB,
FILEGROWTH=10%
) TO FILEGROUP FG1
GO
#将FG1文件组设为默认文件组
ALTER DATABASE E_Market MODIFY FILEGROUP FG1 DEFAULT
GO
4. SQL删除数据库
#第一种方法
DROP DABABASE E_Market --删除数据库
GO
#第二种方法
IF EXISTS (SELECT * FROM sysdatabases WHERE name='E_Market')
DROP DABABASE E_Market
GO
五、SQL语句创建登陆名及为用户赋予权限
1.创建登录名
语法:CREATE LOGIN 登陆名 WITH PASSWORD='密码'
--创建登陆名PbMaster
USE master
GO
CREATE LOGIN PbMaster WITH PASSWORD='123456'
GO
2.创建数据库用户
语法:CREATE USER 数据库用户 FOR LOGIN 登陆名
--为登陆名PbMaster创建数据库E_Market用户名MasterDBUser
USE E_Market
GO
CREATE USER MasterDBUser FOR LOGIN PbMaster
GO
3.为数据库用户赋予权限
语法:GRANT 操作权限 ON 表名 TO 用户名
--为MasterDBUser赋予数据表UserInfo查看,新增,修改的权限
USE E_Market
GO
GRANT SELECT,INSERT,UPDATE ON UserInfo TO MasterDBUser
GO
4.将UPDATE权限进行回收
USE E_Market
GO
REVOKE UPDATE ON UserInfo TO MasterDBUser
GO
六、数据表字段约束
1. 创建数据表
语法:
USE 数据库
GO
CREATE TABLE 表名称
(
列名1 数据类型1 约束1,
列名2 数据类型2 约束2,
列名3 数据类型3 约束3
)
GO
备 注:列名不要重复,每一个列都要用“,”分开,最后一列不需要
约束:
非空约束:NOT NULL;
标示列,自动增长约束:IDENTITY(标识种子, 增长量);
默认约束:DEFAULT 默认值;
主键约束:PRIMARY KEY;
外键约束:FOREIGN KEY (外键表引用的id) REFERENCES 主表明(主表主键);
检查约束:CHECK(条件);
USE E_Market
GO
CREATE TABLE CommoditySort
(
SortId int IDENTITY(1, 1) NOT NULL,
SortName varchar(50) NOT NULL
)
GO
2. 添加与删除约束
添加约束,语法:
ALTER TABLE 表名 WITH NOCHECK ADD CONSTRAINT 约束名 约束类型 具体的约束说明
ALTER TABLE Employee WITH NOCHECK ADD CONSTRAINT CK_EmployeeId CHECK(LEN(EmployeeId)=18)
删除约束,语法:
ALTER TABLE 表名 DROP CONSTRAINT 约束名
ALTER TABLE Employee DROP CONSTRAINT CK_EmployeeId
七、添加及修改数据表与字段注释
1. 创建数据表
use HisDB
GO
create table V_YXKF_CHECK
(
inhospital_mis_id nvarchar(255) not null,
patient_mis_id nvarchar(255) not null,
check_mis_id nvarchar(255) not null,
check_name nvarchar(255) not null,
check_name_code nvarchar(255) null,
apply_report_time datetime not null,
issue_report_time datetime not null
)
GO
2.添加字段注释
execute sp_addextendedproperty 'MS_Description','表注释描述','user','dbo','table','V_YXKF_CHECK','column','inhospital_mis_id';
3.修改字段注释
execute sp_updateextendedproperty 'MS_Description', '表字段注释','user','dbo','table','V_YXKF_CHECK','column','inhospital_mis_id';
4.添加表注释
execute sp_addextendedproperty 'MS_Description','数据表描述','user','dbo','table','V_YXKF_CHECK',null,null;
5.修改表注释
execute sp_updateextendedproperty 'MS_Description','数据表描述','user','dbo','table','V_YXKF_CHECK',null,null;
6.删除表注释
execute sp_dropextendedproperty 'MS_Description','user','dbo','table','V_YXKF_CHECK',null,null;
八、数据库字段类型
分 类 | 数据类型 | 说 明 | |
二进制数据类型 | 存储非字符和文本的数据 | image | 可用来存储图像 |
文本数据类型 | 字符数据包括任意字母、符号或数字字符的组合 | char | 固定长度的非 Unicode 字符数据 |
varchar | 可变长度非 Unicode 数据 | ||
nchar | 固定长度的 Unicode | ||
nvarchar | 可变长度 Unicode 数据 | ||
text | 存储长文本信息 | ||
ntext | 存储可变长度的长文本 | ||
日期和时间 | 日期和时间 | datetime | |
数字数据 | 该数据仅包含数字,包括整数和浮点数 | int、smallint | 整数 |
float、real | 浮点数 | ||
货币数据类型 | 十进制货币值 | money | |
bit数据类型 | 表示是/否的数据 | bit | 存储布尔数据类型 |