SQL语法预览:
创建表字段数据类型:【createtable 表名(字段名称 数据类型); 】
插入字段值:【insert into表名 values(值1,值2,...,值n);】
查看格式化值:【select* 或 【格式1,格式2,...,格式n】from 表名;】
详解:
一
MySQL数据类型介绍
MySQL支持多种数据类型,主要有数值类型、日期类型、时间类型和字符串类型。
1
整数类型
数据类型主要用来存储数字,MySQL提供多种可供选择的整数类型,用整数作为数据类型的字段可以设置auto_increment自增约束条件。
案例
创建数据库db_demo2,创建表tb_temp1,其中包含字段a、b、c、d、e的数据类型分别为tinyint、smallint、mediumint、int(Integer)、bigint,SQL语句:
命令语句
create database db_demo2;
use db_demo2;
create table tb_temp1(a tinyint,b smallint,c mediumint,d int,e bigint);
desc temp1;
执行结果如下:
2
浮点和定点数据类型
MySQL中使用浮点数和定点数来表示小数。浮点有分为单浮点和双浮点。
案例
创建数据表tb_temp2,其中包含字段x、y、z的数据类型依次为float(5,1)、double(5,1)和decimal(5,1),向表中插入数据5.12、5.15和5.123,SQL语句:
命令语句
create table tb_temp2(x float(5,1),y double(5,1),z decimal(5,1));
insert into tb_temp2 values(5.12,5.15,5.123);
执行结果如下:
3
日期与时间类型
(1)YEAR
YEAR类型是一个单字节类型,用于表示年,在存储时只需要1个字节。可以使用各种格式指定YEAR值,如下所示:
以4位字符串或者4位数字格式表示的YEAR,范围为1901~2155。输入格式‘YYYY’或者YYYY。
以2位字符串格式表示的YEAR,范围为00到99。00~69转换为2000~2069;70~99转换为1970~1999;
以2位数字表示的YEAR值,范围为1~99。1~69值是2001~2069;70~99范围值转换为1970~1999,而在这里0值被转换为0000;
案例
创建数据表tb_temp3,定义字段类型为YEAR的字段y,向表中插入数值2017,'2017','0','00','77','10','78' 和'11',SQL语句:
命令语句
create table tb_temp3(y YEAR);
insert into tb_temp3 values(2017),('2017'),('0'),('00'),('77'),('10'),('78'),('11');
执行结果如下:
(2)TIME
TIME类型用于表示时间信息,在存储时需要3个字节。表示某一事件过去的时间和两个事件之间的时间间隔。可以大于24甚至为负值。
'D HH:MM:SS'格式的字符串。有'HH:MM','D HH:MM','D HH','SS' 。D表示日,可以取0~34之间的值。在插入数据库时D被转换为小时保存(D*24+HH)。
'HHMMSS'格式的数值,会自动分成HH:MM:SS但各自有取值范围,超过则输入不合法。
案例
创建数据表tb_temp4,定义字段类型为TIME的字段t,向表中插入数值'10:05:05' ,'23:23' ,'2 10:10' ,'3 02' ,'10' ,'101112' ,'0' ,和'106010',SQL语句:
命令语句
create table tb_temp4(t TIME);
insert into tb_temp4 values('10:05:05'),('23:23'),('2 10:10'),('3 02'),('10'),('101112'),('0'),('106010');
执行结果如下:
(3)DATE
DATE只用于输入日期,没有时间,在存储时需要3个字节。日期格式为:'YYYY-MM-DD' 。
以'YYYY-MM-DD'或者'YYYYMMDD'字符串格式表示日期,取值范围是'1000-01-01'~'9999-12-03' 。
以'YY-MM-DD'或者'YYMMDD'字符串格式表示日期,取值范围与年数相关,00~69年值范围是2000~2069,70~99年值范围是1970~1999。
以YY-MM-DD或者YYMMDD数字格式表示日期,取值范围与年数相关,00~69年值范围是2000~2069,70~99年值范围是1970~1999。
使用current_date或者now(),插入当前系统日期。
案例
创建数据表tb_temp5,定义字段类型为DATE的字段d,向表中插入数值'2017-12-02' ,'20101010' ,'99-09-09' ,'000101' ,'111111' ,121212和171203 ,SQL语句:
命令语句
create table tb_temp5(d DATE);
insert into tb_temp5 values('2017-12-02'),('20101010'),('99-09-09'),('000101'),('111111'),(121212),(171203);
执行结果如下:
(4)DATETIME
DATETIME用于同时输入日期和时间信息,在存储时需要8个字节。格式为:'YYYY-MM-DD HH:MM:SS', 只要符合格式使用字符串和数字类型均可。
以'YYYY-MM-DD HH:MM:SS'或者'YYYYMMDDHHMMSS'字符串格式表示日期,取值范围是'1000-01-01 00:00:00'~'9999-12-03 23:59:59'。
以'YY-MM-DD HH:MM:SS'或者'YYMMDDHHMMSS'字符串格式表示日期,取值范围与年数相关,00~69年值范围是2000~2069,,70~99年值范围是1970~1999。
以YYYYMMDDHHMMSS或者YYMMDDHHMMSS数字格式表示日期,取值范围与年数相关,00~69年值范围是2000~2069,,70~99年值范围是1970~1999。
使用now(),插入当前系统日期时间
案例
创建数据表tb_temp6,定义字段类型为DATETIME的字段dt,向表中插入数值'2017-12-02 20:33:33' ,'20101010101010','09-09-09 09:09:09' ,'121212121212'和111111111111 SQL语句:
命令语句
create table tb_temp6(dt DATETIME);
insert into tb_temp6 values('2017-12-02 20:33:33'),('20101010101010'),('09-09-09 09:09:09'),('121212121212'),(111111111111);
执行结果如下:
(5)TIMESTAMP
TIMESTAMP的显示格式与DATETIME相同,显示宽度是19个字符。存储需要4个字节,格式为:'YYYY-MM-DD HH:MM:SS' 。但是TIMESTAMP列的取值范围小于DATETIME的取值范围,为'1970-01-01 00:00:01'UTC~'2038-01-19 03:14:07' UTC。其中UTC(Coordinated Universal Time)世界标准时间,因此在插入数据时要保证在合法取值范围内。
案例
创建数据表tb_temp7,定义字段类型为TIMESTAMP的字段ts,向表中插入数值'20170101010101' ,'20050607080910' ,'08-08-08 09:09:09' ,'12@12@12 12@12@12' ,111111111111和now(),SQL语句:
命令语句
create table tb_temp7(ts TIMESTAMP);
insert into tb_temp7 values(’20170101010101’),('20050607080910'),('08-08-08 09:09:09'),('12@12@12 12@12@12'),(111111111111),(now());
执行结果如下:
未完待续...
SQL语法总结:
创建表字段数据类型:【createtable 表名(字段名称 数据类型); 】
插入字段值:【insert into表名 values(值1,值2,...,值n);】
查看格式化值:【select* 或 【格式1,格式2,...,格式n】from 表名;】
end
本文来自企鹅号 - 全球大搜罗媒体
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文来自企鹅号 - 全球大搜罗媒体
如有侵权,请联系 cloudcommunity@tencent.com 删除。