sql server学习笔记一

创建数据库
CREATE DATABASE [EBuy] ON PRIMARY
(
NAME = N'dbname',
FILENAME = N'C:\database\dbname.mdf' ,
SIZE = 3072KB ,
MAXSIZE = UNLIMITED,
FILEGROWTH = 1024KB
)LOG ON
(
NAME = N'dbname_log',
FILENAME = N'C:\database\dbname_log.ldf' ,
SIZE = 1024KB ,
MAXSIZE = 2048GB ,
FILEGROWTH = 10%)


没有指定主文件和日志文件,默认情况下,命名主文件为dbname.mdf,日志文件为dbname.ldf。而主文件和日志文件的大小Model数据库的主文件和日志文件的大小相同,由于没有指定主文件和日志文件的最大长度,所以主文件和日志文件都可以自由增长知道充满整个磁盘空间。




修改数据库
ALTER DATABASE EBuy ADD FILE
(
NAME = columnName,
FILENAME = ‘E:\database\dbname_add.ldf’,
SIZE = 10MB,
MAXSIZE = 100MB,
FILEGROWTH =5MB
)




删除数据库
DROP DATABASE EBuy


SQL Server 2000中的每个数据库由多个操作系统文件组成,数据库中所有的数据、对象和数据库操作日志均存储在这些操作系统文件中。它们分别为:
主数据库文件(Primary Database File)
数据库文件是存放数据库数据和数据库对象的文件,一个数据库可以由一个或多个数据库文件,一个数据库文件只能属于一个数据库。当有多个数据库文件时,有一个文件被定义为主数据库文件(主文件),其扩展名为mdf。
主数据库文件的功能:用于存储数据库的启动信息以及部分或全部数据,同时包含了指向其他数据库的指针。是所有数据库文件的起点。一个数据库只能有一个主数据库文件。
辅助数据库文件(Secondary Database File)
用于存储数据库文件中未存储的剩余的数据和数据库对象,一个数据库可以没有辅助数据库文件,但可以同时拥有多个辅助数据库文件。
辅助数据库的存在原因:可以在不同的物理磁盘上创建辅助数据库文件并将数据库存储在文件中,这样可以提高数据处理的效率。其次当数据庞大时,如果主数据库文件的大小超过操作系统对单一文件大小的限制,则此时便需要使用辅助数据库文件来存储数据。
辅助数据库文件的扩展名: ndf。
事务日志文件
功能:存储数据库的更新情况等事务日志信息。
工作范围:当进行对数据库内容有影响的操作时,操作都会存储在事务日志文件中。
作用:当数据库损坏时,管理员使用事务日志恢复数据库。
每个数据库至少必须拥有一个事务日志文件,而且允许拥有多个日志文件。事务日志文件的扩展名未ldf,日志文件的大小至少是512KB。




数据类型
类型 说明
bit 整型,其值只能是0、1或空值。
int 整型,占4个字节
smallint 整型,占2个字节
tinyint 整型,占1个字节
decimal 精确数值型,使用时必须指定范围和精度,例:decimal(7,2)
numeric 精确数值型,与decimal 型相同
money 货币型,用来表示钱和货币值。能存储从-9220亿到9220 亿之间的数据
smallmoney 货币型,能存储从-214748.3648 到214748.3647 之间的数据
float 近似数值型,供浮点数使用
real 近似数值型
datetime 日期时间型,取值:1753-1-1~9999-12-31
smalldatetime 日期时间型,取值:1900-1-1~2079-6-6
timestamp 特殊数据型,用来创建一个数据库范围内的唯一数码。
char 字符型,用来存储定长的非统一编码型的字符数据。列宽最大为8000 个字符
varchar 字符型,用来存储变长的非统一编码型的字符数据。列宽最大为8000 个字符
text 字符型,用来存储大量非统一编码型字符数据。最多可以有近20亿个字符
nchar 定长统一编码字符型(统一编码是用双字节结构来存储每个字符),能存储4000个字符
nvarchar 变长统一编码字符型,能存储4000个字符
ntext 变长统一编码字符型,能存储近10亿个字符
binary 二进制数据类型,存储可达8000 字节长的定长的二进制数据
varbinary 二进制数据类型,存储可达8000 字节长的变长的二进制数据
image 二进制数据类型,存储变长的二进制数据,最大可达近20亿个字节






创建数据库表
CREATE TABLE [数据库名称.][表的属主.]自定义表名
(
自定义列名1 列类型及大小 列的约束,
.
.
自定义列名n 列类型及大小 列的约束,
)


添加新列
ALTER TABLE [数据库名称.][表的属主.]表名
ADD 新加的列名 列类型 列约束


修改列属性
ALTER TABLE [数据库名称.][表的属主.]表名
ALTER COLUMN 原列名 新列类型 新列约束


删除列
ALTER TABLE [数据库名称.][表的属主.]表名
DROP COLUMN 原列名


删除表
DROP TABLE 表名




数据库的完整性约束


数据完整性包括:
1 实体完整性
UNIQUE 约束
PRIMARY KEY 约束
IDENTITY 属性
2 域完整性
限制类型(通过数据类型)
可能值的范围(通过 FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义)
3 参照完整性
FOREIGN KEY 约束
CHECK 约束 4 用户自定义完整性


约束:
主键约束(PRIMARY KEY)
语法格式:[CONSTRAINT <: 约束名>] PRIMARY KEY [(列名表)]
自动增长
IDENTITY [ ( seed , increment ) ]
参数说明:
seed—表的第一行所使用的值
increment—增量值


外键约束(FOREIGN KEY)
[CONSTRAINT<: 约束>] FOREIGN KEY (<列表名1>)REFERENCES
<引用表名>[(列名表2)] [ON DELETE<RESTRICT|CASCADE|SET NULL>]


唯一约束(UNIQUE)
[CONSTRAINT <: 约束名>] UNIQUE [(列名表)] 检查约束(CHECK)


缺省约束(DEFAULT)
[CONSTRAINT <: 约束名>] DEFAULT <默认值> FOR [(<列名>)]


check约束
[CONSTRAINT<:约束名>] CHECK(<条件>)


非空约束
[CONSTRAINT <: 约束名>] NOT NULL






示例代码如下:


CREATE TABLE dbo.orders(
OrdID int NOT NULL,
CusID varchar (20) NOT NULL,
ComID int NOT NULL,
Amount int NOT NULL,
PayAmount decimal (10, 2) NOT NULL,
PayWay varchar (50) NOT NULL,
DTime datetime NOT NULL,
IsAfirm varchar (1) NULL,
IsSendGoods varchar (1) NULL,
FOREIGN KEY (CusID) REFERENCE customer(CusID)
)




修改数据库表语法规则如下:
ALTER TABLE 表名
[ADD 子句]
[ALTER COLUMN 子句]
[DROP 子句]
[ADD CONSTRAINT 子句]
[DROP CONSTRAINT 子句]

你可能感兴趣的:(SQL Server)