赞
踩
作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。
座右铭:低头赶路,敬事如仪
个人主页:网络豆的主页
目录
本章将会讲解MySQL数据库的表的一些操作。
show create table 表名 ;
通过这条指令,主要是用来查看建表语句的,而有部分参数我们在创建表的时候,并未指定也会查询 到,因为这部分是数据库的默认值,如:存储引擎、字符集等。
- CREATE TABLE 表名(
- 字段1 字段1类型 [ COMMENT 字段1注释 ],
- 字段2 字段2类型 [COMMENT 字段2注释 ],
- 字段3 字段3类型 [COMMENT 字段3注释 ],
- ......
- 字段n 字段n类型 [COMMENT 字段n注释 ]
- ) [ COMMENT 表注释 ] ;
注意: [...] 内为可选参数,最后一个字段后面没有逗号
- create table tb_user(
- id int comment '编号',
- name varchar(50) comment '姓名',
- age int comment '年龄',
- gender varchar(1) comment '性别'
- ) comment '用户表';
类型
|
大小
|
有符号
(SIGNED)
范围
|
无符号
(UNSIGNED)
范围
|
描述
|
TINYINT
|
1byte
|
(-128
,
127)
|
(0
,
255)
|
小整
数值
|
SMALLINT
|
2bytes
|
(-32768
,
32767)
|
(0
,
65535)
|
大整
数值
|
MEDIUMINT
|
3bytes
|
(-8388608
,
8388607)
|
(0
,
16777215)
|
大整
数值
|
INT/INTEGER
|
4bytes
|
(-2147483648
,2147483647)
|
(0
,
4294967295)
|
大整
数值
|
BIGINT
|
8bytes
|
(-2^63
,
2^63-1)
|
(0
,
2^64-1)
|
极大
整数
值
|
FLOAT
|
4bytes
|
(-3.402823466 E+38
,
3.402823466351 E+38)
|
0
和
(1.175494351 E-
38
,
3.402823466 E+38)
|
单精
度浮
点数
值
|
DOUBLE
|
8bytes
|
(-1.7976931348623157
E+308
,
1.7976931348623157
E+308)
|
0
和
(2.2250738585072014
E-308
,
1.7976931348623157
E+308)
|
双精
度浮
点数
值
|
DECIMAL
|
依赖于
M(
精度
)
和
D(
标度
)
的值
|
依赖于
M(
精度
)
和
D(
标度
)
的值
|
小数
值
(
精
确定
点数
)
|
- 如:
- 1). 年龄字段 -- 不会出现负数, 而且人的年龄不会太大
- age tinyint unsigned
- 2). 分数 -- 总分100分, 最多出现一位小数
- score double(4,1)
类型
|
大小
|
描述
|
CHAR
|
0-255 bytes
|
定长字符串
(
需要指定长度
)
|
VARCHAR
|
0-65535 bytes
|
变长字符串
(
需要指定长度
)
|
TINYBLOB
|
0-255 bytes
|
不超过
255
个字符的二进制数据
|
TINYTEXT
|
0-255 bytes
|
短文本字符串
|
BLOB
|
0-65 535 bytes
|
二进制形式的长文本数据
|
TEXT
|
0-65 535 bytes
|
长文本数据
|
MEDIUMBLOB
|
0-16 777 215 bytes
|
二进制形式的中等长度文本数据
|
MEDIUMTEXT
|
0-16 777 215 bytes
|
中等长度文本数据
|
LONGBLOB
|
0-4 294 967 295 bytes
|
二进制形式的极大文本数据
|
LONGTEXT
|
0-4 294 967 295 bytes
|
极大文本数据
|
char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和 字段值的长度无关 。而varchar是变长字符串,指定的长度为最大占用长度 。相对来说,char的性 能会更高些。
- 如:
- 1). 用户名 username ------> 长度不定, 最长不会超过50
- username varchar(50)
- 2). 性别 gender ---------> 存储值, 不是男,就是女
- gender char(1)
- 3). 手机号 phone --------> 固定长度为11
- phone char(11)
类型
|
大小
|
范围
|
格式
|
描述
|
DATE
|
3
|
1000-01-01
至
9999-12-31
|
YYYY-MM-DD
|
日期值
|
TIME
|
3
|
-838:59:59
至
838:59:59
|
HH:MM:SS
|
时间值或持续
时间
|
YEAR
|
1
|
1901
至
2155
|
YYYY
|
年份值
|
DATETIME
|
8
|
1000-01-01 00:00:00
至
9999-12-31 23:59:59
|
YYYY-MM
DD
HH:MM:SS
|
混合日期和时
间值
|
TIMESTAMP
|
4
|
1970-01-01 00:00:01
至
2038-01-19 03:14:07
|
YYYY-MM-DD
HH:MM:SS
|
混合日期和时
间值,时间戳
|
- 如:
- 1). 生日字段 birthday
- birthday date
- 2). 创建时间 createtime
- createtime datetime
1. 编号(纯数字)2. 员工工号 ( 字符串类型,长度不超过 10 位 )3. 员工姓名(字符串类型,长度不超过 10 位)4. 性别(男 / 女,存储一个汉字)5. 年龄(正常人年龄,不可能存储负数)6. 身份证号(二代身份证号均为 18 位,身份证中有 X 这样的字符)7. 入职时间(取值年月日即可)
对应的建表语句如下:
- create table emp(
- id int comment '编号',
- workno varchar(10) comment '工号',
- name varchar(10) comment '姓名',
- gender char(1) comment '性别',
- age tinyint unsigned comment '年龄',
- idcard char(18) comment '身份证号',
- entrydate date comment '入职时间'
- ) comment '员工表';
SQL语句编写完毕之后,就可以在MySQL的命令行中执行SQL,然后也可以通过 desc 指令查询表结构信息:
ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
ALTER TABLE emp ADD nickname varchar(20) COMMENT '昵称';
ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
创作不易,求关注,点赞,收藏,谢谢~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。