数据库操作--sql语句

数据库操作

允许远程登录

grant all privileges on . to root@‘%’ identified by ‘密码’ WITH GRANT OPTION

DDL–数据库操作

DDL-查询

查询所有数据库

SHOW DATABASES;

查询当前数据库

SELECT DATABASE();

创建数据库

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

删除数据库

DROP DATABASE [IF EXISTS] 数据库名;

使用数据库

USE 数据库名;

查询当前数据库所有表

SHOW TABLES;

查询表结构

DESC 表名;

查询指定的建表语句

SHOW CREATE TABLE 表名
DDL-表操作-创建

创建数据库表

DDL-表操作-修改

添加字段

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

修改数据类型

ALTER TABLE 表名 MODITY 字段名 新数据类型(长度);

修改字段名和字段类型

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

修改字段位置

将字段1修改至字段2后面

ALTER TABLE 表名 CHANGE 字段名1 字段名1 VARCHAR(50) AFTER 字段名2

删除字段

ALTER TABLE 表名 DROP 字段名;

修改表名

ALTER TABLE 表名 RENAME TO 新表名;

删除表

DROP TABLE [IF EXISTS] 表名;

DML-数据操作语言

DML-添加数据

1.给指定字段添加数据

INSERT INTO 表名 (字段名1,字段名2,...) VALUES(值1,值2,...);

2.给全部字段添加数据

INSERT INTO 表名  VALUES(值1,值2,...);

3.批量添加数据

INSERT INTO 表名 (字段名1,字段名2,...) VALUES(值1,值2,...),值1,值2,...),值1,值2,...);
INSERT INTO 表名 VALUES(值1,值2,...),值1,值2,...),值1,值2,...);
DML-修改数据
UPDATE 表名 SET 字段名1=值1,字段名2=值2 [WHERE 条件];

where 条件不写则是修改整张表

DML-删除数据
DELETE FROM 表名 [WHERE 条件]

注意:

  • DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
  • DELETE语句不能删除某一个字段的值(可以使用UPDATE)。

DQL-数据查询语言

DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。

DQL-语法

在这里插入图片描述

DQL-基本查询

1.查询多个字段

select 字段1,字段2,字段3... from 表名;
select * from 表名;

2.设置别名

select 字段1 [as 别名1],字段2 [as 别名2]... from 表名;

3.去除重复记录

select distinct 字段列表 from 表名;
DQL-条件查询

1.语法

select 字段列表 from 表名 where 条件列表;

2.条件

在这里插入图片描述

DQL-聚合函数

1.介绍

将一列数据作为一个整体,进行纵向计算

2.常见聚合函数
在这里插入图片描述
3.语法

select 聚合函数(字段列表) from 表名;
DQL-分组查询

1.语法

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];

where与having区别

  • 执行时机不同: where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
  • 判断条件不同: where不能对聚合函数进行判断,而having可以。

注意

执行顺序:where > 聚合函数 > having 。

分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
在这里插入图片描述

DQL-排序查询

1.语法

select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;

2.排序方式

  • ASC :升序(默认值)
  • DESC:降序

注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。

DQL-分页查询

1.语法

select 字段列表 from 表名 LIMIT 起始索引,查询记录数;

注意

  • 起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数。
  • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
  • 如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。
DQL-执行顺序

在这里插入图片描述

DCL-数据控制语言

DCL-介绍

DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。

DCL-管理员用户

1.查询用户

USE mysql;
SELECT * FROM user;

2.创建用户

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

3.修改用户密码

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

4.删除用户

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

注意:

  • 主机名可以使用%通配。
  • 这类SQL开发人员操作的比较少,主要是DBA ( Database Administrator数据库管理员)使用。
DCL-权限控制

1.查询权限

show grants for '用户名'@'主机名';

2.授予权限

gant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

3.撤销权限

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

注意:

  • 多个权限之间,使用逗号分隔
    P USER ‘用户名’@‘主机名’;

注意:

- 主机名可以使用%通配。
- 这类SQL开发人员操作的比较少,主要是DBA ( Database Administrator数据库管理员)使用。

##### DCL-权限控制

1.查询权限

show grants for ‘用户名’@‘主机名’;


2.授予权限

gant 权限列表 on 数据库名.表名 to ‘用户名’@‘主机名’;


3.撤销权限

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


注意:

- 多个权限之间,使用逗号分隔
- 授权时,数据库名和表名可以使用*进行通配,代表所有

猜你喜欢

转载自blog.csdn.net/weixin_62107875/article/details/127472034