4. MySQL表的基本操作(命令)
4.1 建立資料表
4.1.1 普通建立表
create table 表名(欄位名 欄位型別 [欄位屬性],欄位名 欄位型別 [欄位屬性]...) [表選項];
CREATE TABLE member(name varchar(10))
varchar(10) 表示10個字元,此處的含義是 name 命名不能超過10個字元
建立資料庫之前,一定要事先指定一個資料庫:
方式一:使用 .
的方式,連線指定的資料庫 create table memeber.testdatabase(name INT)
方式二:事先進入指定的資料庫 use testdatabase
, 再建立資料表 create table memeber(name INT)
表選項
-
engine:儲存引擎,mysql提供的具體儲存資料的方式,預設是
innodb
-
charset:字符集(預設是utf-8),只對當前表有效,級別比資料庫高
-
collate:校對集
CREATE TABLE member(name varchar(10))cahrset utf8;
4.1.2 複製已有的資料表
從已經存在的表複製一份(只複製表結構,不復製表資料)
create table 新表名 like 表名
# 複製test2資料庫中的member表 ,在test1資料庫中
# 指定資料庫 test1
use test1;
# 複製表
create table member like test2.member
任意資料表都可以使用
資料庫名.資料表
的方式進行訪問
4.2 顯示資料表
4.2.1 顯示所有表
每當建立一張資料表,就會生成在對應的資料庫裡面生成一些檔案(與儲存引擎有關):在儲存資料的data相對應的目錄下面
show tables;
4.2.2 顯示匹配的表
show tables like '匹配模式';
# 以c開頭的所有表
show tables like 'c%';
4.3 顯示錶結構
顯示錶中所包含的欄位資訊(名字,型別,屬性等)
describe 表名;
desc 表名;
show columns from 表名;
4.4 顯示錶建立語句
show create table 表名;
mysql中有很多種語句結束符 (只是顯示結構的不同) ,
;
和\g
的效果是一樣的,\G
是另外一種效果
4.5 設定表屬性
表屬性主要指的是:engine(儲存引擎) charset(字符集) 和 collate
# 修改表 student 字符集為 gbk,預設是utf-8
alter table student charset gbk;
如果資料庫已經確定了,裡面還已經有資料了,建議不要輕易修改表結構
4.6 修改表結構
4.6.1 修改表名
rename table 舊錶名 to 新表名;
# 如下:
rename table student to my_student;
4.6.2 修改表選項
alter table 表名 表選項 [=] 新值
4.6.3 新增欄位
alter table 表名 add [column] 新欄位名 欄位型別 [列屬性] [位置 first/after 欄位名]
# 新增一個age欄位,預設新增的欄位是加在表的最後面
alter table my_student add age int;
# 新增一個id欄位,放在第一個
alter table my_student add id int first;
# 新增一個name欄位,放在id的後面
alter table my_student add name varchar(10) after id;
欄位位置:欄位想要存放的位置
first:第一個位置
after 欄位名:放在某個欄位後面的位置
4.6.4 修改欄位名
alter table 表名 change 舊欄位名 新欄位名 欄位型別 [列屬性] [新位置]
4.6.5 修改欄位型別(屬性)
alter table 表名 modify 欄位名 新型別 [新屬性] [新位置]
4.6.6 刪除欄位
alter table 表名 drop 欄位名;
4.7 刪除表結構
# 可以刪除多個表結構
drop table 表名 [,表名...];