SQL必知必會 筆記 第十七章 建立和操縱表,sql必知

來源:互聯網
上載者:User

SQL必知必會 筆記 第十七章 建立和操縱表,sql必知
17.1建立表

一般有兩種建立表的方法
(1)多數DBMS都具有互動式建立和管理表工具
(2)表也可以直接用SQL語句操縱
文法差別:在不同的SQL實現中,CREATE TABLE語句的文法可能會有所不同。

17.1.1表建立基礎

為利用CREATE TABLE建立表,必須給出下列資訊:
(1)新表的名字,在關鍵字CREATE TABLE之後給出。
(2)表列的名字和定義,用逗號分隔。
(3)有的DBMS還要求指定表的位置。
建立Products表

CREATE TABLE Products{     prod_id          CHAR(10)     NOT NULL,     vend_id          CHAR(10)     NOT NULL,     prod_name     CHAR(254)     NOT NULL,     prod_price      DECIMAL(8,2)     NOT NULL,     prod_desc      VARCHAR(1000)    NULL};

替換現有的表
在建立新表時,指定的表名必須不存在,否則將出錯。如果要防止以外覆蓋已有的表,SQL要求首先手工刪除該表,然後再重建它,而不是簡單地用建立表語句覆蓋它。

17.1.2使用NULL值

允許NULL值的列也允許在插入行時不給出該列的值。不允許NULL值的列不接受該列沒有值的行,換句話說,在插入或更新行時,該列必須沒有值。
指定NULL:多數DBMS在不指定NOT NULL時認為指定的是NULL,但並不是所有的DBMS都這樣。
主鍵和NULL值:主鍵是其值唯一標識表中每一行的列,只有不允許NULL值的列可用於主鍵。允許NULL值的列不能用於唯一標識。
理解NULL:不要把NULL值與空串相混淆,NULL值是沒有值,它不是空串,如果指定‘’,這在NOT NULL列種是允許的。空串是一個有效值,它不是無值。NULL值用關鍵字NULL而不是空串指定。

17.1.3指定預設值

SQL允許指定預設值,在插入行時如果不給出值,DBMS將自動採用預設值。預設值在CREATE TABLE語句的列定義中用關鍵字DEFAULT指定。

CREATE TABLE OrderItems{     order_num     INTEGER     NOT NULL,     order_item     INTEGER     NOT NULL,     prod_id          CHAR(10)     NOT NULL,     quantity         INTEGER     NOT NULL     DEFAULT 1,     item_price      DECIMAL(8,2)   NOT NULL};

獲得系統日期

17.2更新表

為更新表定義,可使用ALTER TABLE語句。
使用ALTER TABLE所考慮的內容。
(1)一般來說,在表中包含資料時不要對其進行更新。
(2)所有DBMS都允許給校友的表增加列,不過對所增加列的資料類型(以及NULL和DEFAULT的使用)有所限制。
(3)許多DBSM不允許刪除或更改表中的列。
(4)多數DBMS允許重新命名表中的列。
(5)許多DBMS對已經填有資料的列的更改有限制,對未填有資料的列幾乎沒有限制。
為了使用ALTER TABLE更改表結構,必須給出下面資訊:
(1)在ALTER TABLE之後給出要更改的表名(該表必須存在,否則將出錯)
(2)所做更改的列表
添加列

ALTER TABLE VendorsADD vend_phone CHAR(20);

刪除列

ALTER TABLE VendorsDROP COLUMN vend_phone;

小心使用ALTER TABLE:使用ALTER TABLE要極為小心,應該在進行改動前做一個完整的備份。資料庫表的更改不能撤銷,如果增加了不需要的列,可能不能刪除它們。類似地,如果刪除了不應該刪除的列,可能會丟失該列中的所有資料。

17.3刪除表

刪除表(刪除整個表而不是其內容),使用DROP TABLE語句。

DROP TABLE CustCopy;
17.4重新命名表

不同DBMS所支援的表的重新命名有所不同。
Oracle用RENAME

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.