MYSQL之DDL(数据库定义语言)
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
DDL(数据库定义语言):
是对数据库内部的对象进行创建,删除,修改等的操作语言。它和DML语言最大的区别是DML只是对表内部数据的操作,而不涉及到表的定义,结构的修改,更不会涉及到其它对象。
- 创建数据库
create database if not exists <name> ; -- 创建一个数据库
- 删除数据库
drop database if not exists <name> ; 删除一个数据库
- 使用数据库
use <name> ; -- 使用数据库
- 查看数据库
show databases; -- 查看所有数据库
数据库的数据类型
数值
tinyint | 十分小的数据 | 1个字节 |
smallint | 比较小的数据 | 2个字节 |
mediumint | 中等大小的数据 | 3个字节 |
int | 标准的整数 | 4个字节 |
bigint | 较大的数据 | 8个字节 |
float | 单精度(浮点性) | 4个字节 |
double | 双精度 | 8个字节 |
decimal | 字符串形式的浮点数 | 金融计算的时候一般使用 |
字符串
char | 字符串固定大小 | 0-255 |
varchar 🥇 | 可变字符串 | 0-65535 |
tinytext | 微型文本 | 2^8 -1 |
text 🥈 | 文本串 | 2^16-1 |
时间日期
date | YYYY-MM-DD | 日期格式 |
time | HH:mm:ss | 时区格式 |
datetime | YYYY-MM-DD HH:mm:ss | 最长用的时间格式 |
timestamp | 时间戳,1970.1.1 | 从1970.1.1到现在的毫秒数!也比较常用 |
year | 年份表示 |
null
没有值,注意,不要使用null进行运算,结果运算为null.
数据库的子段属性:
Unsigned:
- 无符号的整数
- 声明了该列不能声明为负数
zerofill:
- 0填充的
- 不足的位数,用0来补充,int(3), 5 — 005
自增
- 通常理解为自增,自动在上一条记录的基础之上+1(默认)。
- 通常用来设计唯一的主键-- index,必须是整数类型。
- 可以自定义设计主键自增的起始值和步长
非空 null not null:
- 假设设置为not null 如果不给他赋值就会报错
- null 如果不填写值,这个值就会自动填充为空值。
默认
设置默认的值
如果不给他设置值,他就会默认为我们设置的填充值
一般创建表格的时候我们必须创建的存在的5个字段
id 主键
version 乐观锁
is_delete 伪删除 数据无价假删除保数据
gmt_create 创建时间
gmt_update 删除时间
创建表
-- 创建表格,一般表面我们使用``进行标记
-- 注意表中字符串的使用一般是单引号或者双引号
-- 所有的语句后添加,最后一个不要加
create table if not exists test1(
-- id 列名 int 数据类型 primary key 主键 not null 不为空 auto_increment 自增 comment "" 别名
id int primary key not null auto_increment comment '主键',
-- default '' 默认的
name varchar(10) not null default '匿名' comment '姓名',
birthday datetime default null comment '生日'
)Engine=innodb default charset=utf8;
格式
create table if not exists(
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
.....
`字段名` 列类型 [属性] [索引] [注释]
)[表类型][字符编码集][注释]
show create database [数据库名] -- 查看创建数据库的语句
show create table [数据库名] -- 查看数据库表的定义语句
Desc [表名] -- 显示表的结构
数据库引擎
MYISAM 早先年使用的
事务支持: 不支持
数据行锁定:不支持
外键:不支持
全文索引: 支持
表空间大小 : 较小
INNODB 目前默认使用的
事务支持: 支持
数据行锁定:支持
外键:支持
全文索引: 不支持
表空间大小:较大,约为2倍
常规使用操作:
MYISAM 节约空间,速度较快
INNODB 安全性高,事务的处理,多表多用户操作
在物理空间存储的位置
所有的数据库文件都存在data下,一个文件夹就代表一个数据库
本质还是文件的存储
MYSQL引擎在物理文件上的区别
- InnoDB在数据库表中只有一个*.frm文件,以及目录上级目录下的ibdata1文件
- MYISAM对应文件
- *.frm --表结构的定义文件
- *.MYD 数据文件(data)
- *.MYI 索引文件(index)
设置数据库表的字符集编码
charset=utf8;
不设置的话会是使用mysql中默认的编码,他不支持中文。
my.ini中配置默认的编码
character-set-server=utf8;
===============================================================
修改表
-- 修改表的名字 alter table 旧表名 rename as 新表名
alter table san rename san1;
增加表字段
-- 添加表字段 alter table 表名 add 列名 数据类型
alter table test add min int(4);
修改表的字段
-- 修改约束 alter table 表名 modify 列名 数据类型
alter table test modify min varchar(20);
-- 字段 重命名 以及修改约束 alter table 表名 change 旧名字 新名字 列属性
alter table test change min min1 int(11);
-- 删除表字段 alter table 表名 drop 列名
alter table 表名 drop 列名;
删除表
-- 删除表
drop table if exists 表名
==所有的创建和删除操作劲量加上判断,以免造成错误 ==
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |