DDL值得拥有,第一次接触还真香

378 阅读2分钟

前言

  • mysql你应该很熟悉了吧,作为多年开发者sql应该写的很6吧。DDL听说过吗,相信很多开发者对DDL这个专有名词会感到陌生。实际上就是我们平时sql的另一大阵营。下面我们来看看数据库的那些事

DDL

  • DDL (Data Definition Languages) : 数据定义语言,定义了数据库,表,列,索引等数据库对象。常用create、drop、alter

操作数据库

  • 创建数据库

    create database test;

  • 删除数据库

    drop database test;

  • 查看数据库

    show databases;

操作表

  • 创建表

    创建ename、hiredate、sale、deptno字段

    create table user_info(ename varchar(10),hiredate date,sale decimal(10,2),deptno int(2));

  • 查看表信息

    desc user_info;

  • 查看全面表定义语句

    show create table user_info;

  • 删除表

    drop table user_info;

  • 修改表

    • 修改列属性 alter table user_info modify column ename varchar(20);
    • 新增列 alter table user_info add column sex int(2);
    • 删除列 alter table user_info drop column sex;
    • 列改名 alter table user_info change ename username varchar(30);
    • 指定顺序添加列 alter table user_info add column birth date after username;
    • 添加多个字段 alter table user_info add column birth2 date,add column age int(1) after username;
    • 修改字段并至最前方 alter table user_info modify birth2 varchar(20) first;
    • 修改字段放在其后 alter table user_info modify birth2 varchar(20) after birth;
    • 改表名 ALTER TABLE tablename RENAME [TO] new_tablename alter table user_info rename user;

DML

  • DML是针对数据库表记录的。CURD。开发频繁使用的命令。

DCL

  • DCL主要是DBA用来管理系统中对象权限是使用。一般开发人员很少使用。
  • 创建一个数据库用户zxhtom1,具有对test1数据库中所有表select/insert权限 grant select,insert on test1.* to 'zxhtom'@'localhost' identified by '123456';
  • 回收zxhtom对test1数据库insert权限 revoke insert on test1.* from 'zxhtom'@'localhost';

mysql优化常用命令

查看表信息

show table status like 'tablename';

查看慢查询配置

show variables like '%query%';

设置相关属性

set globle slow_query_log=''; globle表示全局设置; session表示当前连接设置; 有些配置通过全局配置后需要重启才能生效