MySQL数据类型/属性/增删改查(14)
Posted 黄强
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据类型/属性/增删改查(14)相关的知识,希望对你有一定的参考价值。
MySQL数据类型
- 日期类型
·date
date数据类型负责存储日期信息(1000-01-01到9999-12-31)
可以使用数字和字符串插入(20180809或"2018-08-09")非数字或字母使用分隔符
·datetime
datetime数据类型负责存储日期和时间信息的组合(1000-01-01 00:00:00到9999-12-31 23:59:59)
可以使用数字和字符串插入(20180809122556或"2018-08-09 12:25:56")
·time
time数据类型负责存储时间信息(-838:59:59到838:59:59)
·timestame
timestame自动获取当前的日期和时间
- 数值数据类型
·bool和boolean
bool和boolean只是tinyint(1)的别名
·tinyint
tinyint数据类型是mysql排名第五的整数范围(无符号值:0~255 有符号值:-128~127)
·smallint
smallint数据类型是MySQL排名第四的整数范围(无符号值:0~65535 有符号值:-32768~32767)
·mediumint
mediumint数据类型是MySQL排名第三的整数范围(无符号值:0~16777215 有符号值:-8388608~8388607)
·int
int数据类型是MySQL排名第二的整数范围(无符号值:0~4294967295 有符号值:-2147483648~2147483647)
·bigint
bigint数据类型是MySQL排名第一的整数范围(无符号值:0~18446744073709511615 有符号值:-9233372036854755808~9233372036854755807)
·decimal
decimal数据类型是存储为字符串的浮点数(无符号值:2.2250738585072014E-308~1.7976931348623157E+308 有符号值:-1.7976931348623157E+308~2.2250738585072014E-308)
·double
double数据类型是双精度浮点数(无符号值:2.2250738585072014E-308~1.7976931348623157E+308 有符号值:-1.7976931348623157E+308~2.2250738585072014E-308)
·float
float数据类型是单精度浮点数(无符号值:1.175494351E-38~3.402823466E+38 有符号值:-3.402823466E+38~-1.175494351E-38)
浮点型比如:double(M,D) M存储数值的个数,D小数的位数
- 字符串数据类型
·char
char数据类型为MySQL提供了固定的长度,支持最大255个字符,如果插入的字符不足占用length指定的长度,剩余部分用空格填充
·varchar
varchar数据类型是MySQL的可变长度,支持长度为65536个字符,会保留尾部的空白部分
·longblob(longtext非二进制)
longblob数据类型是MySQL以二进制字符串表示形式,支持长度4294967259个字符
·mediumblob(mediumtext非二进制)
mediumblob数据类型是MySQL二进制字符串表示形式,支持长度16777215个字符
·blob(text非二进制)
blob数据类型是MySQL二进制字符串表示形式,支持长度65535个字符
·tinyblob(tinytext非二进制)
tinyblob数据类型是MySQL二进制字符串表示形式,支持长度255个字符
MySQL属性
- primary key
主键,只能出现一次
创建自动增加主键
create table xiu ( id smallint not null auto_increment )
创建单字段主键
create table xiu ( id varchar(255), primary key(id) )
创建多字段主键
create table xiu ( id varchar(255) not null, age varchar(255) not null, primary key(id,age) )
- not null
不能为空
- auto_increment
自动增长
- binary
区分大小写
- unique
只能出现一次,null可以多次出现
- national
确保使用默认字符集
- default
确保没有任何值可用的情况下,赋予某个常量值
- zerofill
前导,用0填充
- unsigned
设置负号
操作数据库
- 查看数据库
show databases;//查看所有数据库
- 添加数据库
create database xiu;//添加名为xiu的数据库
- 删除数据库
drop database xiu;//删除名为xiu的数据库
- 默认数据库
use xiu;//默认为xiu数据库
操作数据库表
- 添加表
create table xiu ( id tinyint primary key auto_increment,//主键,自增 name varchar(20) not null,//不能为空 age int not null//不能为空 )
- 查询表
show create table xiu;//查询xiu表
- 重命名
rename table xiu to kang;//将xiu表重命名为kang表
- 删除表
drop table xiu;//删除xiu表
操作数据库字段
- 添加一个列
alter table xiu add column kang varchar(10);
- 修改一个列
alter table xiu change kang kang varchar(10) not null;
- 删除一个列
alter table xiu drop birdate;
- 重命名一个列
alter table kang change age sex varchar(10);
数据的操作
- 添加一条数据
insert into xiu values(1,"name","age");
- 指定字段添加值
insert into xiu (name,age) values ("name","age");//因为主键是自增,所以可以不用添加id字段
- 查看数据
select * from xiu;//*代表查询所有字段,也可以指定字段查询
- 修改数据
update xiu set name="user" where id=1;//将id=1的数据的name字段的值修改为"user"
- 删除数据
delete from xiu where id = 1;//删除id为1的数据
添加查询
(查询xiu表的数据,条件为name="user")
select * from xiu where name = "user";
- 同时满足两个条件
and
(查询xiu表的数据,同时满足这两个条件name="user",age=18)
select * from xiu where name="user" and age=18;
select * from xiu where age not in(24,18);
select * from xiu where age is null;
(查询xiu表的数据,条件为age!=null)
select * from xiu where age is not null;
select * from xiu where name like("_s%");
select * from xiu where name not like("_s%");
- 范围查询
(查询xiu表的数据,条件为age的值的范围是10-30的数)
select * from xiu where age between 10 and 30;
select distinct name from xiu;
(查询xiu表的数据,按照age从小到大排序)
select * from xiu order by age asc;
select * from xiu order by age desc;
select * from xiu limit 0,3;
select max(id) from xiu group by age;
以上是关于MySQL数据类型/属性/增删改查(14)的主要内容,如果未能解决你的问题,请参考以下文章