sql資料庫使用教程,sql查看錶欄位類型

1 查看錶結構

查看錶結構是指查看資料庫中已存在的表的定義。查看錶結構的語句包括 DESCRIBE 語句和 SHOW CREATE TABLE 語句。通過這兩個語句,可以查看錶的欄位名、欄位的數據類型、完整性約束條件等。

1.1 查看錶基本結構語句 DESCRIBE

MySQL 中, DESCRIBE 語句可以查看錶的基本定義。其中包括、欄位名、欄位數據類型、是否為主鍵和默認值等。

DESCRIBE 表名 ;
DESC 或 DESCRIBE student7;

1.2 查看錶詳細結構語句 SHOW CREATE TABLE

MySQL 中, SHOW CREATE TABLE 語句可以查看錶的詳細定義。該語句可以查看錶的欄位名、欄位的數據類型、完整性約束條件等信息。除此之外,還可以查看錶默認的存儲引擎和字元編碼。 SHOW CREATE TABLE 語句的語法形式如下:

SHOW CREATE TABLE 表名 ;
SHOW CREATE TABLE student7;

2 修改表的方法

修改表是指修改資料庫中已存在的表。修改表比重新定義表簡單,不需要重新載入數據,也不會影響正在進行的服務。 MySQL 中能過 ALTER TABLE [alter: 改變,更改 ] 語句來修改表。修改表包括修改表名、修改欄位數據類型、修改欄位名、增加欄位、刪除欄位、修改欄位的排列位置、更改表的存儲引擎和刪除表的外鍵約束等。

2.1 修改表名

表名可以在一個資料庫中唯一的確定一張表。資料庫系統通過表名來區分不同的表。例如,資料庫 school 中有 student 表。那麼 student 表就是唯一的。在資料庫 school 中不可能存在另一個名為 “student” 的表。 MySQL 中,修改表名是通過 SQL 語句 ALTER TABLE 實現的。其語法形式如下:

ALTER TABLE 舊錶名 RENAME [TO] 新表名 ;

實例一 :

CREATE TABLE student8 (
  stu_id INT PRIMARY KEY,
  stu_name VARCHAR(20) NOT NULL,
  stu_gender BOOLEAN
) Engine = InnoDB;
SHOW TABLES;
DESCRIBE student8;
ALTER TABLE student8 RENAME TO student8_changed;

2.2 修改欄位的數據類型

欄位的數據類型包括整型、浮點數型、字元串型、二進位類型、日期和時間類型等。數據類型決定了數據的存儲格式、約束條件和有效範圍。表中每個欄位都有數據類型。 ALTER TABLE 語句也可以修改欄位的數據類型。其基本語法如下: ALTER TABLE 表名 MODIFY 屬性名 數據類型 ;

實例一 :

CREATE TABLE student9 (
  stu_id INT PRIMARY KEY,
  stu_name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  content VARCHAR(20) NOT NULL,
  stu_gender BOOLEAN
) Engine = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE student9 MODIFY stu_name char(20);

2.3 修改欄位名 [ 欄位的數據類型 , 完整性約束條件 ]

欄位名可以在一張表中唯一確定一個欄位。資料庫系統通過欄位名來區分表中的不同欄位。例如, student 表中包含 id 欄位。那麼, id 欄位在 student 表中是唯一的。 student 表中不可能存在另一個名為 “id” 的欄位。 MySQL 中 ALTER TABLE 語句也可以修改表的欄位名。其基本語法如下:

ALTER TABLE 表名 CHNAGE 舊欄位名 新欄位名 新數據類型 [ 新完整性約束條件 ];

其中, ” 舊欄位名 ” 參數指修改前的欄位名; ” 新欄位名 ” 參數指修改後的欄位名; ” 新數據類型 ” 參數修改後的數據類型,如不需要修改,則將新類型設置成與原來一樣。

1. 只修改欄位名

2. 修改欄位名和欄位數據類型

3. 修改完整性約束條件

實例一:

CREATE TABLE student10 (
  stu_id INT PRIMARY KEY,
  stu_name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  content VARCHAR(20) NOT NULL,
  stu_gender BOOLEAN
) Engine = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE student10 CHANGE stu_name stu_name_changed VARCHAR(20);
ALTER TABLE student10 CHANGE content content_changed VARCHAR(50) NOT NULL DEFAULT 'XXXX';

2.4 增加欄位

在創建表時,表中的欄位就已經定義完成。如果要增加新的欄位,可以通過 ALTER TABLE 語句進行增加。 MySQL 中, ALTER TABLE 語句增加欄位的基本語法如下:

ALTER TABLE 表名 ADD 新欄位名 數據類型 [ 完整性約束條件 ] [FIRST | AFTER 已有欄位名 ];

1. 增加無完整性約束條件的欄位

2. 增加有完整性約束條件的欄位

3. 表的第一個位置增加欄位

4. 表的指定位置之後增加欄位

實例一:

CREATE TABLE student11 (
  stu_id INT PRIMARY KEY,
  stu_name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  content VARCHAR(20) NOT NULL,
  stu_gender BOOLEAN
) Engine = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE student11 ADD phone VARCHAR(20);
ALTER TABLE student11 ADD birthday TIMESTAMP NOT NULL;
ALTER TABLE student11 ADD num INT(11) NOT NULL FIRST ;
ALTER TABLE student11 ADD address VARCHAR(30) NOT NULL AFTER phone;

2.5 刪除欄位

刪除欄位是指刪除已經定義好的表中的某個欄位。在表創建好之後,如果發現某個欄位需要刪除。可以採用將整個表都刪除,如果發現某個欄位需要刪除。可以採用將整個表都刪除,然後重新創建一張表的做法。這樣做是可以達到目的,但必須會影響到表中的數據。而且,操作比較麻煩。 MySQL 中, ALTER TABLE 語句也可以刪除表中的欄位。其基本語法如下:

ALTER TABLE 表名 DROP 欄位名 ;

實例一:

CREATE TABLE student12 (
  stu_id INT PRIMARY KEY,
  stu_name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  content VARCHAR(20) NOT NULL,
  stu_gender BOOLEAN
) Engine = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE student12 DROP `content`;

2.6 修改欄位的排列位置

創建表的時候,欄位在表中的排列位置就已經確定了。如果要改變欄位在表中的排列位置,則需要 ALTER TABLE 語句來處理。 MySQL 中,修改欄位排列位置的 ALTER TABLE 語句的基本語法如下: ALTER TABLE 表名 MODIFY 欄位名 數據類型 FIRST | AFTER 欄位名 2;

1. 欄位修改到第一個位置

2. 欄位修改到指定位置

實例一:

CREATE TABLE student13 (
  stu_id INT PRIMARY KEY,
  stu_name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  content VARCHAR(20) NOT NULL,
  stu_gender BOOLEAN
) Engine = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE student13 MODIFY content VARCHAR(20) FIRST;
ALTER TABLE STUDENT13 MODIFY stu_id INT AFTER stu_name;

2.7 更改表的存儲引擎

MySQL 存儲引擎是指 MySQL 資料庫中表的存儲類型。 MySQL 存儲引擎包括 InnoDB 、 MyISAM 、 MEMORY 等。不同的表類型有著不同的優缺點。在創建表的時候,存儲引擎就已經設定好了。如果要改變,可以通過重新創建一張表來實現。這樣做是可以達到目的,但必然會影響到表中的數據。而且,操作比較麻煩。

ALTER TABLE 表名 ENGINE= 存儲引擎名 ;

實例一:

CREATE TABLE student14 (
  stu_id INT PRIMARY KEY,
  stu_name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  content VARCHAR(20) NOT NULL,
  stu_gender BOOLEAN
) Engine = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE student14 ENGINE= MyISAM;

2.8 刪除表的外鍵約束

外鍵是一個特殊欄位,其將某一個表與其父表建立關係關係。在創建表的時候,外鍵約束就已經設定好了。由於特殊需要,與父表之間的關係關係需要去除,要求刪除外鍵約束。 MySQL 中, ALTER TABLEy 語句也可以刪除表的外鍵約束。

ALTER TABLE 表名 DROP FOREIGN KEY 外鍵別名 ;

實例一:

CREATE TABLE `student15` (
  `id` INT NOT NULL PRIMARY KEY,
  `name` VARCHAR(20) NOT NULL,
  `stu_id` INT,
  CONSTRAINT st_fk FOREIGN KEY(stu_id) REFERENCES student7(stu_id)
) Engine = InnoDB ;
ALTER TABLE `test`.`student15` DROP FOREIGN KEY st_fk;

3 刪除表的方法

刪除表是指刪除資料庫已經存在的表。刪除表時,會刪除表中的所有數據。因此,在刪除表時特別注意。 MySQL 中通過 DROP TABLE 語句來刪除表。由創建表時可能存在外鍵約束,一些表成為了與之關聯的表的父表。要刪除這些父表,情況比較複雜。

3.1 刪除沒有關係的普通表和被其他關聯的父表的方法。

CREATE TABLE student16 (
  stu_id INT PRIMARY KEY,
  stu_name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  content VARCHAR(20) NOT NULL COMMENT ' 內容 ',
  stu_gender BOOLEAN
) Engine = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
DROP TABLE [IF EXISTS] student16;

3.2 刪除被其他表關聯的父表

資料庫中某些表之間建立了關聯關係。一些表成為了父表,這些表被其子表關聯著。要刪除這些父表,情況不像上一節那麼簡單。

CREATE TABLE `test`.`student17_parent` (
  `id` INT NOT NULL PRIMARY KEY,
  `stu_id` INT,
  `name` VARCHAR(20) NOT NULL
) Engine = InnoDB ;
CREATE TABLE `student17_child` (
`id` INT NOT NULL PRIMARY KEY,
`stu_id` INT UNIQUE,
`name` VARCHAR(20) NOT NULL,
CONSTRAINT parent_fk FOREIGN KEY(stu_id) REFERENCES student17_parent(id) -- id 必須是帶有索引
) Engine = InnoDB;
DROP TABLE `student17_parent`; -- 不能刪除,因為與這關聯的表有外鍵
# 先刪除外鍵,然後就可以刪除表 student17_parent
ALTER TABLE `student17_child` DROP FOREIGN KEY parent_fk;
DROP TABLE `student17_parent`;

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/230824.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-10 18:44
下一篇 2024-12-10 18:44

相關推薦

發表回復

登錄後才能評論