mysql表的創建、查看、修改、刪除

一、創建表

創建表前先使用use 數據庫名進入某一個數據庫,創建表語句的格式如下:

create table 表名稱 (
    列名1   列的數據類型 [約束],
    列名2   列的數據類型 [約束],
    列名2   列的數據類型 [約束],
    ...
    列名N   列的數據類型 [約束]
);
#注意:最後一個末尾沒有逗號

比如創建一個表名稱爲students,有name和age兩列的表的命令爲:

create table students (
    name   varchar(20),
    age   INTEGER 
);

創建完之後通過show tables命令,就可以看到剛創建的表了,如下所示:

mysql> create table students (
    -> name   varchar(20) ,
    -> age   INTEGER
    -> );
Query OK, 0 rows affected (0.60 sec)

mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| students       |
+----------------+
1 row in set (0.00 sec)

mysql>

注意:所有mysql語句都是使用的英文的符號!

二、查看錶

  1. 查看數據庫中所有表,使用show tables命令,例如:

    mysql> show tables;
    +----------------+
    | Tables_in_mydb |
    +----------------+
    | students       |
    +----------------+
    1 row in set (0.00 sec)
  2. 查看錶字段信息,使用desc 表名稱,例如查看上面創建的students表的字段,可以使用desc students命令,執行結果如下:

    mysql> show tables;
    +----------------+
    | Tables_in_mydb |
    +----------------+
    | students       |
    +----------------+
    1 row in set (0.00 sec)
  3. 查看錶的創建細節,使用命令show create table 表名稱,例如查看上面創建的students表創建細節,可以使用show create table students命令,顯示了創建表的完整sql語句。執行結果如下:

    mysql> show create table students;
    +----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table    | Create Table                                                                                                                                                 |
    +----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | students | CREATE TABLE `students` (
      `name` varchar(20) DEFAULT NULL,
      `age` int(11) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
    +----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql>

三、修改表

​ 數據庫表創建完成後,我們還可以根據需要對錶結構進行修改,比如增加字段,刪除字段,重命名字段,修改字段的數據類型和修改表的字符集等。

  1. 增加字段,使用命令alter table 表名稱 add 字段名稱 數據類型,比如在上面創建的students表中增加一列score的命令爲alter table students add score INTEGER,執行結果如下:

    #增加前查看錶結構
    mysql> desc students;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | name  | varchar(20) | YES  |     | NULL    |       |
    | age   | int(11)     | YES  |     | NULL    |       |
    +-------+-------------+------+-----+---------+-------+
    2 rows in set (0.00 sec)
    
    #增加一列
    mysql> alter table students add score INTEGER;
    Query OK, 0 rows affected (0.80 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    #增加後再查看錶結構,score已經增加了
    mysql> desc students;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | name  | varchar(20) | YES  |     | NULL    |       |
    | age   | int(11)     | YES  |     | NULL    |       |
    | score | int(11)     | YES  |     | NULL    |       |
    +-------+-------------+------+-----+---------+-------+
    3 rows in set (0.05 sec)
    
    mysql>
  2. 修改字段名稱,使用命令alter table 表名稱 change 原字段名稱 新字段名稱 數據類型,比如將students表中score字段重命名爲socre1,使用的命令爲alter table students change score score1 INTEGER,執行結果如下:

    mysql> desc students;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | name  | varchar(20) | YES  |     | NULL    |       |
    | age   | int(11)     | YES  |     | NULL    |       |
    | score | int(11)     | YES  |     | NULL    |       |
    +-------+-------------+------+-----+---------+-------+
    3 rows in set (0.05 sec)
    # 重命名字段
    mysql> alter table students change score score1  INTEGER;
    Query OK, 0 rows affected (0.33 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    mysql> desc students;
    +--------+-------------+------+-----+---------+-------+
    | Field  | Type        | Null | Key | Default | Extra |
    +--------+-------------+------+-----+---------+-------+
    | name   | varchar(20) | YES  |     | NULL    |       |
    | age    | int(11)     | YES  |     | NULL    |       |
    | score1 | int(11)     | YES  |     | NULL    |       |
    +--------+-------------+------+-----+---------+-------+
    3 rows in set (0.00 sec)
    
    mysql>
  3. 刪除字段,使用命令alter table 表名稱 drop 字段名稱來刪除字段,比如將students表中score1字段刪除的命令爲alter table students drop score1

  4. 修改表名稱,使用命令rename table 原表名稱 to 新表名稱 ,比如將students表名稱修改爲studentstab的命令爲rename table students to studentstab

  5. 修改表的字符集,使用命令alter table 表名稱 character set 字符集,比如將students表字符集修改爲utf8的命令爲alter table students character set utf8

四、刪除表

​ 刪除表的命令很簡單,格式爲drop table 表名稱,比如刪除上面創建的students表的sql語句爲drop table students,執行結果如下,表已經被刪除了:

mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| students       |
+----------------+
1 row in set (0.00 sec)

mysql> drop table students;
Query OK, 0 rows affected (0.50 sec)

mysql> show tables;
Empty set (0.00 sec)

mysql>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章