文章插圖

文章插圖
1 查看表結構
查看表結構是指查看數據庫中已存在的表的定義 。查看表結構的語句包括 DESCRIBE 語句和 SHOW CREATE TABLE 語句 。通過這兩個語句,可以查看表的字段名、字段的數據類型、完整性約束條件等 。
1.1 查看表基本結構語句 DESCRIBE
MySQL 中,DESCRIBE 語句可以查看表的基本定義 。其中包括、字段名、字段數據類型、是否為主鍵和默認值等 。
DESCRIBE表名;DESC或DESCRIBEstudent7;1.2 查看表詳細結構語句 SHOW CREATE TABLEMySQL 中,SHOW CREATE TABLE 語句可以查看表的詳細定義 。該語句可以查看表的字段名、字段的數據類型、完整性約束條件等信息 。除此之外,還可以查看表默認的存儲引擎和字符編碼 。SHOW CREATE TABLE 語句的語法形式如下:
SHOW CREATE TABLE表名;SHOW CREATE TABLEstudent7;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 TABLEstudent8RENAME TOstudent8_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 TABLEstudent9MODIFYstu_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 TABLEstudent10CHANGEstu_name stu_name_changed VARCHAR(20);ALTER TABLEstudent10CHANGEcontent 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 TABLEstudent11ADDphone VARCHAR(20);ALTER TABLEstudent11ADDbirthday TIMESTAMP NOT NULL;ALTER TABLEstudent11ADDnum INT(11) NOT NULLFIRST;ALTER TABLEstudent11ADDaddress VARCHAR(30) NOT NULLAFTERphone;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 TABLEstudent12DROP`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 TABLEstudent13MODIFYcontent VARCHAR(20) FIRST;ALTER TABLESTUDENT13MODIFYstu_id INTAFTERstu_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 TABLEstudent14ENGINE=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`DROPFOREIGN KEYst_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;【sql查看表中字段數據類型 數據庫表查看表字段類型】DROP TABLE `student17_parent`; --不能刪除,因為與這關聯的表有外鍵#先刪除外鍵,然后就可以刪除表student17_parentALTER TABLE`student17_child`DROP FOREIGN KEYparent_fk;DROP TABLE`student17_parent`;
- cmd怎么查看IP地址 cmd怎么看IP地址
- mysql好還是oracle好 mysql和oracle哪個性能更好
- 下載mysql安裝包后怎么打開 mysql安裝包的下載及安裝步驟
- linux查看系統編碼 linux查看系統支持的編碼
- linux查看進程命令jps linux查看進程命令ps -ef
- Mysql數據遷移到es mysql數據遷移到mysql
- sql語句轉換時間格式 數據庫格式化時間
- linux中查看文件個數 linux查看文件數量的命令
- linux查看電腦硬件配置 Linux查看硬件信息
- 查看端口占用情況命令 命令行查看端口占用
