您好,欢迎来到刀刀网。
搜索
您的当前位置:首页SQL几种常用的列类型.

SQL几种常用的列类型.

来源:刀刀网


MySQL几种常用的列类型:

1、数值类型

(1)INT[ (M) ]

说明:标准大小的整数

允许的属性:不选(可以取正负数) UNSIGNED(无符号,取值范围增大一倍), UNSIGED ZEROFILL(在数值前自动填0)auto_increment (自动递增)

取值范围:-21474838 到21474837(-231 到231-1),或者如果为UNSIGNED,

则0 到4294967295(0 到232-1)

缺省值:如果列为NULL,则为NULL;如果列为NOT FULL,则为0

存储需求:4 字节

同义词:INTEGER[ (M) ]

(2)FLOAT[(M,D)](M表示显示宽度,在D表示小数位数)

说明:小浮点数;单精度(精度小于DOUBLE)

允许的属性:ZEROFILL

取值范围:最小非零值为±1.75494351E-38;最大非零值为±3.402823466E+38

缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为0

存储需求:4字节

同义词:MySQL3.23版以前,FLOAT(4)为具有缺省M和D值的FLOAT的同义词。

注释:在MySQL3.23以后,FLOAT(4)为真浮点类型(值存储为硬件所允许的完整精度,

而不四舍五入为缺省的小数位数)。

(3)DOUBLE[(M,D)]

说明:大浮点数;双精度(比FLOAT更精确)

允许的属性:ZEROFILL

取值范围:最小非零值为±2.2250738585072014E-308;最大非零值为±1。79769313-

48623157E+308

缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为0

存储需求:8字节

同义词:DOUBLEPRECISION[(M,D)]和REAL[(M,D)]为DOUBLE[(M,D)]的同义词。

MySQL3.23版以前,FLOAT(8)为具有缺省M和D值的FLOAT的同义词。

注释:在MySQL3.23以后,FLOAT(8)为真浮点类型(值存储为硬件所允许的完整精度,

而不四舍五入为缺省的小数位数)。

2、串类型

MySQL的串类型常用来存储文本,它不但是通用的而且还能存储任何数据。可用串类型

来存储最大长度可变的值,而且可以选择在处理值时是否区分大小写。

(1)CHAR(M)

说明:0到M字节长的定长字符串。在MySQL3.23版以前,M应该为一个1到255之间的整数。而MySQL3.23版以后,M应该为一个0到255之间的整数。短于M个字符的串存储进右边补空格。长于M个字符的串存储时剪断为长度是M的串。在检索值时,去掉后跟的空格。

允许的属性:BINARY

允许的长度:0到M字节

缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为“”

存储需求:M字节

比较:不区分大小写(如果具有BINARY属性,则区分大小写)

(2)VARCHAR(M)

说明:0到M字节长的可变长字符串。M应该为1到255之间的一个整数,或者自MySQL3.23后为0到255之间的一个整数。存储时后跟的空格被去掉。存储时,大于M个字符的串剪断为M个字符。

允许的属性:BINARY

允许的长度:0到M字节

缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为“”

存储需求:值的长度,加上1字节用来记录长度

比较:不区分大小写(如果具有BINARY属性,则区分大小写)

(3)TEXT

说明:常规大小的TEXT值

允许的属性:除通用属性外无其他属性

允许的长度:0到65535(0到216-1)字节

缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为“”

存储需求:值的长度加上用于记录长度的2个字节

比较:不区分大小写

(4)ENUM(“value1”,“value2”,...)

说明:枚举,列值可赋予值列表中的某个成员

允许的属性:除通用属性外无其他属性

缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为第一个枚举值

存储需求:对1到255个成员的枚举1个字节,对255到65535个成员的枚举2个字节

比较:不区分大小写(MySQL3.22.1版以前区分大小写)

(5)SET(“value1”,“value2”,...)

说明:集合,列值可赋予值列表中的零个或多个成员

允许的属性:除通用属性外无其他属性

缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为“”(空集)

存储需求:1字节(1到8个成员的集合),2字节(9到16个成员的集合),3字节(17到24

个成员的集合),4字节(25到32个成员的集合)或8字节(33到个成员的集合)

比较:不区分大小写(MySQL3.22.1版以前区分大小写)

3、日期和时间类型

MySQL提供以各种形式表示时间数据的类型。这些数据有日期和时间类型。有一种特殊

的时间类型,它在记录更改时自动更新。还有一种用于存储年份的类型,在不需要完全的

日期时使用。

(1)DATE

说明:“YYYY-MM-DD”格式的日期

允许的属性:除通用属性外无其他属性

取值范围:“1000-01-01”到“9999-12-31”

零值:“0000-00-00”

缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为“0000-00-00”

存储需求:3字节(MySQL3.22版以前为4字节)

(2)TIME

说明:“HH:MM:SS”格式的时间(负值为“-HH:MM:SS”);表示占用的时间,但也可

以作为日常时间

允许的属性:除通用属性外无其他属性

取值范围:“-838:59:59”到“838:59:59”

零值:“00:00:00”

缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为“00:00:00”

存储需求:3字节

注释:虽然在非法值插入TIME列时,“00:00:00”用作零值,但它也作为一个合法的值

出现在正常的取值范围内

(3)YEAR

说明:YYYY格式表示的年份

允许的属性:除通用属性外无其他属性

取值范围:1900到2155

零值:0000

缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为0000

存储需求:1字节

(4)DATETIME

说明:以“YYYY-MM-DDhh:mm:ss”格式表示的日期和时间(两个部分都需要)

允许的属性:除通用属性外无其他属性

取值范围:“1000-01-0100:00:00”到“9999-12-3123:59:59”

零值:“0000-00-0000:00:00”

缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为“0000-00-00

00:00:00”

存储需求:8字节

3、建表命令create:

create table 表名(字段名 字段类型(长度)例1:

CREATE TABLE class_class (

classid varchar(15) NOT NULL,

schoolid int(11),

classname varchar(20),

regtime varchar(20),

字段属性)

regnum int(11),

managerid varchar(20)

);

例2:

CREATE TABLE class (

id int(11) NOT NULL auto_increment,

class_id char(4) DEFAULT '0' NOT NULL,

class_name char(40) NOT NULL,

teacher_id int(11) DEFAULT '0' NOT NULL,

PRIMARY KEY (id)

);

4、插入记录格式:insert

▲ 操作:单击右窗口中的插入按钮,在出现的记录输入界面下输入数据,并选择“插入新的一行”,再单击“执行”。即可连续插入多条记录,直到选择“后退到上一页”,再单

击“执行”,则结束记录的插入。

▲ 语句格式:

新增单笔记录

insert into 表名称(字段1,字段2,...) values(值1,值2,...)

例:insert into staff(name,pst,emdate) values(\"陈小东\

新增多笔记录

insert into 表名称(字段1,字段2,...) select 字段名 from 表 where 条件;

例:insert into staff(name,pst,emdate) select name,age,d_date from clients where age<20;

INSERT INTO `number1` ( `xh` ) VALUES ( '1'), ( '2');

5、删除命令格式:

▲操作:在记录前的选定栏内打勾,点击叉按钮,就可以删除该条记录;一次删多条,先选定要删除的记录,再点击记录下方的叉按钮即可。要注意的是,窗口顶部的删除按钮指的是删除整张表,不是用来删某一条记录的。清空按钮指删除所有记录,保留数据表结构。

▲ 语句格式:

delete from 表名称 where 条件

例:delete from products where author='张小东';

6、update命令:更新记录

▲ 这个命令的操作只能逐条修改记录值了,所以还是用命令方便。

▲ 语句格式:

update 表名称 set 字段名称=新值 where 条件

例:update products set price=price+20 where pages>700;

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务