SQL客户端slient内置命令

db01 [world]>help

\c 类似于ctrl+c,结束上一条命令

\G 格式化输出,一般针对列特别多的场景使用

exit(\q) 退出当前会话

source 导入sql脚本,类似于<

system 调用linux中的命令,比如system cd /tmp && ls 调用linux中的命令

DDL库定义

DDL数据定义语言指对于库和表定义的创建删除修改

1.创建数据库

show databases; 查看所有数据库

create database school; 创建school数据库

create schema sch; 创建数据库sch

create database test charset utf8; 创建字符集为utf8的test数据库;

show charset; 查看数据库支持的所有字符集

show collation;看字符集支持的校队规则

create database xyz charset utf8mb4 collate utf8mb4_bin;创建字符集为utf8mb4且校队规则为大小写敏感的xyz数据库

show create database xyz; 查看xyz数据库详细信息

注:在MySQL中,Create Schema和Create Database的作用是一样的

建库规范

1.库名不能有大写字母,不能使用内置字符

2.建库要加字符集

3.库名不能有数字开头

4.库名要和业务相关

建库标准语句mysql> create database db charset utf8mb4;

mysql> show create database db;

2.删除数据库

drop database xyz;

(生产中禁用命令)

3.修改数据库

show create database school;查看school库的详细信息

alter database school charset utf8;修改school库的字符集

注意:修改字符集,修改后的字符集一定是原字符集的严格超集

4.查询数据库

show databases; 查看所有数据库

show create database school;查看school库的详细信息

DDL表定义

语法结构

create table stu(

列1 属性(数据类型、约束、其他属性) ,

列2 属性,

列3 属性

)

1.创建表

use school;

create table stu(

id int not null primary key auto_increment comment '学号',

name 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. 每个列设置为非空,无法保证非空,用0来填充。

8. 必须有主键

9. 每个列尽量设置not null

10.列名不要太长

2.删除表

drop table t1;

(生产中禁用命令)

3.表查询

use school 进入到school库

show tables; 显示school库下所有的表名

desc stu;显示school库的stu表的所有列信息

show create table stu;显示school库的stu表的建表语句

create table ceshi like stu;创建一个和stu表一样的ceshi表

desc ceshi;查看ceshi表

4.修改表

修改后的B表是原始表的严格超集。表名无法修改

alter table 表名 add (column) ... column可以省略

在stu表中添加qq列

show tables; 显示school库下所有的表名

desc stu;显示school库的stu表的所有列信息

alter table stu add qq varchar(20) not null unique comment 'qq号';

在name后加微信列

alter table stu add wechat varchar(64) not null unique comment '微信号' after name;

在id列前加一个新列num

alter table stu add num int not null comment '数字' first;

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

alter table stu drop num;

alter table stu drop qq;

alter table stu drop wechat;

修改name数据类型的属性

alter table stu modify name varchar(128) not null;

修改属性一定要把与原表列重叠的的属性都加上

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

alter table stu change sgender sg char(1) not null default 'n';

注意:modify只能改字段数据类型完整约束,不能改字段名,但是change可以。change修改的范围和力度要比modify 大。

修改数据类型,修改字段位置 ---用modify;修改名字 --就用change

线上DDL(alter)操作对于生产的影响

SQL审核平台:yearing,incception

扩展:MySQL元数据类似于linux的inode信息。

说明:在MySQL中,DDL语句在对表进行操作时,是要锁‘元数据表’的。此时所有修改类的命令无法正常运行,所以在是对于大表,业务繁忙的表,进行线上DDL操作时

,要谨慎,尽量避开业务繁忙期,否则会影响线上业务 。

在需要紧急上线情况下,可以使用pt-osc(pt-online-schema-change),gh-ost工具(在线DDL工具),减少锁表时间,对业务的影响。

mysql8.0以后已经整合了这个工具,可以不用pt工具。

DCL应用

grant all on *.* to root@'10.0.0.%' identified by '123'; 授权用户

show grants for root@'10.0.0.%';查看授权

revoke delete on app.* from app@'10.0.0.%';回收权限

mysql中数据定义和数据控制语言_MySQL的DDL数据定义语言和DCL数据控制语言相关推荐

  1. mysql中创建唯一索引的关键字_mysql中唯一索引的关键字是什么

    mysql中唯一索引的关键字是unique index.创建唯一索引可以避免数据出现重复.唯一索引可以有多个,但索引列的值必须唯一,索引列的值允许有空值.创建唯一索引可以使用关键字UNIQUE随表一同 ...

  2. mysql中值换行显示为乱码_MySQL数据移植中的乱码问题

    mysql移植含有中文的数据时,很容易出现乱码问题.很多是在从mysql4.x向mysql5.x移植的时候出现.mysql的缺省字符集是latin1,在使用mysql4.x的时候,很多人都是用的lat ...

  3. MySQL中引入存储引擎意义是_mysql学习九:存储引擎、存储过程和函数的引入

    存储引擎: 存储引擎是mysql特有的,共有7种,常用的有myisam.memory.innodb 查看表的存储引擎: show create table 表名; 修改表的存储引擎: alter ta ...

  4. mysql中gbk编码汉字和英文_MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题...

    MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数 ...

  5. mysql中游标能不能更新数据库_MySQL与MariaDB中游标的使用

    本文目录: 1.游标说明 2.使用游标 3.游标使用示例 1.游标说明 游标,有些地方也称为光标.它的作用是在一个结果集中逐条逐条地获取记录行并操作它们. 例如: 其中select是游标所操作的结果集 ...

  6. mysql中的存储过程是什么意思_mysql存储过程是什么

    mysql存储过程:首先操作数据库语言SQL语句在执行的时候需要要先编译:然后执行,而存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数来调用执 ...

  7. mysql中创建唯一索引的关键字_MySQL中创建唯一索引的关键字是_______ 。

    [判断题]判断零件键槽的尺寸标注是否正确.[图片] [单选题][图片] [单选题]读零件图,回答问题:1. C3表示倒角为( )度?2. C2表示倒角锥台高度为( )?[图片] [单选题]如图为套筒零 ...

  8. mysql 中存储引擎是什么意思_mysql常用的存储引擎是什么

    mysql常用的存储引擎是什么 发布时间:2020-12-02 09:35:04 来源:亿速云 阅读:62 作者:小新 这篇文章将为大家详细讲解有关mysql常用的存储引擎是什么,小编觉得挺实用的,因 ...

  9. mysql中if在oracle怎么用_MySql和Oracle的使用

    本文档是一个记录文档,会不定时更新使用过程中遇到的差异问题 本文档记录MySql和Oracle在使用中要注意的问题,也包括两者使用上的差异问题 字符串拼接函数 CONCAT MySql MySql的 ...

最新文章

  1. BPM实例分享:如何设置开窗高度与宽度?
  2. DataGridView 添加ComboBox
  3. 【C/C++】知识点
  4. openGauss Summit 2021云和恩墨分论坛即将开启
  5. python post与get的区别_Python Requests库 Get和Post的区别和Http常见状态码
  6. 删除元素值最大的结点
  7. 快速入门人工智能的方法,持续更新ing
  8. 十种深度学习算法要点及代码解析
  9. php防伪溯源x系统_区块链溯源防伪追溯系统开发解决方案
  10. JavaScript开发人员需了解的工具内容
  11. 学习爬虫的第三天 (bs4 \ urllib \ xlwt \ re 的练习爬取豆瓣top250保存成excel格式)
  12. 第六章 自然的数学化和分析化
  13. 移动前端开发需要注意的20个要点
  14. 在CentOS7上使用LXC管理容器
  15. 云桌面是什么-如何选择云桌面?
  16. 小尺寸 GPS 北斗 GNSS 全向内置天线方案 CA-G01 CrossAir贴片天线
  17. PHP 警告 Warning: Unknown: Input variables exceeded 1000. 解决方法
  18. python-面向对象的编程
  19. 发动机连杆产品配置管理PDM解决方案
  20. systemd、upstart和system V

热门文章

  1. 用计算机听音乐和看电影的ppt,五年级下册信息技术课件-第六课 用计算机听音乐和看电影 川教版 (共13张PPT)...
  2. RabbitMQ之五种消息模型
  3. linux Tcpdump 抓包 win大小异常
  4. [Swift]LeetCode478. 在圆内随机生成点 | Generate Random Point in a Circle
  5. Android编程知识点3-Intent
  6. [转]基于Storm的实时数据处理方案
  7. Android Root原理初探
  8. Appium 解决手势密码 (java篇)
  9. Yii2 behaviors中verbs access的一些理解
  10. Hadoop 在 windows 7 64位的配置(一)|非cygwin