第七周學習筆記
思維導圖
建庫建表知識要點
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_表名
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)
,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,並且記錄時類型應為(年-月-日),定義其長度不能太短。
第七周學習筆記