3. 表的操作
3.1 創建表
語法:
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校驗規則 engine 存儲引擎;
說明:
- field 表示列名
- datatype 表示列的類型
- character set 字符集,如果沒有指定字符集,則以所在數據庫的字符集爲準 collate 校驗規則,如果沒有指定校驗規則,則以所在數據庫的校驗規則爲準
3.2 創建表案例
create table users (
id int,
name varchar(20) comment '用戶名',
password char(32) comment '密碼是32位的md5值',
birthday date comment '生日'
) character set utf8 engine MyISAM;
說明:
- 不同的存儲引擎,創建表的文件不一樣。
users 表存儲引擎是 MyISAM ,在數據目中有三個不同的文件,分別是:
- users.frm:表結構
- users.MYD:表數據
- users.MYI:表索引
備註:創建一個engine是innodb的數據庫,觀察存儲目錄
3.3 查看錶結構
desc 表名;
示例:
3.4 修改表
在項目實際開發中,經常修改某個表的結構,比如字段名字,字段大小,字段類型,表的字符集類型,表的存儲引擎等等。我們還有需求,添加字段,刪除字段等等。這時我們就需要修改表。
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);
ALTER TABLE tablename DROP (column);
案例:
在users表添加二條記錄
mysql> insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01-04');
在users表添加一個字段,用於保存圖片路徑
mysql> alter table users add assets varchar(100) comment '圖片路徑' after birthday;
mysql> desc users;
插入新字段後,對原來表中的數據沒有影響:
- 修改name,將其長度改成60
alter table users modify name varchar(60);
- 刪除password列
注意:刪除字段一定要小心,刪除字段及其對應的列數據都沒了
alter table users drop password;
desc users;
- 修改表名爲employee
alter table users rename to employee;
select * from employee;
to:可以省掉
- 將name列修改爲xingming
alter table employee change name xingming varchar(60);
--新字段需要完整定義
3.5 刪除表
語法格式:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
示例:
drop table t1;
注意:刪除表的操作謹慎使用。