一、存储引擎介绍 |
存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制。
详见:点击查看
二、表的介绍 |
表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段
id,name,qq,age称为字段,其余的,一行内容称为一条记录。
三、创建表 |
#语法: create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] ); #注意: 1. 在同一张表中,字段名是不能相同 2. 宽度和约束条件可选 3. 字段名和类型是必须的
mysql> create database db2 charset utf8; Query OK, 1 row affected (0.01 sec) mysql> use db2 Database changed mysql> create table t1( -> id int, -> name varchar(50), -> sex enum('male', 'female'), -> age int(3) -> ); Query OK, 0 rows affected (0.01 sec) mysql> show tables; +---------------+ | Tables_in_db2 | +---------------+ | t1 | +---------------+ 1 row in set (0.00 sec) mysql> desc t1; +-------+-----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-----------------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | name | varchar(50) | YES | | NULL | | | sex | enum('male','female') | YES | | NULL | | | age | int(3) | YES | | NULL | | +-------+-----------------------+------+-----+---------+-------+ 4 rows in set (0.01 sec) mysql> select id,name,sex,age from t1; Empty set (0.00 sec) mysql> select * from t1; Empty set (0.00 sec)
mysql> insert into t1 values (1,'egon','male',18), (2,'alex','female',81); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> select * from t1; +------+------+--------+------+ | id | name | sex | age | +------+------+--------+------+ | 1 | egon | male | 18 | | 2 | alex | female | 81 | +------+------+--------+------+ 2 rows in set (0.00 sec) mysql> insert into t1(id) values -> (3), -> (4); Query OK, 2 rows affected (0.01 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> select * from t1; +------+------+--------+------+ | id | name | sex | age | +------+------+--------+------+ | 1 | egon | male | 18 | | 2 | alex | female | 81 | | 3 | NULL | NULL | NULL | | 4 | NULL | NULL | NULL | +------+------+--------+------+ 4 rows in set (0.00 sec)
特别需要注意的是,字段匹配顺序和表中最后一个字段不能加逗号。
四、查看表结构 |
mysql> describe t1; +-------+-----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-----------------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | name | varchar(50) | YES | | NULL | | | sex | enum('male','female') | YES | | NULL | | | age | int(3) | YES | | NULL | | +-------+-----------------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) mysql> show create table t1\G; # 查看表结构详细结构,可以添加\G
类似的show create table mysql.user\G; 执行查看,可以解决在屏幕比较小时,“----”显示混乱的问题。
五、修改表结构 |
语法: 1. 修改表名 ALTER TABLE 表名 RENAME 新表名; 2. 增加字段 ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…], # 添加多个字段 ADD 字段名 数据类型 [完整性约束条件…]; ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…] FIRST; # 添加新字段到第一个 ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名; # 添加新字段到指定字段之后 3. 删除字段 ALTER TABLE 表名 DROP 字段名; 4. 修改字段————主要针对字段类型和字段名称 ALTER TABLE 表名 MODIFY 字段名 数据类型 [完整性约束条件…]; # 修改字段类型 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…]; # 修改字段名称 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];