MySQL SQL语句

字符集:
show charset;
UTF8:字符最大长度三个字节
UTF8mb4:字符最大长度四个字节,如支持emoji表情
校对规则:排序影响大小写
show collation;
存储引擎:
show engines;
数字类型:见下表
类型 占用字节 无符号范围 有符号范围(负数) 数据长度
tinyint 1 0-255 -128~127 3
smallint 2 0-65535 -32768~32767 5
mediumint 3 0-16777215 -8388608~8388607 8
int 4 0-2^32 -2^31~2^32-1 10
bigint 8 0-2^64 -2^63~ 2^63-1 20
选择数据类型的关键:
合适的、简短的、足够的
浮点型和定点型:
FLoat:表示不指定小数位的浮点数
FLoat(M,D):表示一共存储M个有效数字,其中小数部分占D位
Double:系统用8个字节来存储数据,表示的范围更大,10^308次方,但是精度也只有15位左右
Decimal:系统自动根据存储的数据来分配存储空间,每大概9个数就会分配四个字节来进行存储,同时小数和整数部分是分开的
Decmal(M,D):M表示总长度(包括小数点),最大不能超过64,D表示小数据部分长度,最大不能超过30
字符串类型
char:定长,最大支持255个字节长度
varchar:变长,最大支持65535个字节长度,系统都会在数据后面增加1-2个字节的额外开销,是用来保存数据所占用的空间长度,如果低于255字节则额外占用一个字节,如果大于255字符,则额外占用两个字节
text:文本类型
set:枚举类型
enum:集合
时间类型:
datetime:1000-01-01 / 9999-12-31  八字节
timestamp:1970-01-01 / 2038-1-19 四字节
primary key :主键约束
foreign key : 外键约束
not null : 非空约束
default : 默认约束
unique : 唯一
auto_increment :自增长列
unsigned : 无符号
comment : 注释
建库
create database test charset utf8mb4;
查库
show databases;
修改库定义
alter database test charset=utf8;
删除库
drop database test;
表定义
create table t1 (id1 float(5,2) default null,id2 double(5,2) default null,id3 decimal(5,2) default null);
建表规范:
1、表名:不要大写字母,不要数字开头,不要超过18个字符,不要使用内置字符串,要和业务有关
2、列名:不要超过18个字符,不要使用内置字符串,要和业务有关
3、数据类型:合适、精简、足够
4、每个表要有且只能有一个主键。每个列尽量not null 尽量不要使用外键
5、每列要有注释
6、存储引擎innodb,字符集utf8mb4
查表:
show tables;
修改表名:
alter table t1 rename t2;
表头,索引:
desc t1
添加列:
alter table t1 add idx tinyint  unique comment 'id列'
增加列值:
update t1 set idx=1 where id1=1.23;
修改列属性:(添加主键)
alter table t1 modify column id1 char(40);
alter table t2 modify column idx int auto_increment primary key;
删除列:
alter table t1 drop idx;
添加索引:
alter table t1 add index idx(idx) ;
删表:
drop table t1;
删除主键:
alter table t2 change idx idx tinyint;
alter table t2 drop primary key;

你可能感兴趣的:(MySQL)