1.创建数据表
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 [ 字段属性 | 约束] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 字段属性 | 约束] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [字段属性 | 约束] [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释] ;
2.列类型
数据库中该列存放的数据类型
分为:数值类型、字符串类型、日期和时间型数值类型
3.数值类型
类型 | 说明 | 取值范围 | 存储需求 |
TINYINT[(M)] | 非常小的数据 | 有符值: -27 ~ 27-1 无符号值:0 ~ 28-1 | 1字节 |
SMALLINT[(M)] | 较小的数据 | 有符值: -215 ~ 215-1 无符号值: 0 ~ 216-1 | 2字节 |
MEDIUMINT[(M)] | 中等大小的数据 | 有符值: -223 ~ 223-1 无符号值: 0 ~ 224-1 | 3字节 |
INT[(M)] | 标准整数 | 有符值: -231 ~ 231-1 无符号值:0 ~ 232-1 | 4字节 |
BIGINT[(M)] | 较大的整数 | 有符值: -263 ~263-1 无符号值:0 ~264-1 | 8字节 |
FLOAT[(M)] | 单精度浮点数 | ±1.1754351e -38 | 4字节 |
DOUBLE[(M)] | 双精度浮点数 | ±2.2250738585072014e -308 | 8字节 |
DECIMAL | 字符串形式的浮点数 | decimal(m, d) | m个字节 |
4.字符串类型
类型 | 说明 | 最大长度 |
CHAR[(M)] | 固定长字符串,检索快但费空间, 0 <= M <= 255 | M个字符 |
VARCHAR[(M)] | 可变字符串 0 <= M <= 65535 | 可变长度 |
TINYTEXT | 微型文本串 | 0-255个字符 |
TEXT | 文本串 | 0-65535个字符 |
5.日期和时间类型
类型 | 说明 | 取值范围 |
DATE | YYYY-MM-DD,日期格式 | 1000-01-01~ 9999-12-31 |
TIME | Hh:mm:ss ,时间格式 | -838:59:59~838:59:59 |
DATETIME | YY-MM-DD hh:mm:ss | 1000-01-01 00:00:00 至 9999-12-31 23:59:59 |
TIMESTAMP | YYYYMMDDhhmmss格式表示的时间戳 | 197010101000000 ~2038年的某个时刻 |
YEAR | YYYY格式的年份值 | 1901~2155 |
MySQL允许“不严格”语法:任何标点符号都可以用作日期部分之间的间隔符,如”16-06-16” ”16.06.16” ”16/06/16”都可以写入数据表。。
6.字段属性
字段属性 | 说明 |
UNSIGNED | 无符号的,声明该数据列不允许负数。 |
ZEROFILL |
1.
0
填充的,不足位数的用
0
来填充,如
int(3),5
则为
005
;
2.
使用
zerofill
会默认加
unsigned
。
|
AUTO_INCREMENT |
1.
自动增长的,每添加一条数据,自动在上一个记录数上加
1
;
2.
通常用于设置主键,且为整数类型;
3.
可定义起始值和步长
|
NULL 和 NOT NULL |
1.
默认为
NULL,
即没有插入该列的数值;
2.
如果设置为
NOT NULL
,则该列必须有值;
|
DEFAULT |
1.
默认的,用于设置默认值;
2.
例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认为“男”的值
|
7.字段注释
CREATE TABLE [ IF NOT EXISTS ] `test` (
`id` int (11) UNSIGNED COMMENT ‘编码号’
)COMMENT=‘测试表’;
8.查看表
SHOW TABLES;
9.查看表的定义
DESCRIBE 表名或DESC 表名
10.删除表
DROP TABLE [IF EXISTS] 表名
11.表类型
表的存储引擎;默认lnnoDB
MyISAM,lnnoDB等
语法:SHOW VARIABLES LIKE 'storage_engine%'
名称 | MyISAM | InnoDB |
事务处理 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,约2倍 |
适用场合:
使用MyISAM: 节约空间及相应速度,适合以访问为主的应用。
使用InnoDB: 安全性,事务处理及多用户操作数据表。
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`(
……) ENGINE = MyISAM
12.设置表的字符集
1、创建时通过命令设置
2、修改配置文件my.ini(Windows系统)中的参数
character-set-sever = utf8
13.修改表
修改表名:ALTER TABLE 旧表名 RENAME AS 新表名
添加字段:ALTER TABLE 表名 ADD 字段名 列类型[属性]
14.修改字段
ALTER TABLE 表名 MODIFY 字段名 列类型[属性] #修改列的数据类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型[属性] #修改列的数据类型及名称
删除字段 ALTER 表名 DROP 字段名