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


    DDL(数据库定义语言):

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

    1. 创建数据库
       create database if not exists <name> ; -- 创建一个数据库
    
    • 1
    1. 删除数据库
       drop database if not exists <name> ; 删除一个数据库
    
    • 1
    1. 使用数据库
    use <name> ; -- 使用数据库
    
    • 1
    1. 查看数据库
       show databases; -- 查看所有数据库
    
    • 1

    数据库的数据类型

    数值

    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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    格式

    create table if not exists(
    	`字段名` 列类型 [属性] [索引] [注释],
        `字段名` 列类型 [属性] [索引] [注释],
        `字段名` 列类型 [属性] [索引] [注释],
        .....
        `字段名` 列类型 [属性] [索引] [注释]
    )[表类型][字符编码集][注释]
    
    show create database [数据库名]  -- 查看创建数据库的语句
    show create table [数据库名] -- 查看数据库表的定义语句
    Desc [表名] -- 显示表的结构
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    数据库引擎

    MYISAM 早先年使用的

    事务支持: 不支持

    数据行锁定:不支持

    外键:不支持

    全文索引: 支持

    表空间大小 : 较小

    INNODB 目前默认使用的

    事务支持: 支持

    数据行锁定:支持

    外键:支持

    全文索引: 不支持

    表空间大小:较大,约为2倍

    常规使用操作:

    MYISAM 节约空间,速度较快

    INNODB 安全性高,事务的处理,多表多用户操作

    在物理空间存储的位置

    所有的数据库文件都存在data下,一个文件夹就代表一个数据库

    本质还是文件的存储

    MYSQL引擎在物理文件上的区别

    • InnoDB在数据库表中只有一个*.frm文件,以及目录上级目录下的ibdata1文件

    • MYISAM对应文件

    • *.frm --表结构的定义文件

    • *.MYD 数据文件(data)

    • *.MYI 索引文件(index)

    设置数据库表的字符集编码

    charset=utf8;
    
    • 1

    不设置的话会是使用mysql中默认的编码,他不支持中文。

    my.ini中配置默认的编码

    character-set-server=utf8;
    
    • 1

    ===============================================================

    修改表

      -- 修改表的名字 alter table 旧表名  rename as 新表名
        alter table san rename san1;
    
    • 1
    • 2

    增加表字段

    -- 添加表字段 alter table 表名 add 列名 数据类型
    alter table test add min int(4);
    
    • 1
    • 2

    修改表的字段

    -- 修改约束 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 列名;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    删除表

      -- 删除表 
        drop table if exists 表名
    
    • 1
    • 2

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

  • 相关阅读:
    el-dropdown(下拉菜单)的入门学习
    MVVM的前世今生与在苹果开发中的应用
    高校教室预约使用管理系统(PHP+Mysql)毕业论文+项目源码+数据库sql文件
    47. UE5 RPG 实现角色死亡效果
    【web-渗透测试方法】(15.7)测试功能方面的输入漏洞
    SpringBoot 快速开发
    GenICam GenTL 标准 ver1.5(3)第四章
    Leetcode 347.前k个高频元素
    基于OpenSSL的即时通信信息加密系统实现
    Java 本地内存 & 直接内存 & 元空间
  • 原文地址:https://blog.csdn.net/qq_45922256/article/details/127414542