- 小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
前言
- 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表示当前连接设置; 有些配置通过全局配置后需要重启才能生效