1
2
3
4
5
6
7
8
9
10
11

SQL的數據定義語言

發(fā)布時間:2017-07-20 07:53   發(fā)布人:毛書朋   浏覽次數:8283


關聯課件:  3子項目三 - SQL的數據定義語言(點擊在線預覽)


3.3.3.2  數據定義語言(Create/Alter/Drop


1.CREATE/SHOW/USE語句

      CREATE語句可以用來創建新的數據庫和表。SHOW語句用來顯示當前所有數據庫或當前數據庫下的所有表。

      根據本章前面(miàn)講過(guò)的方法,打開(kāi)命令提示符界面(miàn),輸入用戶名密碼登錄到MySQL控制台。登錄到控制台後(hòu)光标前面(miàn)顯示“mysql>”,在光标處可以直接輸入SQL語句來操作數據庫。下來來創建一個student的數據庫。輸入以下命令并回車。

mysql> CREATE  DATABASE  student;

      SQL語句可以用大寫,也可以用小寫,還(hái)可以大小寫混合。本語句執行後(hòu)會輸出:

Query OK, 1 row affected (0.08 sec)

      這(zhè)說明語句執行成(chéng)功。一個名爲student的數據庫已經(jīng)被創建成(chéng)功。這(zhè)時可以用以下命令來查看數據庫是否已經(jīng)被創建。

mysql> SHOW DATABASES;

       輸入命令後(hòu)回車,列出當前所有數據庫。

mysql> show databases;

--------------------

| Database          |

--------------------

| information_schema |

| mysql             |

| student            |

| test               |

--------------------

4 rows in set (0.13 sec)

      可以看到,student數據庫已經(jīng)創建成(chéng)功(information_schema、mysql、test三個數據庫均爲MySQL安裝時自動創建的原始數據庫)。

      繼續用CREATE語句在student數據庫中創建一個表info。這(zhè)個表用來存儲學(xué)生基本信息,一共有3個字段,分别是姓名(name)、性别(sex)、年齡(age)。這(zhè)3個字段對(duì)應的數據類型分别爲CHAR、CHAR、TINYINT,長(cháng)度分别限制在20字節、2字節、2字節以内。

     在student數據庫中創建表之前,需要首先打開(kāi)這(zhè)個數據庫:

mysql> USE student;

     此語句用USE命令選定一個要操作的數據庫。執行後(hòu)顯示“Database changed”,表示數據庫已經(jīng)打開(kāi)。

     然後(hòu)輸入以下語句并回車:

mysql> CREATE TABLE info (name CHAR(20), sex CHAR(2), age TINYINT(2));

     注意每條SQL語句輸入完畢後(hòu)最後(hòu)要輸入“;”,表示輸入完成(chéng)。否則不論輸入多少個回車此語句都(dōu)不會執行,直到遇到分号結尾(也有極個别語句可以不加分号)。

      語句執行完畢後(hòu)顯示“Query OK, 0 rows affected (0.14 sec)”。表示語句執行成(chéng)功。這(zhè)時候表info已經(jīng)創建成(chéng)功。可以使用以下命令來查看student數據中現有的表。

mysql> SHOW TABLES;

      執行後(hòu)顯示:

-------------------

| Tables_in_student |

-------------------

| info              |

-------------------

1 row in set (0.00 sec)

       這(zhè)時可以看到info表确實已經(jīng)創建到了student數據庫中。


2.ALTER語句

      ALTER語句用來修改一個表的定義,也就是說修改表自身。如修改表的名字,修改表中某個字段的名字、屬性、類型等(也可以用于修改數據庫的部分屬性)。看下面(miàn)的例子:

mysql> ALTER TABLE info CHANGE name xingming CHAR (20);

      本語句將(jiāng)表info的name字段名修改爲xingming,類型和長(cháng)度不變。又如:

mysql> ALTER TABLE info ADD addr CHAR (50);

      本語句在info表中又增加了一個名爲addr,類型char,長(cháng)度爲50的新字段。

mysql> ALTER TABLE info DROP addr;

      本語句删除了表info中的addr字段。


3.DROP語句

      DROP語句用來删除一個數據庫或者一個表。如果是删除一個數據庫,那麼(me)這(zhè)個數據庫下的所有表也將(jiāng)被删除。例如:

mysql> DROP DATABSE D1;

      删除名爲D1的數據庫。

mysql> DROP TABLE tbl1;

      删除名爲tbl1的表(删除前需要先打開(kāi)數據庫)。




  • 劉普敏 2018-01-07 15:35:17
    域的完整性:用Check來實現約束,在數據庫設計工具中,對(duì)字段的取值範圍進(jìn)行定義時,有一個Check按鈕,通   過(guò)它定義字段的值城。   參照完整性:用PK、FK、表級觸發(fā)器來實現。   用戶定義完整性:它是一些業務規則,用存儲過(guò)程和觸發(fā)器來實現。
  • 劉普敏 2018-01-07 15:35:37
    防止數據庫設計打補丁的方法是“三少原則”    (1) 一個數據庫中表的個數越少越好(hǎo)。隻有表的個數少了,才能(néng)說明系統的E--R圖少而精,去掉了重複的多餘的     實體,形成(chéng)了對(duì)客觀世界的高度抽象,進(jìn)行了系統的數據集成(chéng),防止了打補丁式的設計;    (2) 一個表中組合主鍵的字段個數越少越好(hǎo)。因爲主鍵的作用,一是建主鍵索引,二是做爲子表的外鍵,所以組     合主鍵的字段個數少了,不僅節省了運行時間,而且節省了索引存儲空間;    (3) 一個表中的字段個數越少越好(hǎo)。隻有字段的個數少了,才能(néng)說明在系統中不存在數據重複,且很少有數據冗     餘,更重要的是督促讀者學(xué)會“列變行”,這(zhè)樣就防止了將(jiāng)子表中的字段拉入到主表中去,在主表中留下許     多空餘的字段。所謂“列變行”,就是將(jiāng)主表中的一部分内容拉出去,另外單獨建一個子表。這(zhè)個方法很簡     單,有的人就是不習慣、不采納、不執行。
  • 劉鑫蕊 2018-01-09 16:06:55
    方法獨特,從中學(xué)到了很多。
  • 嶽猛 2018-01-09 16:09:41
    對(duì)于數據定義語言講的非常的到位
  • 魏德旺 2018-01-09 16:19:21
    這(zhè)麼(me)詳細,想學(xué)不會都(dōu)難
  • 甄丹丹 2018-01-09 16:27:43
    條理清晰,通俗易懂
  • 李倩文 2018-01-10 11:49:51
    DROP語句用來删除一個數據庫或者一個表。如果是删除一個數據庫,那麼(me)這(zhè)個數據庫下的所有表也將(jiāng)被删除。
  • 班榮芳 2018-01-10 11:57:03
    這(zhè)麼(me)詳細,想學(xué)不會都(dōu)難
  • 楊宇生 2018-01-10 19:19:53
    内容詳細易懂,感謝老師