一、创建数据库
1、创建默认数据库
# 创建一个默认的数据库test create database test
创建完之后点击执行,则左边的列表当中会多出一个数据库。
查询默认数据库的地址:
右键数据库进入属性
在文件选项中可以查看默认数据库:
2、创建指定参数位置数据库
create database S072003DBS ON -- 创建数据文件 ( NAME='S072003DATA', --文件名 FILENAME='D:\S072003DBS\S072003DATA.MDF', --文件路径 SIZE=10, --初始大小 MAXSIZE=100, --最大容量 FILEGROWTH=10 --自动增长容量 ) LOG ON -- 创建事务日志文件 ( NAME='S072003LOG', FILENAME='D:\S072003DBS\S072003LOG.LDF', SIZE=10, MAXSIZE=100, FILEGROWTH=10 ) -- 注意:最后一个变量后面不能加逗号,否则会报错
3、添加NDF数据文件
-- 修改带有NDF数据文件的数据库 ALTER DATABASE S072003DBS ADD FILE ( NAME='S072003DATANDF01', FILENAME='D:\S072003DBS_NDF\S072003DATANDF01.NDF', SIZE=10, MAXSIZE=100, FILEGROWTH=10 )
此时如下图就可以看到创建出的NDF文件:
此外,也可以通过手工的方式添加一个NDF文件
右键数据库之后点击属性,点击添加:
到此为止,MDF文件,和我们创建的两个NDF文件,共同构成了一个完整的逻辑数据库。
-- 通过下面这个语句可以查看S072003DBS 这个数据库的相关信息 SP_HELPDB S072003DBS
将S072003228DATANDF01文件移除:
ALTER DATABASE S072003DBS REMOVE FILE S072003228DATANDF01
二、创建表
如下图,在Excel当中有十张表,可以利用一些语句更加方便的创建表
--创建产品信息表PRODUCTS CREATE TABLE PRODUCTINFO (PID INT, PNAME NVARCHAR(50), PROVIDERID INT, PTID INT, UNITS NVARCHAR(20), PRICE DECIMAL(7,2), STOCK INT, ORDERQ INT, REORDERQ INT) --创建订单信息表ORDERS CREATE TABLE ORDERS (ORDERID INT, CUSTID CHAR(5), EMPID INT, ODATE DATETIME2, SDATE DATETIME2, ADATE DATETIME2, SHIPPERID INT, SHIPFEE DECIMAL(7,2), POWNER NVARCHAR(20), OWNERADD NVARCHAR(50), OWNERCITY NVARCHAR(10), OWNERREGION NVARCHAR(20), OWNERZIP NVARCHAR(10), OWNERCOUNTRY NVARCHAR(10)) --创建订单明细表ORDERDETAIL CREATE TABLE ORDERDETAIL (ORDERID INT, PID INT, PRICE DECIMAL(7,2), QUANTITY INT, DISCOUNT DECIMAL(4,2), CUSTID CHAR(5)) --创建供应商信息表PROVIDERS CREATE TABLE PROVIDERS (PROVIDERID INT, PROVIDERNAME NVARCHAR(50), PROVIDERCOMNAME NVARCHAR(20), PROVIDERCOMTITLE NVARCHAR(10), PROVIDERADD NVARCHAR(50), PROVIDERACITY NVARCHAR(20), PROVIDERREGION NVARCHAR(20), PROVIDERZIP NVARCHAR(10), PROVIDERCOUNTRY NVARCHAR(10), PROVIDERTEL NVARCHAR(20), PROVIDERFAX NVARCHAR(20), PROVIDERWEB NVARCHAR(50)) --创建员工信息表EMPLOYEES CREATE TABLE EMPLOYEES (EMPID INT, EMPFN NVARCHAR(20), EMPLN NVARCHAR(20), EMPTITLE NVARCHAR(20), EMPRESPECT NVARCHAR(10), EMPLEADER INT, EMPHIER NVARCHAR(20), EMPBIRTHDAY DATETIME, EMPHIRE DATETIME, EMPADD NVARCHAR(50), EMPCITY NVARCHAR(20), EMPREGION NVARCHAR(20), EMPZIP NVARCHAR(10), EMPCOUNTRY NVARCHAR(20), EMPHOMTEL NVARCHAR(20), EMPTELEXTEN NVARCHAR(10), EMPPIC IMAGE, EMPMEMO NVARCHAR(MAX)) --创建订单类型表ORDERTYPE CREATE TABLE ORDERTYPE (ORDERTYPE NVARCHAR(50), OTMIN INT, OTMAX INT) --创建利率表RATEINFO CREATE TABLE RATEINFO (RCURRENCY NVARCHAR(10), RATIO DECIMAL(5,2)) --创建顾客信息表EMPLOYEES CREATE TABLE CUSTOMERS (CUSTID CHAR(5), CUSTNAME NVARCHAR(50), CUSTCOMNAME NVARCHAR(50), CUSTCOMTITLE NVARCHAR(10), CUSTADD NVARCHAR(50), CUSTCITY NVARCHAR(10), CUSTREGION NVARCHAR(10), CUSTZIP NVARCHAR(10), CUSTCOUNTRY NVARCHAR(20), CUSTTEL NVARCHAR(20), CUSTFAX NVARCHAR(20)) --创建类型表PTYPES CREATE TABLE PTYPES (PTID INT, PTNAME NVARCHAR(50), PTMEMO NVARCHAR(50), PTPIC IMAGE) --创建运货商信息表SHIPPERS CREATE TABLE SHIPPERS (SHIPID INT, SHIPNAME NVARCHAR(50), SHIPTEL NVARCHAR(20))
执行代码之后,数据库当中就多了十张表:
三、创建主键
1、创建主键
--创建临时员工信息表EMPLOYEES(带有主键) CREATE TABLE EMPLOYEESTEMP (EMPID INT CONSTRAINT EMPID_PRI PRIMARY KEY, EMPFN NVARCHAR(20), EMPLN NVARCHAR(20), EMPTITLE NVARCHAR(20), EMPRESPECT NVARCHAR(10), EMPLEADER INT, EMPHIER NVARCHAR(20), EMPBIRTHDAY DATETIME, EMPHIRE DATETIME, EMPADD NVARCHAR(50), EMPCITY NVARCHAR(20), EMPREGION NVARCHAR(20), EMPZIP NVARCHAR(10), EMPCOUNTRY NVARCHAR(20), EMPHOMTEL NVARCHAR(20), EMPTELEXTEN NVARCHAR(10), EMPPIC IMAGE, EMPMEMO NVARCHAR(MAX))
如图,创建了主键之后就多了一把锁
2、对已创建的表进行主、外键设置
如下图,想对PRODUCTINFO
这张表的PID设置主键,但由于PID可以允许NULL,如果直接设置的话会报错
下面这两段代码要分开执行,不能一次运行:
# 先把PID设置为NOT NULL ALTER TABLE PRODUCTINFO ALTER COLUMN PID INT NOT NULL
-- 对已创建的表进行主键,外键的设置 ALTER TABLE PRODUCTINFO -- ALTER COLUMN PID INT NOT NULL ADD CONSTRAINT PK_PID PRIMARY KEY (PID)
此时就已经设置好主键了