SQL server 命令創建、修改、刪除數據表


1. 創建數據表 create

創建數據表的完整語法格式為:

CREATE TABLE 表名
(列名 數據類型[缺省值][NOT NULL]
 [,列名 數據類型[缺省值][NOT NULL]]....
 [,UNIQUE(列名[,列名]...)]
 [,PRIMARY KEY(列名[,列名]...)]
 [,FOREIGN KEY(列名[,列名]...) REFERENCES(列名[,列名]...)]
 [,CKECK(條件)]
)

參數說明:

  • DEFAULT(缺省值):指定列的缺省值;
  • NOT NULL:列值不能為空值;
  • UNNIQUE:取值唯一的列名;
  • PRIMARY KEY:主關鍵字(主碼)列名;
  • FOREIGN KEY:外部碼列名;
  • REFERENCES:引用的外部碼的表名和列名
  • CKECK:指定表級約束條件。

注意事項:

例1:在數據庫student中創建student表,表中包括:學號、姓名、出生年月、性別、地址、電話號碼、郵編、所在系代號、等

USE students --選擇數據庫
CREATE TABLE  student --創建表
(學號 char(10) NOT NULL PRIMARY KEY,
 姓名 char(8) NOT NULL,
 出生年月 datetime NULL,
 性別 char(2) NOT NULL DEFAULT('女'),
 地址 char(20),
 
 )

例2:如下表

列名 數據類型 允許空 默認值 主鍵
學號 Varchar(20) 主鍵
姓名 Varchar(20)
性別 Varchar(2) '男'
出生年月 Smalldatetime
身份證號 Varchar(20)
USE students
CREATE TABLE  student
(學號 Varchar(10) NOT NULL PRIMARY KEY,
 姓名 Varchar(8) NOT NULL,
 性別 Varchar(2) NOT NULL DEFAULT('男'),
 出生年月 Smalldatetime,
 身份證號 Varchar(20) UNIQUE --身份證號不可以重復
 
 )

例3:建立一個“選課”表,它是由學號、課程號、成績、3個屬性組成,其“學號”和“課程號”是聯合主鍵,表結構如下表所示。

列名 數據類型 允許空 約束 主鍵
學號 Varchar(20) PRIMARY KEY
課程號 Varchar(20) PRIMARY KEY
成績 int 0≤成績≤100
CREATE TABLE class
(學號 Varchar(20),
 課程號 Varchar(20),
 成績 INT CHECK(成績>=0AND成績<=100),
 PRIMARY KEY(學號,課程號)
)

2. 修改數據表 alter

在student中增加新字段“院系”,“班級名稱”;

alter table student

add 院系 char(10),班級名稱char(10)

修改表student中字段“院系”長度為char(5);

alter table student

alter column 院系 char(20)

3. 刪除數據表 drop

刪除class數據表

drop table class

小知識

  1. smalldatetime和datetime的區別:

    smalldatetime的有效時間范圍1900/1/1~2079/6/6,smalldatetime只精准到分

    datetime的有效時間范圍1753/1/1~9999/12/31,datetime則可精准到3.33毫秒

  2. char(10)和VARCHAR(10)的區別

    1. 首先明確的是,char的長度是不可變的,而varchar的長度是可變的,
    2. 定義一個char[10]和varchar[10],如果存進去的是‘abcd’,那么char所占的長度依然為10,除了字符‘abcd’外,后面跟六個空格,而varchar就立馬把長度變為4了,取數據的時候,char類型的要用trim()去掉多余的空格,而varchar是不需要的,
    3. char的存取數度還是要比varchar要快得多,因為其長度固定,方便程序的存儲與查找;但是char也為此付出的是空間的代價,因為其長度固定,所以難免會有多余的空格占位符占據空間,可謂是以空間換取時間效率,而varchar是以空間效率為首位的。
    4. char的存儲方式是,對英文字符(ASCII)占用1個字節,對一個漢字占用兩個字節;而varchar的存儲方式是,對每個英文字符占用2個字節,漢字也占用2個字節,兩者的存儲數據都非unicode的字符數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM