MySQL基础命令(库、表、数据、用户及权限的增删查改)

DDL(数据库、表结构、表字段)

数据库操作

查询
SHOW DATABASES; 查询所有数据库
SELECT DATABASE(); 查询当前数据库

创建
CREATE DATABASE 表名; 创建数据库

CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则] IF NOT EXISTS 如果数据库不存在则创建,存在则取消本次操作(可选) 字符集:UTF-8这类字符编码

删除
DROP DATABASE 表名; 删除数据库

DROP DATABASE [IF EXISTS] 数据库名

使用
USE 数据库名; 使用数据库

表操作

查询
SHOW TABLES; 查询当前数据库所有表
DESC 表名; 查询表结构
SHOW CREATE TABLE 表名; 查询指定表建表语句

创建
CREATE TABLE 建表;

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

字段2 字段2类型 [COMMENT 字段2注释],

字段3 字段3类型 [COMMENT 字段3注释],

......

字段n 字段n类型 [COMMENT 字段n注释]

)[COMMENT 表注释];

修改
ADD 添加字段

ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];

CHANGE修改字段名和字段类型

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

RENAME修改表名

ALTER TABLE 表名 RENAME TO 新表名;

删除
DROP 删除字段

ALTER TABLE 表名 DROP 字段名;

DROP 删除表

DROP TABLE [IF EXISTS] 表名; 删除表 TRUNCATE TABLE 表名; 删除后重新创建该表(相当于删除了表内数据,但保留表)

DML(数据的增删改)

PS:

字符串与日期类型数据应包含在引号中。

添加(INSERT)

指定字段添加数据

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, ...), VALUES(值1, 值2, ...), VALUES(值1, 值2, ...);

修改(UPDATE)

UPDATE 表名 SET 字段1=值1, 字段2=值2, ...[WHERE 条件]; 不加WHERE的话会更新表内所有的记录的字段。

删除(DELETE)

DELETE FROM 表名 [WHERE 条件] 删除对应记录,不加WHERE则删除所有记录。

DQL(数据的查询)

DQL语法(全):

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

执行顺序:

FROM > WHERE > GROUP BY > 聚合函数 > HAVING > SELECT > ORDER BY > LIMIT

基本查询(SELECT):

查询多个字段:

SELECT 字段1,字段2,字段3... FROM 表名; 查询多个字段信息 SELECT * FROM 表名; 查询该表内所有数据

设置别名:

SELECT 字段1 [AS 别名1], 字段2 [AS 别名2] ... FROM 表名; 在返回的结果中,字段名会替换为别名。 AS可以省略。

去除重复记录:

SELECT DISTINCT 字段列表 FROM 表名;

条件查询(WHERE):

SELECT 字段 FROM 表名 WHERE 条件;

条件(我不熟的):

BETWEEN ... AND ... 在某个范围(小的在前)之内(双闭)

WHERE id BETWEEN 20 AND 25;

IN(...) 在in之后的列表中的值,多选一

WHERE id IN (1, 5, 7);

LIKE 占位符

模糊匹配(‘_’匹配单个字符, ‘%’匹配任意个字符, 此外可以添加别的字符,是一一对应的) WHERE name LIKE '__';

IS NULL 是NULL

WHERE name IS NULL;

AND 或 && 并且(多个条件同时成立)
OR 或 || 或者(多个条件任意一个成立)
NOT 或 ! 非,不是

聚合函数(count......)

介绍:

将一列数据作为一个整体,进行纵向计算。 null 不参与计算。 对于一组数据只返回一个值。 多组数据多个值。

常见聚合函数:
count 统计数量
max 最大值
min 最小值
avg 平均值
sum 求和

语法:

SELECT COUNT(*) FROM 表名; 该表的总的数据量;

SELECT COUNT(字段) FROM 表名; 统计该字段不为空的数量;

SELECT avg(age) FROM 表名 WHERE 字段=值; 统计字段为值的平均年龄;

分组查询(GROUP BY)

SELECT 字段 FROM 表名 [WHERE 条件] GROUP BY 字段 [HAVING 分组后过滤条件] 此处的HAVINGWHERE都是同一作用,筛选结果,先由WHERE筛选,在对结果进行分组,最后再对每组的结果用HAVING过滤。WHERE是不能对聚合函数进行判断的,但是HAVING可以。

分组后可以看成所有的字段对应的值会被模糊化,聚合入一组中,而HAVING可以通过聚合函数得到其对应的值进行过滤。

排序查询(ORDER BY)

SELECT 字段 FROM 表名 ORDER BY 字段1 排序方式1 字段2 排序方式 2;

ORDER BY写在最后面 排序方式只有两种: 升序 : ASC(默认) 降序 : DESC

先按第一字段排序,若系统则按第二字段排序。

分页查询(LIMIT)

SELECT 字段 FROM 表名 LIMIT 起始索引, 查询记录数; 起始索引就是从第几条开始返回,从0开始,查询记录数则是每页数据量。 若是第一条开始,索引可省略不写。 起始索引为10,则说明从第11条取到第20条。

PS: 其是数据库方言,LIMIT为MySQL数据库的。

DCL(管理用户与数据库访问权限)

用户管理

查询用户

USE mysql; SELECT * FROM user;

用户都存在mysql库的user表中。

%代表所有,如果主机名用%替换,则其代表该用户可在任意主机

创建用户

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

修改用户密码

ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

删除用户

DROP USER '用户名'@'主机名';

权限控制

用户创建后需要分配权限,需要添加权限。

这里可以用*来代表所有数据库或者表。

权限:

ALL, ALL PRIVILEGES 所有权限 SELECT 查询数据 INSERT 插入数据 UPDATE 修改数据 DELETE 删除数据 ALTER 修改表 DROP 删除数据库/表/视图 CREATE 创建数据库/表

查询权限:

SHOW GRANTS FOR '用户名'@'主机名'

授予权限:

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

撤销权限:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值