mysql 表操作 数据类型
一 查看支持引擎
-- 数据库支持的存储引擎
show engines\G
-- 正在使用的存储引擎
show variables
like "storage_engine
%";
二 数据类型
1 整数类型
tinyint smallint int bigint
类型 大小 范围(有符号) 范围(无符号) 用途
tinyint 1字节 (
-128,
127) (
0,
255) 小整数
smallint 2字节 (
-32768,
32767) (
0,
65535) 大整数
int 4字节 (
-2147483648,
2147483647) (
0,
4294967295) 大整数
bigint 8字节 极大整数值
float 4字节 单精度 浮点数值
double 8字节 双精度 浮点数值
decimal 小数值
2 字符串数据类型
char 固定长度字符串 最多为255个字符
varchar 可变长度字符串 最多为65535个字符
3 浮点型
float double decimal
4 日期型
date time
datetime timestamp year
YEAR
YYYY(1901/2155)
DATE
YYYY-MM
-DD(
1000-01-01/9999-12-31)
TIME
HH:MM:SS('-838:59:59'/'838:59:59')
DATETIME
YYYY-MM
-DD HH:MM:SS(
1000-01-01 00:
00:
00/9999-12-31 23:
59:
59 Y)
TIMESTAMP
YYYYMMDD HHMMSS(1970-01-01 00:
00:
00/2037 年某时)
4-1 datatime 与 timestamp 的区别
--- datetime 与timestamp的区别
1.DATETIME的日期范围是1001——9999年,TIMESTAMP的时间范围是1970——2038年。
2.DATETIME存储时间与时区无关,TIMESTAMP存储时间与时区有关,显示的值也依赖于时区。在mysql服务器,操作系统以及客户端连接都有时区的设置。
3.DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。
4.DATETIME的默认值为null;TIMESTAMP的字段默认不为空(
not null),默认值为当前时间(
CURRENT_TIMESTAMP),如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。
5 字符类型
char类型:定长,简单粗暴,浪费空间,存取速度快
字符长度范围:0-255(一个中文是一个字符,是utf8编码的3个字节)
存储:
存储char类型的值时,会往右填充空格来满足长度
例如:指定长度为10,存>10个字符则报错,存
<10个字符则用空格填充直到凑够10个字符存储
varchar类型:变长,精准,节省空间,存取速度慢
字符长度范围:0-65535
varchar类型存储数据的真实内容,不会用空格填充,如果'ab ',尾部的空格也会被存起来
虽然varchar使用起来较为灵活,但是从整个系统的性能角度来说,char数据类型的处理速度更快,有时甚至可以超出varchar处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡
6. 枚举类型与集合类型
enum 单选 只能在给定的范围内选一个值,如性别 sex 男male
/女female
set 多选 在给定的范围内可以选择一个或一个以上的值(爱好1,爱好2,爱好3...)
create table consumer(
name varchar(
50),
sex enum('male',
'female'),
level enum(
'vip1',
'vip2',
'vip3',
'vip4',
'vip5'),
hobby set(
'play',
'music',
'read',
'study')
);
insert into consumer
values (
'yyy',
'male',
'vip5',
'read,study');
insert into consumer
values (
'xxx',
'female',
'vip1',
'music');
mysql> select * from consumer;
+------+--------+-------+------------+
| name
| sex
| level | hobby
|
+------+--------+-------+------------+
| yyy
| male
| vip5
| read,study
|
| xxx
| female
| vip1
| music
|
+------+--------+-------+------------+
7. 列属性
数值 unsigned 禁止使用负值
仅整数 auto_increment 生成包含连续唯一整数值的序列
default 如果没有指定值 则为其提供默认值
null
not null 不能为空
binary 二进制
character set 指定使用字符集
create table student(id
int not null primary key AUTO_INCREMENT);
create table student1(id
int not null primary key AUTO_INCREMENT,name
varchar(
20))charset utf8;
create table teacher(id
int not null ,name
varchar(
20)
not null);
create table teacher1(id
int not null ,name
varchar(
20)
not null,beizhu
varchar(
20)
not null default "ok");
primary key 主键; 非空唯一
unique 唯一
转载于:https://www.cnblogs.com/augustyang/p/11079102.html