Mysql学习 02 之 sql 语句

数据类型sql语句.

创建整型表

create table my_int(
int_1 tinyint,
int_2 smallint,
int_3 int,
int_4 bigint
) charset utf8;

插入数据

insert into my_int values (100,100,100,100); – 有效数据

insert into my_int values (‘a’,’b’,’199’,’f’); – 无效数据: 类型限定

insert into my_int values (255,1000,10000,100000); – 无效数据,超出范围

给表增加一个无符号类型

alter table my_int add int_5 tinyint unsigned; – 无符号类型

– 插入数据

insert into my_int values (127,1000,10000,1000000,255);

alter table my_int add int_6 tinyint(1) unsigned; –指定显示宽度为 1

insert into my_int values (127,0,0,0,255,255);

alter table my_int add int_7 tinyint(2) zerofill; – 显示宽度为2, 0 填充.

insert into my_int values(1,1,1,1,1,1,1);
insert into my_int values(100,100,100,100,100,100,100);

浮点数表

create table my_float(
f1 float,
f2 float(10,2), – 10 位在精度范围之外.
f3 float(6,2) – 6 位在精度范围之内,
)charset utf8;

– 插入数据

insert into my_float values (1000.10,1000.10,1000.10); – 符合条件
insert into my_float values (1234567890,12345678.90,1234.56); – 符合条件
insert into my_float values(3e38,3.01e7,1234.56);
insert into my_float values (9999999999,99999999.99,9999.99); – 最大值

– 超出长度插入数据

insert into my_float values(123456,1234.12345678,123.12345678); – 小数部分是符合的
insert into my_float values(123456,1234.12,12345.56);

– 创建定点数表

create table my_decimal(
f1 float (10,2),
d1 decimal(10,2)
)charset utf8;

– 插入数据

insert into my_decimal values (12345678.90,12345678.90); – 有效数据
insert into my_decimal values (1234.123456,1234.123456); – 小数部分超出.

insert into my_decimal values (99999999.99,99999999.99); – 没有问题的数据
insert into my_decimal values (99999999.99,99999999.999); –进位超出范围.

– 创建时间日期表

create table my_date(
d1 datetime,
d2 date,
d3 time,
d4 timestamp,
d5 year
)charset utf8;

– 插入数据

insert into
my_date values
(‘2018-05-11 14:30:40’,’2018-05-11’,’14:30:50’,’2018-05-11 :14:30:08’,2015);

– 时间使用负数

insert into
my_date values
(‘2018-05-11 14:30:40’,’2018-05-11’,’-14:30:50’,’2018-05-11 :14:30:08’,2015);

insert into
my_date values
(‘2018-05-11 14:30:40’,’2018-05-11’,’-2 14:30:50’,’2018-05-11 :14:30:08’,2015); – -2 标书过去 2 天48小时.

– year 可以使用两位或者 4位.

insert into
my_date values
(‘2018-05-11 14:30:40’,’2018-05-11’,’14:30:50’,’2018-05-11 :14:30:08’,69);
insert into
my_date values
(‘2018-05-11 14:30:40’,’2018-05-11’,’14:30:50’,’2018-05-11 :14:30:08’,70);

– timestamp: 修改记录
update my_date set d1 = ‘2018-05-11 14:30:30’ where d5 = 2069;

– 创建枚举表

create table my_enum(
gender enum(‘男’,’女’,’保密’)
)charset utf8;

– 插入数据

insert into my_enum values(‘男’),(‘保密’); – 有效数据.

– 错误数据

insert into my_enum values (‘male’); – 没有该元素

– 将字段结果取出来进行 + 0 运算

select gender + 0, gender from my_enum;

– 数值插入枚举元素

insert into my_enum values (1),(2);

– 创建集合表

create table my_set(
hobby set(‘篮球’,’足球’,’乒乓球’,’羽毛球’,’排球’,’台球’,’网球’,’棒球’)
)charset utf8;

– 插入数据

insert into my_set values (‘足球,台球,网球’);
insert into my_set values (3);

– 查看集合数据

select hobby + 0, hobby from my_set;

– 颠倒元素出现的顺序

insert into my_set values (‘网球,台球,足球’);

– 求出 varchar 在utf8 和 gbk下的实际最大值

create table my_utf8(
name varchar(21844) – 21844*3 +2= 65532 + 2 =65534
)charset utf8;

create table my_gbk(
name varchar(32766) – 32766 * 2+2 =65532+2 = 65534
)charset gbk;

create table my_utf81(
age tinyint, – 一个字节
name varchar(21844) – 21844*3 +2= 65532 + 2 =65534
)charset utf8;

create table my_gbk1(
age tinyint, – 一个字节
name varchar(32766) – 32766 * 2+2 =65532+2 = 65534
)charset gbk;

– 释放NULL

create table my_utf82(
age tinyint not null, – 一个字节
name varchar(21844) not null – 21844*3 +2= 65532 + 2 =65534
)charset utf8;

create table my_gbk2(
age tinyint not null, – 一个字节
name varchar(32766) not null – 32766 * 2+2 =65532+2 = 65534
)charset gbk;

– text 占用 是个字节长度

create table my_text(
name varchar(21841) not null, – 21841*3 +2= 65523 + 2 =65525
content text not null – 10
)charset utf8;

– 创建一个班级表

create table my_class(
name varchar(20) not null,
room varchar(20) null – 允许为空:
)charset utf8;

– 创建表

create table my_teacher(
name varchar(20) not null comment ‘姓名’,
money decimal(12) not null comment ‘工资’
)charset utf8;

– 默认值

create table my_default(
name varchar(20) not null comment ‘姓名’,
age tinyint unsigned default 0,
gender enum(‘男’,’女’,’保密’) default ‘男’ – 最后一列属性一定不加 分号 ; 否则报错
)charset utf8;

– 插入数据

insert into my_default (name) values (‘高强’);
insert into my_default values (‘杨阳’,18,default);

猜你喜欢

转载自blog.csdn.net/yangyang_A/article/details/80321111