🏝?專欄:Mysql_貓咪-9527的博客-CSDN博客
🌅主頁:貓咪-9527-CSDN博客?“欲窮千里目,更上一層樓。會當凌絕頂,一覽眾山小。”
目錄
3.1 創建表
?3.2 查看表結構
3.3 修改表
1. 添加字段
2. 修改字段
3. 刪除字段
4.修改字段名
5. 修改表名
6.刪除表?
3.4?實踐案例:修改表
在數據庫中,表的操作主要包括表的創建、查看、修改、刪除等。了解如何操作這些表是數據庫管理和開發的基本技能。
3.1 創建表
創建表時,指定表的結構、數據類型、字符集、校驗規則和存儲引擎等。以下是創建表的詳細語法:
語法:
create table table_name (field1 datatype [constraint],field2 datatype [constraint],...
) [character set charset_name] [collate collation_name] [engine storage_engine];
-
field: 表示列名(字段名)
-
datatype: 列的數據類型(如 int、varchar、date 等)
-
constraint: 可選的約束條件(如 primary key、not null、unique 等)
-
character set: 字符集(可選,如果未指定,使用數據庫的默認字符集)
-
collate: 校驗規則(可選,如果未指定,使用數據庫的默認校驗規則)
-
engine: 存儲引擎(如 innodb、myisam 等)
注:括號[]里面可以省略,自定義寫或者不寫。
?
?查看表的創建信息:
show create table user;
其中被圈起來的就是我們沒有寫,默認被添加的。
示例:
create table user (id int primary key, name varchar(20) not null comment '用戶名', password char(32) not null comment '密碼是32位的md5值', birthday date comment '生日'
) character set utf8 collate utf8_general_ci engine=myisam;
作用:
-
創建一個名為
users
的表,包含id
、name
、password
和birthday
字段。 -
設置字符集為
utf8
,校驗規則為utf8_general_ci
,存儲引擎使用myisam
。
說明:
-
primary key
:定義主鍵,確保該字段唯一且不為空。 -
not null
:字段不能為空。 -
comment
:給字段加注釋,便于理解字段用途。
存儲引擎說明:
不同存儲引擎具有不同的特性:
-
myisam:適用于讀取較多的場景,存儲和索引分離。
-
innodb:支持事務,行級鎖,外鍵約束,適用于高并發寫操作。
?3.2 查看表結構
語法:
desc 表名;
或者
show columns from table_name;
-
table_name: 表的名稱
使用規則:
-
describe: 顯示表的字段信息,包括字段名、數據類型、是否允許
null
值、鍵的類型(如primary key
、index
等)及其他信息。 -
show columns: 和
describe
類似,但輸出格式可能略有不同。
示例:
describe user;
3.3 修改表
1. 添加字段
語法:
alter table table_name add column column_name datatype
[constraint] [after existing_column];
注:mysql支持分段書寫指令?
-
table_name: 表的名稱
-
column_name: 新增字段的名稱
-
datatype: 字段的數據類型
-
constraint: 可選約束,指定列的規則,如
not null
、default
等 -
existing_column: 如果指定,將字段添加到該字段之后
使用規則:
-
add column: 添加新字段時,可以指定新字段的默認值、約束條件以及字段的位置(是否放在已有字段后面)。
示例:
alter table user add assets varchar(100) comment '圖片路徑' after birthday;
作用:
-
向
users
表中添加名為assets
的字段,用于保存圖片路徑,數據類型為varchar(100)
,并放置在birthday
字段后。
2. 修改字段
語法:
alter table table_name modify column column_name datatype [constraint];
-
column_name: 要修改的字段名稱
-
datatype: 新的數據類型
-
constraint: 可選約束
使用規則:
-
modify column: 修改現有字段的類型或約束條件。可以改變數據類型、長度、是否允許
null
等。 -
修改字段時,字段位置不能更改。
示例:
alter table users modify name varchar(60) not null;
作用:
-
修改
users
表中name
字段的長度為60
,并設置為not null
。?
?
3. 刪除字段
語法:
alter table table_name drop column column_name;
-
column_name: 要刪除的字段名稱
使用規則:
-
drop column: 刪除字段時會丟失該字段的數據,操作前請確保備份。
示例:
drop table user drop asserts;
作用:
-
刪除
user
?表中的 asserts?字段。
4.修改字段名
語法:
alter table table_name change column old_column_name new_column_name datatype [constraint];
-
table_name: 表的名稱
-
old_column_name: 要修改的字段的原名稱
-
new_column_name: 修改后的字段名稱
-
datatype: 字段的數據類型(必須重新指定)
-
constraint: 可選的約束(如
not null
、unique
等)
使用規則:
-
change column: 用于修改字段名稱,同時可以修改字段的數據類型和約束。修改時,必須提供字段的完整數據類型,即使只是修改名稱,也需要指定數據類型。
-
注意:在修改字段名時,不能省略數據類型和原字段名稱。
示例:
alter table users change column name xingming varchar(60) not null;
作用:
-
將
users
表中的name
字段重命名為xingming
,并將數據類型修改為varchar(60)
,且字段不能為空(not null
)。
5. 修改表名
語法:
alter table old_table_name rename to new_table_name;
-
old_table_name: 原表名
-
new_table_name: 新表名
使用規則:
-
rename to: 修改表名時,要保證新名稱沒有與現有表重名。
6.刪除表?
drop table [表名];
3.4?實踐案例:修改表
假設我們有一個 users
表,包含以下字段:id
、name
、password
和 birthday
。
1. 插入數據
insert into users (id, name, password, birthday)
values (1, 'a', 'b', '1982-01-04'),(2, 'b', 'c', '1984-01-04');
2. 查看表結構
describe users;
3. 添加字段:添加 assets
字段,保存圖片路徑:
alter table users add assets varchar(100) comment '圖片路徑' after birthday;
4. 修改字段:修改 name
字段的長度:
alter table users modify name varchar(60);
5. 刪除字段:刪除 password
字段:
alter table users drop password;
6. 修改表名:將表名 users
改為 employee
:
alter table users rename to employee;
7. 最終查看表結構
describe employee;
注:?
-
創建表:創建表時,確保字段類型、約束條件、字符集和存儲引擎的選擇合適。
-
修改表:通過
alter table
命令,可以添加、刪除、修改字段,甚至修改表名。 -
刪除表:使用
drop table
命令刪除表,操作時要格外小心。 -
注意:所有的修改表結構的操作都會影響數據完整性,因此在進行這些操作時,務必先做好備份。