数据库中的一些知识(上)

1、修改表名:
使用ALTER DATABASE语句更改数据库名称的语法形式如下:
ALTER DATABASE database_name MODIFY NAME = new_database_name
2、创建登录
添加 Windows登录帐户
    EXEC sp_grantlogin   ‘jbtraining\S26301‘       
添加 SQL登录帐户
    EXEC sp_addlogin  ‘zhangsan', ‘1234’
ALTER LOGIN语句用来修改登录名的属性信息。
如果某个登录名不再需要了,那么可以使用DROP LOGIN语句删除该登录名。
3、public角色有两大特点,第一,初始状态时没有权限;第二,所有的数据库用户都是他的成员。
4、自定义数据库角色 
可以使用CREATE ROLE语句创建角色。实际上,创建角色的过程就是指定角色名称和拥有该角色的用户的过程。如果没有明确地指定角色的所有者,那么当前操作的用户默认是该角色的所有者。
5、创建数据库
CREATE DATABASE TestDB
ON  --允许显式定义用于存储数据的文件
-- 定义数据库主文件
(NAME = 'TestDB_Data',  -- 主文件逻辑名称
    FILENAME = 'D:\DATA\TransactTestDB.mdf', -- 操作系统文件名称,包含路径
    SIZE = 20 MB,  -- 主文件初始大小
    FILEGROWTH = 0)  -- 未启用自动增长
-- 定义数据库日志文件
LOG ON 
(NAME  = 'TestDB_Log', -- 日志文件逻辑名称
    FILENAME = 'D:\DATA\TestDB_Log.ldf', -- 包含路径的操作系统文件名称
    SIZE = 5 MB, -- 日志文件初始大小
    FILEGROWTH = 0) --未启用自动增长
例子:create database test
on
(
name='test_db',
filename='F:\db\test_db.mdf',
size=3mb,
maxsize=20mb,
filegrowth=1mb
)
log on
(
name='test_log',
filename='F:\db\test_log.log',
size=3mb,
maxsize=20mb,
filegrowth=1mb
)
6、使用ALTER DATABASE语句修改数据库
ALTER DATABASE database
{ ADD FILE < filespec > [ ,...,n ] [ TO FILEGROUP filegroup_name ]
ADD LOG FILE < filespec > [ ,...,n ]
……
}
ADD FILE
将文件添加到数据库。

TO FILEGROUP { filegroup_name | DEFAULT }
指定要将指定文件添加到的文件组。如果指定了 DEFAULT,则将文件添加到当前的默认文件组中。

例子:alter database test
add  filegroup MyGroup

alter database test
add file
(
name='test1_db',
filename='F:\db\test1_db.mdf',
size=3mb,
maxsize=20mb,
filegrowth=1mb
)to filegroup MyGroup
--给文件指定组的时候,必须先定义组名,然后,在添加文件的地方去给指定所属组
7、CHECK 约束
CHECK 约束限制在 INSERT 和 UPDATE 语句期间用户可输入特定列中的数据值
每列可以定义多个CHECK约束
在同一个表格中可以引用列
不能包含子查询
ALTER TABLE [HumanResources].[EmployeeDepartmentHistory]  WITH CHECK ADD CONSTRAINT [CK_EmployeeDepartmentHistory_EndDate] CHECK  (([EndDate]>=[StartDate] OR [EndDate] IS NULL))
8、DEFAULT约束
例如,在记录了人事信息的person表的性别列中定义了一个DEFAULT约束为“男”。当向该表中输入数据时,如果没有为性别列提供数据,那么DEFAULT约束把缺省值“男”自动插入到该列中。因此,DEFAULT约束可以实现保证域完整性。
在ALTER TABLE语句的ADD子句中
CONSTRAINT constraint_name DEFAULT constant_expression FOR column_name
DEFAULT constant_expression FOR column_name
9、PRIMARY KEY 约束
PRIMARY KEY 约束定义表中构成主键的一列或多列
一个表只能有一个 PRIMARY KEY 约束
指定为 PRIMARY KEY 的列中的值必须是唯一的
包含在 PRIMARY KEY 约束中的列不能接受 NULL值
例如,在students表中,一般将描述学生学号的studentID列作为主键值,因为studentID列中的值是唯一的。主键经常定义在一个列上,但是也可以定义在多个列上。当主键定义在多个列上时,虽然某一个列中的数据可能重复,但是这些列的组合值不能重复。
CONSTRAINT constraint_name PRIMARY KEY
PRIMARY KEY
CONSTRAINT constraint_name PRIMARY KEY (column_list)
PRIMARY KEY (column_list)
10、UNIQUE约束
UNIQUE约束指定表中某一个列或多个列不能有相同的两行或两行以上的数据存在。这种约束通过实现唯一性索引来强制实体完整性。当表中已经有了一个主键约束时,如果需要在其他列上实现实体完整性,又因为表中不能有两个或两个以上的主键约束,所以只能通过创建UNIQUE约束来实现。
CONSTRAINT constraint_name UNIQUE
UNIQUE
CONSTRAINT constraint_name UNIQUE (column_list)
UNIQUE (column_list)
11、FOREIGN KEY 约束
FOREIGN KEY 约束确保同一个表或者不同表之间的引用完整性
必须引用一个PRIMARY KEY或者UNIQUE约束
用户必须在应用表上具有REFERENCES权限
ALTER TABLE [Sales].[SalesOrderHeader]  WITH CHECK
ADD CONSTRAINT [FK_SalesOrderHeader_Customer_CustomerID] FOREIGN KEY([CustomerID]) REFERENCES [Sales].[Customer] ([CustomerID])
语法:
-- 在CREATE TABLE语句中定义只有一个列的外键约束
FOREITN KEY REFERENCES referenced_table_name (referenced_column)
ON DELETE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}
ON UPDATE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}
-- 在ALTER TABLE语句中定义只有一个列的外键约束
FOREITN KEY (column) REFERENCES referenced_table_name (referenced_column)
ON DELETE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}
ON UPDATE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}
 

你可能感兴趣的:(数据库,添加,修改,约束,休闲)