一舷嗡、表的定義:
- 表是存儲(chǔ)數(shù)據(jù)的文件
- 創(chuàng)建表之后會(huì)在
/var/lib/mysql/庫(kù)
目錄下生成表名.frm
和表名.ibd
二個(gè)文件轴猎,前者存的是表頭信息,后者存的是數(shù)據(jù)記錄
二进萄、語(yǔ)法格式:
創(chuàng)建表:
CREATE TABLE 庫(kù)名.表名(
表頭名1 數(shù)據(jù)類型,
表頭名2 數(shù)據(jù)類型捻脖,
...
);查看表頭:
DESC 庫(kù)名.表名中鼠;
刪除表:
DROP TABLE 庫(kù)名.表名可婶;
修改表:
ALTER TABLE 庫(kù)名.表名 操作命令;
- 操作命令:
add添加新表頭
:... 庫(kù)名.表名add
表頭名 數(shù)據(jù)類型 位置命令;
drop刪除表頭
:... 庫(kù)名.表名drop
表頭名1,drop
表頭名2...;
modify修改表頭數(shù)據(jù)類型
:... 庫(kù)名.表名modify
表頭名 數(shù)據(jù)類型;
modify修改表頭的位置
:... 庫(kù)名.表名modify
表頭名 數(shù)據(jù)類型 位置命令;
change修改表頭名
:... 庫(kù)名.表名change
原表頭名 新表頭名 數(shù)據(jù)類型;
rename修改表名
:... 庫(kù)名.原表名rename
庫(kù)名.新表名;- 位置命令:
first
:把表頭添加首位
after
:添加在指定表頭名的下方(after
表頭名)復(fù)制表:
- 復(fù)制表頭及表數(shù)據(jù):
CREATE TABLE 庫(kù)名.表名 SELECT 字段名 FROM 庫(kù)名.表名援雇;- 僅僅復(fù)制表頭不復(fù)制表數(shù)據(jù):
CREATE TABLE 庫(kù)名.表名 LIKE 庫(kù)名.表名矛渴;
三、使用示例:
- 修改表頭數(shù)據(jù)類型
# Alter table 庫(kù).表名 modify 表頭名 數(shù)據(jù)類型 熊杨;
mysql> alter table studb.stuinfo modify mail varchar(50);
mysql> desc studb.stuinfo;
+--------+-------------+------+-----+-------------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+-------------+-------+
| number | char(9) | YES | | NULL | |
| name | char(10) | YES | | NULL | |
| school | char(10) | YES | | NULL | |
| class | char(9) | YES | | NULL | |
| gender | char(4) | YES | | NULL | |
| mail | varchar(50) | YES | |NULL | |
+--------+-------------+------+-----+-------------+-------+
- 刪除多個(gè)表頭
mysql> alter table studb.stuinfo drop school,drop 班級(jí),drop mail;
- 復(fù)制表(拷貝已有的表 和系統(tǒng)命令 cp 的功能一樣 )
- 表頭和數(shù)據(jù)都復(fù)制
# create table 庫(kù)名.表名 select * from 庫(kù)名.表名曙旭;
# 拷貝 tarena庫(kù)下的user表到 studb庫(kù)里 表名不變
mysql> create table studb.user select * from tarena.user;
mysql> show tables;
+-----------------+
| Tables_in_studb |
+-----------------+
| stuinfo |
| user |
+-----------------+
# 查看數(shù)據(jù)
mysql> select * from studb.user;
- 僅僅復(fù)制表頭命令
# 僅僅復(fù)制tarena.user的表頭到studb.user2
mysql> create table studb.user2 like tarena.user;
mysql> show tables;
+-----------------+
| Tables_in_studb |
+-----------------+
| stuinfo |
| user |
| user2 |
+-----------------+
3 rows in set (0.00 sec)
# 查詢無(wú)數(shù)據(jù)
mysql> select * from studb.user2;
Empty set (0.00 sec)
# 查詢表頭信息
mysql> desc studb.user2;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | char(20) | YES | | NULL | |
| password | char(1) | YES | | NULL | |
| uid | int(11) | YES | | NULL | |
| gid | int(11) | YES | | NULL | |
| comment | varchar(50) | YES | | NULL | |
| homedir | varchar(80) | YES | | NULL | |
| shell | char(30) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
8 rows in set (0.00 sec)