DDL,DML,DQL,DCL

一、DDL-数据库操作

1.查询数据库

#查询所有数据库
SHOW DATABASES;

#查询当前数据库
SELECT DATABASE();

2.创建数据库

CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则]; 

3.删除数据库

DROP DATABASE [IF EXISTS] 数据库名;

4.使用数据库

USE 数据库名;

二、DDL-表操作

1.查询表

#查询当前数据库所有表
SHOW TABLES;

#查询表结构
DESC 表名;

#查询指定表的建表语句
SHOW CREATE TABLE 表名;

2.创建表

CREATE TABLE 表名(
     字段1 类型 [COMMENT 注释],
     字段2 类型 [COMMENT 注释],
     ...
     字段N 类型 [COMMENT 注释]
)[COMMENT 表注释]

3.修改表名

ALTER TABLE 表名 RENAME TO 新表名;

4.删除表

DROP TABLE [IF EXISTS] 表名;

#删除表并重新创建该表
TRUNCATE TABLE 表名;

5.修改字段

#修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);

#修改字段名和字段类型
ALTER TABLE CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];

6.删除字段

ALTER TABLE 表名 DROP 字段名;

三、DML-添加/修改/删除数据

1.添加数据

#单条数据
#指定字段
INSERT INTO 表名 (字段名1,字段名2,...) VALUES(值1,值2,...);
#全部字段
INSERT INTO 表名 VALUES(值1,值2,...);

#批量
#指定字段
INSERT INTO 表名 (字段名1,字段名2,...) VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...);
#全部字段
INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...);

2.修改数据

UPDATE 表名 SET 字段名1=值1,字段名2=值2,...[WHERE 条件]

3.删除数据

DELETE FROM 表名 [WHERE 条件]

四、DQL-查询数据

语法

SELECT   字段
FROM     表名
WHERE    条件
GROUP BY 分组字段
HAVING   分组后条件
ORDER BY 排序字段
LIMIT    分页参数

五、DCL-用户管理

用来管理数据库用户,控制数据库的访问权限。即控制哪些用户可以访问数据库和每一个用户的权限。

下面说的主机名是mysql.user表的Host字段,任意主机用%表示

管理用户

#1.查询用户
USE mysql;
SELECT * FROM `user`;

#2.创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

#3.修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

#4.删除用户
DROP USER '用户名'@'主机名';

权限控制

常用的权限如下几种:

权限 说明
ALL.ALL PRIVIEGES 所有权限
SELECT 查询数据
INSERT 插入数据
UPDATE 修改数据
DELETE 删除数据
ALTER 修改表
DROP 删除数据库/表/视图
CREATE 创建数据库/表
#1.查询权限
SHOW GRANTS FOR '用户名'@'主机名';

#2.授予权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名;'

#3.撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

权限列表即上表的权限,多个权限逗号分隔,如授予所有权限可以:
GRANT ALL ON ....

数据库名表名:
某数据库的所有表一>数据库名.*
所有数据库->*.*

 

posted @ 2024-03-09 22:07  lucsa  阅读(12)  评论(0编辑  收藏  举报