1.创建表
CREATE [TEMPORARY] TABLE tbl_name
(
字段名1 数据类型 [列级完整性约束条件] [默认值],
[字段名2 数据类型 [列级完整性约束条件] [默认值]]
[,…]
[表级完整性约束]
)[ENGINE=引擎类型]
CREATE TABLE user
(
`uid` int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` varchar(10) NOT NULL DEFAULT '' COMMENT '姓名',
`age` int(4) NOT NULL DEFAULT 0 COMMENT '年龄'
)
注:其中“TEMPORARY”为临时表选项,临时表不永久保留,断开连接即自动删除
2.更新表
在MySQL中,通过ALTER TABLE语句来更改原有表结构,常见操作有增加或删减列,创建或取消索引,更改原有列的数据类型、默认值,重命名表名或列名,更改标记注释或引擎类型,更改索引、外键等等
(1)ADD[COLUMN]子句
用于向表中增加列,可同时增加多列
ALTER TABLE USER
ADD `sex` CHAR(1) DEFAULT 1 COMMENT '1为男,0为女' AFTER 'age',
ADD `idcard` VARCHAR(20) COMMENT '身份证'
注:可用关键字“FIRST”将新列置于第一列,也可用关键字“AFTER” 使新列置于某列之后,如“AFTER ”
(2)CHANGE[COLUMN]子句
用于修改列的名称或数据类型
ALTER TABLE user
CHANGE age ages int(4)
注:使用change子句必须写上修改后的数据类型和数据长度,修改列的数据类型可能导致数据丢失或字符串长度不足被截断
(3)ALTER[COLUMN]子句
用于修改或删除列的默认值
ALTER TABLE user
ALTER age SET DEFAULT '1'
(4)MODIFY[COLUMN]子句
与CHANGE子句类型,但MODIFY只修改列数据类型,不修改列名;且可通过关键字“FIRST”,”AFTER”修改列的位置
ALTER TABLE user
MODIFY sex char(2)
(5)DROP[COLUMN]子句
用于删除列
ALTER TABLE user
DROP sex
(6)RENAME[TO]子句
用于为表重新命名
ALTER TABLE user
RENAME TO userinfo
3重命名表
(1)RENAME TABLE
除了使用上面ALTER TABLE语句,还可直接使用RENAME TABLE语句重命名表
RENAME TABLE tbl_name TO new_tbl_name
[,tbl_name2 TO new_tbl_name2]
4删除表
DROP[TEMPOPARY] TABLE[IF EXISTS]
tbl_name[,tal_name2][,...]
5查看表
(1)显示表名
SHOW[FULL] TABLES [{FROM|IN} db_name]
[LIKE 'pattern'|WHERE expr]
(2)显示表结构
SHOW [FULL] COLUMN {FROM|IN} tbl_name [{FROM|IN} db_name]
[LIKE 'pattern'|WHERE expr]
#或者
{DESCRIBE|DESC} tbl_name [col_name|wild]
#例如
DESC user;
DESC user name