初学者提问:数据库建立的简单问题,俺不懂,谁能给个解释 create database mydatagouse mydatagocreate table mytable(a int) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 示例A. 创建指定数据文件和事务日志文件的数据库下面的示例创建名为 Sales 的数据库。因为没有使用关键字 PRIMARY,第一个文件 (Sales_dat) 成为主文件。因为 Sales_dat 文件的 SIZE 参数没有指定 MB 或 KB,因此默认为 MB,以兆字节为单位进行分配。Sales_log 文件以兆字节为单位进行分配,因为 SIZE 参数中显式声明了 MB 后缀。USE masterGOCREATE DATABASE SalesON ( NAME = Sales_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\saledat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 )LOG ON( NAME = 'Sales_log', FILENAME = 'c:\program files\microsoft sql server\mssql\data\salelog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB )GOB. 指定多个数据文件和事务日志文件创建数据库下面的示例使用三个 100 MB 的数据文件和两个 100 MB 的事务日志文件创建了名为 Archive 的数据库。主文件是列表中的第一个文件,并使用 PRIMARY 关键字显式指定。事务日志文件在 LOG ON 关键字后指定。注意 FILENAME 选项中所用的文件扩展名:主要数据文件使用 .mdf,次要数据文件使用 .ndf,事务日志文件使用 .ldf。USE masterGOCREATE DATABASE Archive ONPRIMARY ( NAME = Arch1, FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat1.mdf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20),( NAME = Arch2, FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat2.ndf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20),( NAME = Arch3, FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat3.ndf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20)LOG ON ( NAME = Archlog1, FILENAME = 'c:\program files\microsoft sql server\mssql\data\archlog1.ldf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20),( NAME = Archlog2, FILENAME = 'c:\program files\microsoft sql server\mssql\data\archlog2.ldf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20)GOC. 创建简单的数据库本例创建名为 Products 的数据库,并指定单个文件。指定的文件成为主文件,并会自动创建一个 1 MB 的事务日志文件。因为主文件的 SIZE 参数中没有指定 MB 或 KB,所以主文件将以兆字节为单位进行分配。因为没有为事务日志文件指定 <filespec>,所以事务日志文件没有 MAXSIZE,可以增长到填满所有可用的磁盘空间为止。USE masterGOCREATE DATABASE ProductsON ( NAME = prods_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\prods.mdf', SIZE = 4, MAXSIZE = 10, FILEGROWTH = 1 )GOD. 不指定文件创建数据库下面的示例创建名为 mytest 的数据库,并创建相应的主文件和事务日志文件。因为该语句没有 <filespec> 项,所以主数据库文件的大小为 model 数据库主文件的大小。事务日志文件的大小为 model 数据库事务日志文件的大小。因为没有指定 MAXSIZE,文件可以增长到填满所有可用的磁盘空间为止。CREATE DATABASE mytestE. 不指定 SIZE 创建数据库下面的示例创建名为 products2 的数据库。文件 prods2_dat 将成为主文件,大小等于 model 数据库中主文件的大小。事务日志文件会自动创建,其大小为主文件大小的 25% 或 512 KB 中的较大值。因为没有指定 MAXSIZE,文件可以增长到填满所有可用的磁盘空间为止。USE masterGOCREATE DATABASE Products2ON ( NAME = prods2_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\prods2.mdf' )GOF. 使用文件组创建数据库下面的示例使用三个文件组创建名为 sales 的数据库: 主文件组包含文件 Spri1_dat 和 Spri2_dat。指定这些文件的 FILEGROWTH 增量为 15%。名为 SalesGroup1 的文件组包含文件 SGrp1Fi1 和 SGrp1Fi2。名为 SalesGroup2 的文件组包含文件 SGrp2Fi1 和 SGrp2Fi2。 CREATE DATABASE SalesON PRIMARY( NAME = SPri1_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\SPri1dat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15% ),( NAME = SPri2_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\SPri2dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15% ),FILEGROUP SalesGroup1( NAME = SGrp1Fi1_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG1Fi1dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ),( NAME = SGrp1Fi2_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG1Fi2dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ),FILEGROUP SalesGroup2( NAME = SGrp2Fi1_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG2Fi1dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ),( NAME = SGrp2Fi2_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG2Fi2dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 )LOG ON( NAME = 'Sales_log', FILENAME = 'c:\program files\microsoft sql server\mssql\data\salelog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB )GOG. 附加数据库示例 B 创建一个包含下列物理文件的名为 Archive 的数据库:c:\program files\microsoft sql server\mssql\data\archdat1.mdfc:\program files\microsoft sql server\mssql\data\archdat2.ndfc:\program files\microsoft sql server\mssql\data\archdat3.ndfc:\program files\microsoft sql server\mssql\data\archlog1.ldfc:\program files\microsoft sql server\mssql\data\archlog2.ldf可以使用 sp_detach_db 存储过程分离该数据库,然后使用带有 FOR ATTACH 子句的 CREATE DATABASE 重新附加。sp_detach_db ArchiveGOCREATE DATABASE ArchiveON PRIMARY (FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat1.mdf')FOR ATTACHGOH. 使用原始分区下面的示例使用原始分区创建名为 Employees 的数据库。执行语句时,原始分区必须存在,并且每个原始分区只能创建一个文件。USE masterGOCREATE DATABASE EmployeesON ( NAME = Empl_dat, FILENAME = 'f:', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 )LOG ON( NAME = 'Sales_log', FILENAME = 'g:', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB )GOI. 使用已装入的驱动器下面的示例使用指向原始分区的已装入驱动器创建名为 Employees 的数据库。此功能只在 Microsoft® Windows® 2000 Server 中才可用。.执行语句时必须已经存在已装入的驱动器和原始分区,并且每个原始分区上只能有一个文件。当在已装入的驱动器上创建数据库文件时,必须用尾随反斜线结束驱动器路径。USE masterGOCREATE DATABASE EmployeesON ( NAME = Empl_dat, FILENAME = 'd:\sample data dir\', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 )LOG ON( NAME = 'Sales_log', FILENAME = 'd:\sample log dir\', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB )GO A. 使用 PRIMARY KEY 约束下例显示在示例数据库 pubs 的 jobs 表中,job_id 列中具有聚集索引的 PRIMARY KEY 约束的列定义;此例由系统提供约束名。job_id smallint PRIMARY KEY CLUSTERED下例显示如何为 PRIMARY KEY 约束提供名称。此约束用于 employee 表中的 emp_id 列。此列基于用户定义数据类型。emp_id empid CONSTRAINT PK_emp_id PRIMARY KEY NONCLUSTEREDB. 使用 FOREIGN KEY 约束FOREIGN KEY 约束用于引用其它表。FOREIGN KEY 可以是单列键或多列键。下例显示 employee 表上引用 jobs 表的单列 FOREIGN KEY 约束。对于单列 FOREIGN KEY 约束,只需要 REFERENCES 子句。job_id smallint NOT NULL DEFAULT 1 REFERENCES jobs(job_id)也可以显式使用 FOREIGN KEY 子句并复述列特性。注意在这两个表中列名不必相同。FOREIGN KEY (job_id) REFERENCES jobs(job_id)多列键约束作为表约束创建。在 pubs 数据库中,sales 表包含多列 PRIMARY KEY。下例显示如何从其它表中引用此键(可选择显式约束名)。CONSTRAINT FK_sales_backorder FOREIGN KEY (stor_id, ord_num, title_id) REFERENCES sales (stor_id, ord_num, title_id)C. 使用 UNIQUE 约束UNIQUE 约束用于强制非主键列的唯一性。PRIMARY KEY 约束列自动包含唯一性限制;但是,UNIQUE 约束允许存在空值。下例显示表 authors 中名为 pseudonym 的列。该列强制作者笔名必须唯一。pseudonym varchar(30) NULLUNIQUE NONCLUSTERED下例显示在 stor_id 实际上是 PRIMARY KEY 的 stores 表中,stor_name 列和 city 列上创建的 UNIQUE 约束;同一个城市中的商店不应同名。CONSTRAINT U_store UNIQUE NONCLUSTERED (stor_name, city)D. 使用 DEFAULT 定义使用 INSERT 和 UPDATE 语句时,如果没有提供值,则默认值会提供值。在 pubs 数据库中,使用了许多 DEFAULT 定义以确保输入有效的数据或占位符。在 jobs 表上,当没有显式输入实际的描述信息时,默认的字符串将提供描述信息(列 job_desc)。DEFAULT 'New Position - title not formalized yet'在 employee 表中,员工可以受雇于子公司或母公司。如果没有显式提供公司信息,则输入母公司(注意在表定义中可以嵌套注释,如下所示)。DEFAULT ('9952')/* By default the Parent Company Publisher is the companyto whom each employee reports. */除了常量以外,DEFAULT 定义还可以包含函数。使用下例获取输入项的当前日期:DEFAULT (getdate())niladic 函数也可以提高数据的完整性。若要跟踪插入行的用户,请使用 niladic 函数 USER(niladic 函数不使用括号):DEFAULT USERE. 使用 CHECK 约束下例显示对输入到 jobs 表中的 min_lvl 列和 max_lvl 列的值的限制。这两个约束都未命名:CHECK (min_lvl >= 10)与CHECK (max_lvl <= 250)下例显示对输入到 employee 表的 emp_id 列中的字符数据具有模式限制的命名约束。CONSTRAINT CK_emp_id CHECK (emp_id LIKE '[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]' OR emp_id LIKE '[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]')下例指定 pub_id 必须在特定的列表中或遵循给定的模式。此约束用于 publishers 表中的 pub_id 列。CHECK (pub_id IN ('1389', '0736', '0877', '1622', '1756') OR pub_id LIKE '99[0-9][0-9]')F. 完整的表定义下例显示 pubs 数据库中所创建的三个表(jobs、employee 和 publishers)的完整表定义,其中包含所有的约束定义。/* ************************** jobs table ************************** */CREATE TABLE jobs( job_id smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, job_desc varchar(50) NOT NULL DEFAULT 'New Position - title not formalized yet', min_lvl tinyint NOT NULL CHECK (min_lvl >= 10), max_lvl tinyint NOT NULL CHECK (max_lvl <= 250))/* ************************* employee table ************************* */CREATE TABLE employee ( emp_id empid CONSTRAINT PK_emp_id PRIMARY KEY NONCLUSTERED CONSTRAINT CK_emp_id CHECK (emp_id LIKE '[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]' or emp_id LIKE '[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]'), /* Each employee ID consists of three characters that represent the employee's initials, followed by a five digit number ranging from 10000 through 99999 and then the employee's gender (M or F). A (hyphen) - is acceptable for the middle initial. */ fname varchar(20) NOT NULL, minit char(1) NULL, lname varchar(30) NOT NULL, job_id smallint NOT NULL DEFAULT 1 /* Entry job_id for new hires. */ REFERENCES jobs(job_id), job_lvl tinyint DEFAULT 10, /* Entry job_lvl for new hires. */ pub_id char(4) NOT NULL DEFAULT ('9952') REFERENCES publishers(pub_id), /* By default, the Parent Company Publisher is the company to whom each employee reports. */ hire_date datetime NOT NULL DEFAULT (getdate()) /* By default, the current system date is entered. */)/* ***************** publishers table ******************** */CREATE TABLE publishers( pub_id char(4) NOT NULL CONSTRAINT UPKCL_pubind PRIMARY KEY CLUSTERED CHECK (pub_id IN ('1389', '0736', '0877', '1622', '1756') OR pub_id LIKE '99[0-9][0-9]'), pub_name varchar(40) NULL, city varchar(20) NULL, state char(2) NULL, country varchar(30) NULL DEFAULT('USA'))G. 在列中使用 uniqueidentifier 数据类型下例创建含有 uniqueidentifier 列的表。该表使用 PRIMARY KEY 约束以确保用户不会在表中插入重复的值,并在 DEFAULT 约束中使用 NEWID() 函数为新行提供值。CREATE TABLE Globally_Unique_Data(guid uniqueidentifier CONSTRAINT Guid_Default DEFAULT NEWID(),Employee_Name varchar(60),CONSTRAINT Guid_PK PRIMARY KEY (Guid))H. 对计算列使用表达式下例显示如何使用表达式 ((low + high)/2) 计算 myavg 计算列。CREATE TABLE mytable ( low int, high int, myavg AS (low + high)/2 )I. 对计算列使用 USER_NAME 函数下例在 myuser_name 列中使用 USER_NAME 函数。CREATE TABLE mylogintable ( date_in datetime, user_id int, myuser_name AS USER_NAME() )J. 使用 NOT FOR REPLICATION下例显示如何在订阅了复制的表中使用 IDENTITY 属性。此表包含 CHECK 约束,以确保此系统生成的 SaleID 值不会增长到为复制发布服务器指派的范围内。CREATE TABLE Sales (SaleID INT IDENTITY(100000,1) NOT FOR REPLICATION, CHECK NOT FOR REPLICATION (SaleID <= 199999), SalesRegion CHAR(2), CONSTRAINT ID_PK PRIMARY KEY (SaleID) 我有个比较容易些的方法:安装SQL SERVER 2000->打开SQL的《联机丛书》->点击 索引 -> 输入 CREATE DATABASE 就可以查到如何用语句建立数据库;如何建立数据表,也是一样,输入CREATE TABLE 就可以查看!另外:不用语句的话,在SQL SERVER 企业管理器下可以半自动创建数据库:控制台根目录下的数据库下点击右键,选择“新建数据库”,然后确定你的数据库名称,数据库文件存放未知等一些基本信息即可; 建立好了数据库之后,比如MYDATA,还是在企业管理器的MYDATA数据库下点击右键,选择 新建 ,再选择 表,输入字段名称,数据类型,长度,并且确定该字段是否允许空值即可!建议你买一本SQL SERVER 的基础类书籍研究一下! 建立的方法,大力说得很明白了有问题,我建议你打开sql server后按F1帮助是最好的参考书 记录合并 注册用户名重名查询,以下哪种效率更好些? PL/SQL触发器执行删除的问题 SQL问题? 做很长时间了,突然发现一个问题没明白,什么情况用存储过程的输出值、什么情况用返回值? 事务的概念和特性是什么? 小弟刚学习SQL,关于索引很模糊,请指导! 有请三千,按钮,竹子草,program等等数据库高手,关于一个数据库设计的问题 告急,快来帮忙呀!(在线等待) 数据库设计之外键讨论 超难请教:类似全文搜索的查询 求一触发器,今天就揭贴!
A. 创建指定数据文件和事务日志文件的数据库
下面的示例创建名为 Sales 的数据库。因为没有使用关键字 PRIMARY,第一个文件 (Sales_dat) 成为主文件。因为 Sales_dat 文件的 SIZE 参数没有指定 MB 或 KB,因此默认为 MB,以兆字节为单位进行分配。Sales_log 文件以兆字节为单位进行分配,因为 SIZE 参数中显式声明了 MB 后缀。USE master
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\saledat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = 'Sales_log',
FILENAME = 'c:\program files\microsoft sql server\mssql\data\salelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
GOB. 指定多个数据文件和事务日志文件创建数据库
下面的示例使用三个 100 MB 的数据文件和两个 100 MB 的事务日志文件创建了名为 Archive 的数据库。主文件是列表中的第一个文件,并使用 PRIMARY 关键字显式指定。事务日志文件在 LOG ON 关键字后指定。注意 FILENAME 选项中所用的文件扩展名:主要数据文件使用 .mdf,次要数据文件使用 .ndf,事务日志文件使用 .ldf。USE master
GO
CREATE DATABASE Archive
ON
PRIMARY ( NAME = Arch1,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat1.mdf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch2,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat2.ndf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch3,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat3.ndf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20)
LOG ON
( NAME = Archlog1,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\archlog1.ldf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Archlog2,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\archlog2.ldf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20)
GOC. 创建简单的数据库
本例创建名为 Products 的数据库,并指定单个文件。指定的文件成为主文件,并会自动创建一个 1 MB 的事务日志文件。因为主文件的 SIZE 参数中没有指定 MB 或 KB,所以主文件将以兆字节为单位进行分配。因为没有为事务日志文件指定 <filespec>,所以事务日志文件没有 MAXSIZE,可以增长到填满所有可用的磁盘空间为止。USE master
GO
CREATE DATABASE Products
ON
( NAME = prods_dat,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\prods.mdf',
SIZE = 4,
MAXSIZE = 10,
FILEGROWTH = 1 )
GOD. 不指定文件创建数据库
下面的示例创建名为 mytest 的数据库,并创建相应的主文件和事务日志文件。因为该语句没有 <filespec> 项,所以主数据库文件的大小为 model 数据库主文件的大小。事务日志文件的大小为 model 数据库事务日志文件的大小。因为没有指定 MAXSIZE,文件可以增长到填满所有可用的磁盘空间为止。CREATE DATABASE mytestE. 不指定 SIZE 创建数据库
下面的示例创建名为 products2 的数据库。文件 prods2_dat 将成为主文件,大小等于 model 数据库中主文件的大小。事务日志文件会自动创建,其大小为主文件大小的 25% 或 512 KB 中的较大值。因为没有指定 MAXSIZE,文件可以增长到填满所有可用的磁盘空间为止。USE master
GO
CREATE DATABASE Products2
ON
( NAME = prods2_dat,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\prods2.mdf' )
GOF. 使用文件组创建数据库
下面的示例使用三个文件组创建名为 sales 的数据库: 主文件组包含文件 Spri1_dat 和 Spri2_dat。指定这些文件的 FILEGROWTH 增量为 15%。
名为 SalesGroup1 的文件组包含文件 SGrp1Fi1 和 SGrp1Fi2。
名为 SalesGroup2 的文件组包含文件 SGrp2Fi1 和 SGrp2Fi2。
CREATE DATABASE Sales
ON PRIMARY
( NAME = SPri1_dat,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\SPri1dat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 15% ),
( NAME = SPri2_dat,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\SPri2dt.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 15% ),
FILEGROUP SalesGroup1
( NAME = SGrp1Fi1_dat,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG1Fi1dt.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 ),
( NAME = SGrp1Fi2_dat,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG1Fi2dt.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 ),
FILEGROUP SalesGroup2
( NAME = SGrp2Fi1_dat,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG2Fi1dt.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 ),
( NAME = SGrp2Fi2_dat,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG2Fi2dt.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = 'Sales_log',
FILENAME = 'c:\program files\microsoft sql server\mssql\data\salelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
GOG. 附加数据库
示例 B 创建一个包含下列物理文件的名为 Archive 的数据库:c:\program files\microsoft sql server\mssql\data\archdat1.mdf
c:\program files\microsoft sql server\mssql\data\archdat2.ndf
c:\program files\microsoft sql server\mssql\data\archdat3.ndf
c:\program files\microsoft sql server\mssql\data\archlog1.ldf
c:\program files\microsoft sql server\mssql\data\archlog2.ldf可以使用 sp_detach_db 存储过程分离该数据库,然后使用带有 FOR ATTACH 子句的 CREATE DATABASE 重新附加。sp_detach_db Archive
GO
CREATE DATABASE Archive
ON PRIMARY (FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat1.mdf')
FOR ATTACH
GOH. 使用原始分区
下面的示例使用原始分区创建名为 Employees 的数据库。执行语句时,原始分区必须存在,并且每个原始分区只能创建一个文件。USE master
GO
CREATE DATABASE Employees
ON
( NAME = Empl_dat,
FILENAME = 'f:',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = 'Sales_log',
FILENAME = 'g:',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
GOI. 使用已装入的驱动器
下面的示例使用指向原始分区的已装入驱动器创建名为 Employees 的数据库。此功能只在 Microsoft® Windows® 2000 Server 中才可用。.执行语句时必须已经存在已装入的驱动器和原始分区,并且每个原始分区上只能有一个文件。当在已装入的驱动器上创建数据库文件时,必须用尾随反斜线结束驱动器路径。USE master
GO
CREATE DATABASE Employees
ON
( NAME = Empl_dat,
FILENAME = 'd:\sample data dir\',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = 'Sales_log',
FILENAME = 'd:\sample log dir\',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
GO
下例显示在示例数据库 pubs 的 jobs 表中,job_id 列中具有聚集索引的 PRIMARY KEY 约束的列定义;此例由系统提供约束名。job_id smallint
PRIMARY KEY CLUSTERED下例显示如何为 PRIMARY KEY 约束提供名称。此约束用于 employee 表中的 emp_id 列。此列基于用户定义数据类型。emp_id empid
CONSTRAINT PK_emp_id PRIMARY KEY NONCLUSTEREDB. 使用 FOREIGN KEY 约束
FOREIGN KEY 约束用于引用其它表。FOREIGN KEY 可以是单列键或多列键。下例显示 employee 表上引用 jobs 表的单列 FOREIGN KEY 约束。对于单列 FOREIGN KEY 约束,只需要 REFERENCES 子句。job_id smallint NOT NULL
DEFAULT 1
REFERENCES jobs(job_id)也可以显式使用 FOREIGN KEY 子句并复述列特性。注意在这两个表中列名不必相同。FOREIGN KEY (job_id) REFERENCES jobs(job_id)多列键约束作为表约束创建。在 pubs 数据库中,sales 表包含多列 PRIMARY KEY。下例显示如何从其它表中引用此键(可选择显式约束名)。CONSTRAINT FK_sales_backorder FOREIGN KEY (stor_id, ord_num, title_id)
REFERENCES sales (stor_id, ord_num, title_id)C. 使用 UNIQUE 约束
UNIQUE 约束用于强制非主键列的唯一性。PRIMARY KEY 约束列自动包含唯一性限制;但是,UNIQUE 约束允许存在空值。下例显示表 authors 中名为 pseudonym 的列。该列强制作者笔名必须唯一。pseudonym varchar(30) NULL
UNIQUE NONCLUSTERED下例显示在 stor_id 实际上是 PRIMARY KEY 的 stores 表中,stor_name 列和 city 列上创建的 UNIQUE 约束;同一个城市中的商店不应同名。CONSTRAINT U_store UNIQUE NONCLUSTERED (stor_name, city)D. 使用 DEFAULT 定义
使用 INSERT 和 UPDATE 语句时,如果没有提供值,则默认值会提供值。在 pubs 数据库中,使用了许多 DEFAULT 定义以确保输入有效的数据或占位符。在 jobs 表上,当没有显式输入实际的描述信息时,默认的字符串将提供描述信息(列 job_desc)。DEFAULT 'New Position - title not formalized yet'在 employee 表中,员工可以受雇于子公司或母公司。如果没有显式提供公司信息,则输入母公司(注意在表定义中可以嵌套注释,如下所示)。DEFAULT ('9952')
/* By default the Parent Company Publisher is the company
to whom each employee reports. */除了常量以外,DEFAULT 定义还可以包含函数。使用下例获取输入项的当前日期:DEFAULT (getdate())niladic 函数也可以提高数据的完整性。若要跟踪插入行的用户,请使用 niladic 函数 USER(niladic 函数不使用括号):DEFAULT USERE. 使用 CHECK 约束
下例显示对输入到 jobs 表中的 min_lvl 列和 max_lvl 列的值的限制。这两个约束都未命名:CHECK (min_lvl >= 10)与CHECK (max_lvl <= 250)下例显示对输入到 employee 表的 emp_id 列中的字符数据具有模式限制的命名约束。CONSTRAINT CK_emp_id CHECK (emp_id LIKE
'[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]' OR
emp_id LIKE '[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]')下例指定 pub_id 必须在特定的列表中或遵循给定的模式。此约束用于 publishers 表中的 pub_id 列。CHECK (pub_id IN ('1389', '0736', '0877', '1622', '1756')
OR pub_id LIKE '99[0-9][0-9]')F. 完整的表定义
下例显示 pubs 数据库中所创建的三个表(jobs、employee 和 publishers)的完整表定义,其中包含所有的约束定义。/* ************************** jobs table ************************** */
CREATE TABLE jobs
(
job_id smallint
IDENTITY(1,1)
PRIMARY KEY CLUSTERED,
job_desc varchar(50) NOT NULL
DEFAULT 'New Position - title not formalized yet',
min_lvl tinyint NOT NULL
CHECK (min_lvl >= 10),
max_lvl tinyint NOT NULL
CHECK (max_lvl <= 250)
)/* ************************* employee table ************************* */
CREATE TABLE employee
(
emp_id empid
CONSTRAINT PK_emp_id PRIMARY KEY NONCLUSTERED
CONSTRAINT CK_emp_id CHECK (emp_id LIKE
'[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]' or
emp_id LIKE '[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]'),
/* Each employee ID consists of three characters that
represent the employee's initials, followed by a five
digit number ranging from 10000 through 99999 and then the
employee's gender (M or F). A (hyphen) - is acceptable
for the middle initial. */
fname varchar(20) NOT NULL,
minit char(1) NULL,
lname varchar(30) NOT NULL,
job_id smallint NOT NULL
DEFAULT 1
/* Entry job_id for new hires. */
REFERENCES jobs(job_id),
job_lvl tinyint
DEFAULT 10,
/* Entry job_lvl for new hires. */
pub_id char(4) NOT NULL
DEFAULT ('9952')
REFERENCES publishers(pub_id),
/* By default, the Parent Company Publisher is the company
to whom each employee reports. */
hire_date datetime NOT NULL
DEFAULT (getdate())
/* By default, the current system date is entered. */
)/* ***************** publishers table ******************** */
CREATE TABLE publishers
(
pub_id char(4) NOT NULL
CONSTRAINT UPKCL_pubind PRIMARY KEY CLUSTERED
CHECK (pub_id IN ('1389', '0736', '0877', '1622', '1756')
OR pub_id LIKE '99[0-9][0-9]'),
pub_name varchar(40) NULL,
city varchar(20) NULL,
state char(2) NULL,
country varchar(30) NULL
DEFAULT('USA')
)G. 在列中使用 uniqueidentifier 数据类型
下例创建含有 uniqueidentifier 列的表。该表使用 PRIMARY KEY 约束以确保用户不会在表中插入重复的值,并在 DEFAULT 约束中使用 NEWID() 函数为新行提供值。CREATE TABLE Globally_Unique_Data
(guid uniqueidentifier
CONSTRAINT Guid_Default
DEFAULT NEWID(),
Employee_Name varchar(60),
CONSTRAINT Guid_PK PRIMARY KEY (Guid)
)H. 对计算列使用表达式
下例显示如何使用表达式 ((low + high)/2) 计算 myavg 计算列。CREATE TABLE mytable
(
low int,
high int,
myavg AS (low + high)/2
)I. 对计算列使用 USER_NAME 函数
下例在 myuser_name 列中使用 USER_NAME 函数。CREATE TABLE mylogintable
(
date_in datetime,
user_id int,
myuser_name AS USER_NAME()
)J. 使用 NOT FOR REPLICATION
下例显示如何在订阅了复制的表中使用 IDENTITY 属性。此表包含 CHECK 约束,以确保此系统生成的 SaleID 值不会增长到为复制发布服务器指派的范围内。CREATE TABLE Sales
(SaleID INT IDENTITY(100000,1) NOT FOR REPLICATION,
CHECK NOT FOR REPLICATION (SaleID <= 199999),
SalesRegion CHAR(2),
CONSTRAINT ID_PK PRIMARY KEY (SaleID)
如何建立数据表,也是一样,输入CREATE TABLE 就可以查看!另外:不用语句的话,在SQL SERVER 企业管理器下可以半自动创建数据库:控制台根目录下的数据库下点击右键,选择“新建数据库”,然后确定你的数据库名称,数据库文件存放未知等一些基本信息即可;
建立好了数据库之后,比如MYDATA,还是在企业管理器的MYDATA数据库下点击右键,选择 新建 ,再选择 表,输入字段名称,数据类型,长度,并且确定该字段是否允许空值即可!建议你买一本SQL SERVER 的基础类书籍研究一下!
帮助是最好的参考书