思维导图
建库建表知识要点
1.建库之前需要在指定磁盘中新建文件夹,供各类文件存放
ON
(NAME='xxx'
,FILENAME='路径\xxx.mdf')
LOG ON
(NAME='xxx'
,FILENAME='路径\xxx.ldf');
示例代码
CREATE DATABASE 哗啦啦啦啦小药库
ON
(NAME='DataFile_1'
,FILENAME='D:\哗啦啦啦啦小药库\DataFile_1.mdf')
LOG ON
(NAME='LogFile_1'
,FILENAME='D:\哗啦啦啦啦小药库\LogFile_1.ldf');
运行结果
2.建库过程中,由于新手习惯性的多次进行执行,会出现数据库已存在,不能进行多次创建问题,因此需要在创建数据库时加入判断语句
IF DB_ID('数据库名称') IS NOT NULL
DROP DATABASE 数据库名称;
CREATE DATABASE 数据库名称;
或
IF DB_ID('数据库名称') IS NULL
CREATE DATABASE 数据库名称;
或者用exist判断,建表也是同样的道理。
3. 开始建表,先调用数据库 use database 名称;
避免多次执行出现表已存在的问题加入判断语句
IF OBJECT_ID(‘tb_表名’)IS NOT NULL
DROP TABLE tb_表名;
然后开始建表
GO
CREAT TABLE tb_表名
示例代码
USE 哗啦啦啦啦小药库;
IF OBJECT_ID('tb_Drug') IS NOT NULL
DROP TABLE tb_Drug;
GO
CREATE TABLE tb_Drug
(No
VARCHAR(20)
NOT NULL
CONSTRAINT pk_Drug_No
PRIMARY KEY(No)
,Name
VARCHAR(10)
NOT NULL
,Specification
VARCHAR(20)
NOT NULL
,Unit
VARCHAR(40)
NOT NULL
,TinyRate
VARCHAR(10)
NOT NULL
,WholesalePrice
Numeric(18,4)
NOT NULL
CONSTRAINT df_Drug_WholesalePrice
DEFAULT('未分配')
,RetailPrice
Numeric(18,4)
NOT NULL
CONSTRAINT df_Drug_RetaliPrice
DEFAULT('未分配')
,RealPurchasePrice
Numeric(18,4)
NOT NULL
CONSTRAINT df_Drug_RealPurchasePrice
DEFAULT('未分配')
,ProductionDate
Date
NOT NULL
,Validity
Date
NOT NULL
,Manufactuer
VARCHAR(10)
NOT NULL
,Supplier
VARCHAR(10)
NOT NULL
,ApprovalNumber
VARCHAR(40)
NOT NULL);
运行结果
4.在表中插入相应的记录
INSERT tb_表名
(属性1
,属性2
,属性3)
VALUES
(‘内容1’
,’内容2’
,’内容3’);
属性的顺序要和对应记录的顺序相同
若某个属性的某条记录为空,则应输入NULL
若要插入多条记录,则蓝色部分的代码可改为
VALUES
(‘内容1’,’内容2’,’内容3’)
,(‘内容1’,’内容2’,’内容3’);
或
SELECT
‘内容1’,’内容2’,’内容3’
UNION ALL
‘内容1’,’内容2’,’内容3’;
示例代码
INSERT tb_TeachingTask
(No)
VALUES
('LOO1')
,('LOO2')
,('LOO3')
,('LOO4')
,('LOO5');
运行结果
建库建表误点
错误1
CREATE TABLE tb_Buyer
(No
VARCHAR(20)
NOT NULL
CONSTRAINT pk_Supplier_No
PRIMARY KEY(No)
,Name
VARCHAR(10)
NOT NULL
,Title
VARCHAR(10)
NOT NULL
,Telephone
VARCHAR(20)
NOT NULL
错误分析:建立一个数据库中,最常出现的错误就是遗漏标点符号或者括号,上面那段代码很显然就是缺少一个与代码开头(No相呼应的后括号以及结束语句所需要的分号;
错误2
错误分析:日期和时间的数据类型是Date,并且记录时类型应为(年-月-日),定义其长度不能太短。