- 数据库
数据库:数据库是"按照数据结构来组织、存储和管理数据的仓库",是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
2.数据表展现形式: (二维表)
3.打开数据库
(1)启动服务
- 命令行启动 net start mssqlserver
- SQL Server配置管理器
- Windows服务
(2)打开SQL SERVER Management Studio,使用工具连接到数据库。
- Windows身份验证
- SQL Server身份验证 (数据库服务和工具不在同一个地方)
-
数据库基本操作:
(1)建库。
(2)建表。
(3)数据维护。 -
数据库的迁移:
(1 )数据库的分离、附加; (分离和删除的区别在于硬盘上是否还留存有数据库文件)
(2)数据库的备份,还原;
(3 )数据库脚本的保存; -
创建数据库
-- 删除数据库
if exists(select * from sys.databases where name = 'DBTEST')
drop database DBTEST
--创建数据库
create database DBTEST
on --数据文件
(
name = 'DBTEST', --逻辑名称
filename = 'D:\DATA\DBTEST.mdf", --物理路径和名称
size = 5MB, --文件的初始大小
filegrowth = 2MB --文件增长方式可以写大小,也可以写百分比
)
log on --日志文件
(
name = 'DBTEST. log', --逻辑名称
filename = 'D:\DATA\DBTEST. _log.Idf', --物理路径和名称
size = 5MB, --文件的初始大小
filegrowth = 2MB --文件增长方式可以写大小,也可以写百分比
)
或
--创建数据库
create database DBTEST
切换数据库
use DBTEST
建表
-- 判断表是否存在
if exists(select * from sys.objects where name='Department' and type = 'U')
-- 删除表
drop table Department
--建表(部门,职级,员工)
create table Department
(
--部]编号,primary key:主建,identity(1,1):自动增长,初始值1,增长步长1
DepartmentId int primary key identity(1,1),
--部门名称
DepartmentName nvarchar(50) not null,
--部门]描述
DepartmentRemark text
)
-- 职级
create table [Rank]
(
--职级编号,primary key:主建. identity(1,1:自动增长初始值1 ,增长步长1
RankId int primary key identity(1,1),
--职级名称
RankName nvarchar(50) not null,
--职级描述
RankRemark text
)
--员工
create table People
(
PeopleId int primary key identity(1,1), --员工编号
DepartmentId int references Department(DepartmentId) not null, --部门(引用外键)
RankId int references [Rank](RankId) not null,--职级(引用外键)
PeopleName nvarchar(50) not null, --姓名
PeopleSex nvarchar(1) default('男') check(PeopleSex= '男' or PeopleSex='女') not null,--性别
PeopleBirth smalldatetime not null, --生日
PeoPleSalary decimal(12,2) check(PeoPleSalary >= 1000 and PeoPleSalary <= 1000000 not null,--月薪
PeoplePhone varchar(20) unique not null, --电话
PeopleAddress varchar(300), --地址
PeopleAddTime smalldatetime default(getdate()) --添加时间
)
修改表结构
--(1)添加列
--alter table 表名 add 新列名 数据类型
--给员工表添加一列邮箱
alter table People add PeopleMail varchar(200)
--(2)删除列
--alter table 表名 drop column 列名
--删除邮箱这一 列
alter table People drop column PeopleMail
--(3)修改列
--alter table 表名 alter column 列名 数据类型
--修改地址varchar(300)为varchar(200)
alter table People alter column PeopleAddress varchar(200)
--维护约束(删除,添加)
--删除约束
--alter table 表名 drop constraint 约束名
--删除月薪的约束
alter table People drop constraint CK_ People_ PeoPleSa_ 34C8D9D1
--添加约束( check约束)
--alter table 表名 add constraint 约束名 check(表达式)
--添加工资字段约束,工资必须在1000-1000000之间
alter table People add constraint CK_ People_ PeoPleSal
check(PeoPleSalary> = 1000 and PeoPleSalary< = 000000)
--添加约束( check约束)
--alter table 表名add constraint 约束名 check(表达式)
--添加约束(主键)
-- alter table 表名 add constraint 约束名 primary key(列名)
--添加约束(唯一)
--alter table 表名 add constraint 约束名 unique (列名)
--添加约束(默认值)
--alter table 表名 add constraint 约束名 default 默认值 for 列名
--添加约束(外键)
--alter table 表名 add constraint 约束名 foreign key(列名) references 关联表名(列名(主键))
- char:定长, char(10),无论存储数据是否真的到了10个字节,都要占用10个字节。
- char(10)存储”ab’,仍然占用10个字节
- varchar:变长,varchar(10),最多占用10个字节。
- varchar(10)存储’ab’ ,占用2个字节
- text:长文本
- char,varchar,text前面加n:存储unicode字符,对中文友好.
- varchar(100):存储100个字母或者50个汉字。|
- nvarchar(100):存储100个字母或者100个汉字。