• 八、mysql语句的DDL语句


    在这里插入图片描述

    八、mysql语句的DDL语句

    DDL语句:数据定义语言

    一、库定义

    1、创建库

    创建一个不存在的数据库
    create database school;
    create schema sch;
    查看支持的字符集
    show charset;
    查看支持的校对规则
    show collation;
    完整创建一个不存在的数据库,建议的操作
    CREATE DATABASE test CHARSET utf8;  #创建一个test库,字符集为utf8
    create database xyz charset utf8mb4 collate utf8mb4_bin; #创建一个xyz库,字符集为utf8mb4,校对规则为uft8mb4_bin(大小写敏感,注意:校对规则必须与字符集一致)
    
    建库规范:
    1.库名不能有大写字母   
    2.建库要加字符集         
    3.库名不能有数字开头
    4. 库名要和业务相关
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    建库标准语句

    mysql> create database db charset utf8mb4;
    mysql> show create database xuexiao; #查看创建库的语句
    
    • 1
    • 2

    2、删除(生产中禁止使用)

    mysql> drop database ywx;
    #物理删除ywx库及库中的所有表
    
    • 1
    • 2

    3、修改

    SHOW CREATE DATABASE school;
    ALTER DATABASE school  CHARSET utf8;
    注意:修改字符集,修改后的字符集一定是原字符集的严格超集(修改后的字符集一定要包含原字符集)
    
    • 1
    • 2
    • 3

    4、查询库相关信息(DQL

    show databases;#查看所有库名
    show create database ywx; #查看创建ywx库的创建语句
    
    • 1
    • 2

    二、表定义

    1、创建表格式

    create table stu(
    列1  属性(数据类型、约束、其他属性) ,
    列2  属性,
    列3  属性
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2、创建表

    USE school;  #进入school数据库
    CREATE TABLE stu(    #创建列及其属性信息
    id      INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号',
    sname   VARCHAR(255) NOT NULL COMMENT '姓名',
    sage    TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄',
    sgender ENUM('m','f','n') NOT NULL DEFAULT 'n' COMMENT '性别' ,
    sfz     CHAR(18) NOT NULL UNIQUE  COMMENT '身份证',
    intime  TIMESTAMP NOT NULL DEFAULT NOW() COMMENT '入学时间'
    ) ENGINE=INNODB CHARSET=utf8 COMMENT '学生表';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    建表规范:

    1. 表名小写
    2. 不能是数字开头
    3. 注意字符集和存储引擎
    4. 表名和业务有关
    5. 选择合适的数据类型
    6. 每个列都要有注释
    7. 每个列设置为非空,无法保证非空,用0来填充。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3、删除表(生产中禁用命令)

    drop table t1;
    物理删除t1表的所有信息
    
    • 1
    • 2

    4、修改

    4.1添加列

    在stu表中添加qq列

    DESC stu;
    ALTER TABLE stu ADD qq VARCHAR(20) NOT NULL UNIQUE COMMENT 'qq号';
    
    • 1
    • 2

    在sname后加微信列

    ALTER TABLE stu ADD wechat VARCHAR(64) NOT NULL UNIQUE  COMMENT '微信号' AFTER sname ;
    
    • 1

    在id列前加一个新列num

    ALTER TABLE stu ADD num INT NOT NULL COMMENT '数字' FIRST;
    DESC stu;
    
    • 1
    • 2
    4.2删除列

    把刚才添加的列都删掉(危险)

    ALTER TABLE stu DROP num;
    ALTER TABLE stu DROP qq;
    ALTER TABLE stu DROP wechat;
    
    • 1
    • 2
    • 3
    4.3修改列的属性

    修改sname数据类型的属性

    ALTER TABLE stu MODIFY sname VARCHAR(128)  NOT NULL ;
    
    • 1

    将sgender 改为 sg 数据类型改为 CHAR 类型

    ALTER TABLE stu CHANGE sgender sg CHAR(1) NOT NULL DEFAULT 'n' ;
    DESC stu;#change可以更改列的名称,也可以更改列的属性;modify只能更改列的属性。
    
    • 1
    • 2
  • 相关阅读:
    深入解析ASP.NET Core MVC的模块化设计[下篇]
    手写RPC框架--4.服务注册
    mybatis快速搭建入门
    vue3使用router.push()页面跳转后,该页面不刷新问题
    kubeadm部署k8sv1.24使用cri-docker做为CRI
    负载均衡策略 LVS
    [附源码]Python计算机毕业设计高校辅导员工作管理系统
    ubuntu18.04系统android studio 搜索文本快捷键不出来的解决办法
    【Docker教程系列】Docker学习5-Docker镜像理解
    docker系统笔记-03镜像的创建管理和发布
  • 原文地址:https://blog.csdn.net/qq_33360240/article/details/127855027