1. 程式人生 > >mysql資料庫中表的操作

mysql資料庫中表的操作

  • mysql資料庫管理系統管理的是資料庫中的庫,而在庫中存在著許多的表結構,表是包含資料庫中所有資料的資料庫物件。資料在表中的組織方式與在電子表格中相似,都是按行和裂的形式組織的。其中每一行代表一條唯一的記錄,每一列代表記錄中的一個欄位。組織形式如下:

在這裡插入圖片描述

  • 表中的資料庫物件包含列、索引和觸發器。

    • :也稱屬性列,在具體建立表時必須指定列的名字和資料型別。
    • 索引:是指根據指定資料庫表列建立起來的順序,提供了快速訪問資料的途徑且可監督表的資料,使其索引所指向的列中的資料不重複。
    • 觸發器:是指使用者定義的事務命令集合,當對一個表中的資料進行插入、更新或刪除時,這組命令就會自動執行,可以用來確定資料的完整性和安全性。
  • 表的操作包括建立表、查看錶、刪除表和修改表。

    • 建立表:CREATE TABLE table_name;建立一個名為table_name的表。我們知道表是存在於庫中的,在建立表之前我們還要選擇在哪個資料庫中建立,所以在建立表之前我們還要選擇我們要使用的庫。例如:建立一個名為school的資料庫,並在該資料庫中建立一個students表和一個teachers表,SQL語句執行如下:
      • CREATE DATABASE school;
      • USE school;
      • CREATE TABLE students(表名)(name(列名) varchar(10)(型別),stuid varchar(15),sex varchar(2),age tinyint);
      • CREATE TABLE teachers(name varchar(10),teacid varchar(15),sex varchar(2),age tinyint);
    • 查看錶:SHOW TABLES;檢視當前資料庫中的所有表。
    • 刪除表:DROP TABLE table_name;刪除名為table_name的表(將表的所有內容都刪除)。
    • 修改表:修改表的關鍵字為ALTER,是對錶進行結構上的修改,具體的用法如下:
      • 修改表名:ALTER TABLE old_table_name RENAME new_table_name;例如:將test資料庫中的user表名修改為users ;首先使用該資料庫 —>USE test;然後修改表名 —>ALTER TABLE user RENAME users;(執行DESC table_name可以查看錶table_name的屬性)。
      • 在表中增加欄位:ALTER TABLE table_name ADD 屬性名 屬性型別;例如:在users表中增加一個hometown欄位,SQL語句為 —>ALTER TABLE users ADD hometown varchar(20);執行該SQL語句會預設在表的最後一個位置增加該欄位,它還支援在開始處(末尾加上FIRST關鍵字)和在指定欄位之後增加(末尾加上ALTER 屬性名(即在哪個欄位後增加該欄位))。
      • 刪除欄位:指刪除在表中定義好的某個欄位。ALTER TABLE table_name DROP 屬性名(即欄位名);如刪除users表中的age欄位 —>ALTER TABLE users DROP age;
      • 修改欄位:可以修改欄位名和欄位的資料型別
        • 修改欄位資料型別:ALTER TABLE table_name MODIFY 屬性名 資料型別;例如,在原users表中name欄位的型別為varchar(10),現在要將其修改為varchar(20),則SQL語句為 —>ALTER TABLE users MODIFY name varchar(20);即為修改。
        • 修改屬性或資料型別或都修改:ALTER TABLE table_name CHANGE 舊屬性名 新屬性名 資料型別(最終使用的資料型別); 例如,在原users表中name欄位的型別為varchar(10),現在要將其屬性名修改為username,資料型別修改為varchar(20),則SQL語句為—>ALTER TABLE users CHANGE name username varchar(20);
        • 修改欄位的順序:ALTER TABLE table_name MODIFY 屬性名 資料型別 位置;在這裡 ”位置“ 有兩種選項,首先是選擇 “FIRST” ,將其順序調整到表的首部;另外的選項是“AFTER 表中其它屬性名” ,將其調整到該屬性的下一個位置。
  • 操作表的約束:對於已經建立好的表雖然欄位的資料型別決定了能夠儲存的資料型別,但在表中儲存的資料是否合法並沒有進行檢查。這時如果想針對表中的資料做一些完整檢查操作,可通過表的約束來完成。

  • MySQL支援的完整性約束:所謂的完整性約束是指資料的準確性和一致性,而完整性檢查是指檢查資料的準確性和一致性。MySQL資料庫管理系統提供了一種機制來檢查資料庫表中的資料是否滿足規定條件,以保證資料庫表中資料的準確性和一致性,這種機制就是約束。

完整性約束關鍵字 含義
NOT NULL 約束欄位值不能為空
DEFAULT 設定欄位的預設值
UNIQUE KEY(UK) 約束欄位的值唯一
PRIMARY KEY(PK) 約束欄位為表的主鍵,可以作為改標記錄的唯一標識
AUTO_INCREMENT 約束欄位的值為自動增加
FOREIGN KEY(FK) 約束欄位的值為表的外來鍵