目录
1、 DDL 数据定义语言(DBA与开发人员用来创建数据库、数据表):
2、 DML 数据操作语言(DBA与开发人员用来操作数据库。与oracle基本相通):
1、 DDL 数据定义语言(DBA与开发人员用来创建数据库、数据表):
-- 库相关
SHOW DATABASES; -- 查看系统中存在的数据库
CREATE DATABASE database_name; -- 创建数据库
USE database_name ; -- 使用指定数据库(执行各种命令时,要先进入指定数据库)
DROP DATABASE database_name ; -- 删除指定数据库
-- 表相关
SHOW tables ; -- 查看所使用的数据库的所有表
CREATE TABLE table_name(column_name_1 column_type1 constraints, column_name_2 ...)
SHOW CREATE table table_name; -- 你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):
DESC table_name; -- 查看表的定义
DROP TABLE table_name; -- 删除表
ALTER TABLE table_name RENAME[TO] new_table_name ; -- 修改表名
例:
CREATE TABLE `a` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`column_1` varchar(201) DEFAULT NULL,
`column_2` varchar(201) NOT NULL,
`column_3` int(20) NOT NULL,
`column_4` int(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='测试a表'
-- 列相关
ALTER TABLE table_name MODIFY [COLUMN] column_name column_definition [FIRST|AFTER column_name]; -- 修改列的定义
ALTER TABLE table_name DROP [COLUMN] column_name ; -- 删除列
ALTER TABLE table_name CHANGE [COLUMN] old_name new_name column_definition [FIRST|AFTER column_name]; -- 修改列名
ALTER TABLE table_name
ADD [COLUMN] column_name column_definition [FIRST|AFTER column_name];
-- 添加列
-- column_definition 为列的定义,格式:
{INT|BIGINT|VARCHAR(255)|datetime|..} [PRIMARY KEY [auto_increment]][NOT NULL]
-- [FIRST|AFTER column_name] 用于定义修改列之后的排序[第一个| 在column_name列的后面]
例:
ALTER TABLE a ADD COLUMN id BIGINT PRIMARY KEY auto_increment NOT NULL FIRST;
ALTER TABLE a
ADD COLUMN user_name VARCHAR(30) NOT NULL AFTER id;
-- 索引
ALTER TABLE table_name ADD UNIQUE INDEX idx__name (`name`); -- 添加唯一索引
ALTER TABLE table_name ADD INDEX idx__name (`name`); -- 添加普通索引
ALTER TABLE table_name DROP INDEX idx__name ; -- 删除索引
ALTER TABLE table_name ADD PRIMARY KEY (ID); -- 设置主键
ALTER TABLE table_name DROP PRIMARY KEY ; -- 删除主键
-- 约束(外键)
ALTER TABLE from_table_name
ADD CONSTRAINT constraint_name
FOREIGN KEY (ft_column_name)
REFERENCES main_table_name(mt_column_name)
[ON
[DELETE|UPDATE]
[RESTRICT|CASCADE|NO ACTION|SET NULL]
]
[ON ...]
/*
修改表 从表名称
添加 约束 约束名称
外键 从表列名 参考 主表名(列名)
[当
[删除|更新] 时
[约束|关联|无动作|置为NULL]
]
[当..]
*/
2、 DML 数据操作语言(DBA与开发人员用来操作数据库。与oracle基本相通):
https://blog.youkuaiyun.com/Bof_jangle/article/details/51050396
Oracle是自动启用事务的。MySQL需要提前进行申明。
-- 开始事务
START TRANSACTION ;
-- 进行删除等操作
DELETE FROM table_name WHERE id = ...;
INSERT INTO table_name VALUES (...);
INSERT INTO table_name (...) VALUES (...);
UPDATE table_name SET column_name = ... WHERE ...;
-- 提交事务
COMMIT;
-- 回滚事务
ROLLBACK;
3、 DCL 数据控制语言(DBA用于用户、权限的管理):
GRANT [SELECT|INSERT|DELETE|UPDATE]
ON database_name.*
TO 'user_name'@'localhost' IDENTIFIED BY 'password';
-- 创建并授权用户
REVOKE [SELECT|INSERT|DELETE|UPDATE]
ON database_name.*
FROM 'user_name'@'localhost';
-- 收回权限
拓展:
-- 数据库系统相关
show engines; -- 看你的mysql现在已提供什么存储引擎
show variables like '%storage_engine%'; -- 看你的mysql当前默认的存储引擎: