MYSQL之DDL(数据库定义语言)

DDL(数据库定义语言):

是对数据库内部的对象进行创建,删除,修改等的操作语言。它和DML语言最大的区别是DML只是对表内部数据的操作,而不涉及到表的定义,结构的修改,更不会涉及到其它对象。

  1. 创建数据库
   create database if not exists <name> ; -- 创建一个数据库
  1. 删除数据库
   drop database if not exists <name> ; 删除一个数据库
  1. 使用数据库
use <name> ; -- 使用数据库
  1. 查看数据库
   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

时间日期

dateYYYY-MM-DD日期格式
timeHH:mm:ss时区格式
datetimeYYYY-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 表名

==所有的创建和删除操作劲量加上判断,以免造成错误 ==

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Miaow.Y.Hu

赏一口饭吃吧,大大们

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值