数据库
创建数据库
create database if not exists 库名;
说明:if not exists的存在为了保证数据库是唯一的,同时保证程序不阻塞
删除数据库
drop database if exists 库名;
说明: if exists 为保证程序不阻塞
表
查询表
show create table 表名; =》展示创建表的时候的结构的详细信息
desc 表名; =》 展示基础的表信息
创建表
mysql 5.1版本以下 的不安装引擎,需自己安装
charset=utf8; 指定字符集
engine=innodb;指定引擎;
comment=“示例”;添加注释
create table if not exists Student(
Sno varchar(9) primary key,
Sname varchar(20) unique,
Sage smallint,
Ssex varchar(2),
Sdept varchar(20)
)default charset=utf8 engine=InnoDB comment="示例1";
在每个字段后跟你想要设置的列特性
列特性的说明
- not null:不为空
- default:设置字段默认值
- unique:唯一值,一列中只能出现一个
- primary key:主键
- auto_increment:自增键
修改表
向表中增加一列
alter table 表名 add 列名 特性;
修改表中数据类型
alter table 表名 modify column 列名 新类型;
删除表中列
alter table 表名 drop 列名;
修改列名或其他 【万能修改】
alter table 表名 change 旧列名 新列名 特性;
修改特性
主键
添加主键
alter table 表名 add primary key (列名)
删除主键
alter table 表名 drop primary key
索引
添加唯一值索引
alter table 表名 add unique(列名)
添加全文索引
alter table 表名 add fulltext(列名); 版本需要在5.7及以上
添加普通索引
alter table 表名 add index(列名)
删除索引
alter table 表名 drop index/unique/fulltext 列名;
修改索引
删除后再添加;不能直接修改
引擎
修改
alter table 表名 engine=引擎名;
显示所有引擎
show engines;
自增开始值的修改
alter table 表名 auto_increment=1;
删除表
drop table 表名;
数据类型
常用的数值,字符,事件
数值类型
类型 | 大小 | 无符号范围 | 有符号范围 |
---|---|---|---|
tinyint | 1字节 | -27,27-1 | 0,2^8 ^-1 |
smallint | 2字节 | -215,215-1 | 0,2^16 ^-1 |
mediumint | 3字节 | -223,223-1 | 0,2^24 ^-1 |
int/integer | 4字节 | -231,231-1 | 0,2^32 ^-1 |
bigint | 8字节 | -263,263-1 | 0,2^64 ^-1 |
float | 4字节 | -231,231-1 | 0,2^32 ^-1 |
double | 8字节 | -263,263-1 | 0,2^64 ^-1 |
unsigned :无符号,最小是0
zerofull:数值位数不足时,用0补齐
字符串
类型 | 大小 |
---|---|
char | 255字节 (定长) |
varchar | 0-65535字节(弹性) |
tintblob | 0-255字节(二进制) |
tinttext | 0-255字节(文本) |
日期
类型 | 格式 |
---|---|
date | yyyy-mm-dd |
time | hh:mm:ss |
year | yyyy |
datetime | yyyy-mm-dd hh:mm:ss |
timestamp | 时间戳,毫秒数 |
类型为timestamp,默认插入数据的时间,更新时,时间也会变(版本>5.7)