【MySQL篇】SQL语句

本文介绍了SQL语句在数据库操作中的重要性,特别是对于JAVA后端工程师而言。文章详细讲解了SQL的四大类别——DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)和DCL(数据控制语言),包括创建和管理数据库、表的操作、数据的增删改查、查询语法以及用户管理和权限控制。通过这些基础知识,开发者可以更好地理解和操作关系型数据库。
摘要由CSDN通过智能技术生成

数据库的重中之重就是操作数据,操作数据使用的就是SQL语句,也就是操作所有关系型数据库的编程语言,也是大数据工程师每天都需要重复书写的代码,所以这个部分非常重要。笔者为JAVA后端工程师,也需要获取数据、处理数据、渲染数据给前端工程师进行展示。


前言

如有错误,请xdm指正。

1.通用SQL语法

  • 一条SQL语句可以是单行也可以是多行,以分号结尾
  • SQL语句可以使用空格/缩进来增强语句的可读性
  • MySQL的SQL语句不区分大小写,关键字建议使用大写
  • 注释
    • 单行注释:-- 或 #
    • 多行注释:/* … */

2.SQL的分类

  • DDL(数据定义语言):用来定义数据库对象(数据库、表、字段)

  • DML(数据操作语言):对表中的数据进行增删改

  • DQL(数据查询语言):对表中的数据进行查询

  • DCL(数据控制语言):创建数据库用户、控制访问权限

3.DDL

a>数据库的操作

  1. 创建数据库)
    create database [if not exists] 数据库名 [DEFAULT CHARSET 字符集][COLLATE 排序规则];

  2. 删除数据库)
    drop database [if exists] 数据库名;

  3. 使用指定数据库

    use 数据库名;

  4. 查询当前数据库管理系统所有数据库
    show databases;
    查询当前使用的数据库
    select database();

b>表的操作

  1. 创建表
    CREATE TABLE 表名(
    字段名 数据类型[comment 注释],
    。。。
    字段名 数据类型
    );
    []是可选的,最后一个字段的数据类型后面不要逗号

    • 删除表
      drop table[if exists] 表名;
    • 删除表,并创建(重置表)
      TRUNCATE TABLE 表名;
    • 删除字段
      ALTER TABLE 表名 DROP 字段名;
    • 添加字段
      ALTER TABLE 表名 ADD 新字段名 类型 [comment 注释][约束];
    • 修改数据类型
      ALTER TABLE 表名 MODIFY 字段名 新数据类型;
    • 修改字段名和数据类型
      ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 [comment 注释][约束];
    • 修改表名:
      ALTER TABLE 表名 RENAME TO 新表名
    • 查询当前数据库中的所有表
      show tables;
    • 查询表结构
      desc 表名;
    • 查询建表语句
      show create table 表名;

4.DML

a>增

  1. 给指定字段添加数据

    NSERT INTO 表名(字段列表)VALUES(值1,值2,…);

  2. 给所有字段添加数据

    • 可以省略字段列表

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

  3. 批量添加数据

b>删

DELETE FROM 表名[where 条件];
delete语句不能删除某个字段的值

c>改

UPDATE 表名 SET 字段名1 = 值1,字段名2 = 值2,…[where 条件];

5.DQL

a>基本查询

  • SELECT 字段列表 from 表名

b>条件查询

  • SELECT 字段列表 from 表名 where 条件列表
  • 条件列表可以使用比较运算符和逻辑运算符

c>聚合函数(结合分组使用)

统计:count
求最小值:min
求最大值:max
求平均值:avg
求和:sum
语法:
select 聚合函数(字段列表)FROM 表名;

d>分组查询

  • 语法
  • WHERE 和 HAVING区别
  1. 执行时机不同
    where在分组前执行,having在分组后执行
  2. 判断条件不同
    where不能对聚合函数进行判断,而having可以
  • 注意
    分组之后,查询的字段一般为分组字段和聚合函数,查询其他字段没有意义。

e>排序查询

  • 语法:
    SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;
  • 排序方式
    ASC:升序,默认
    DESC:降序
  • 注意:
    如果多字段排序,当第一种字段值相同时,才会按第二种字段排序

f>分页查询

g>书写顺序

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

h>执行顺序

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

6.DCL

  • 主机名可以使用%通配
  • 该类语言一般是数据库管理员使用

a>用户管理

  1. 增(创建用户)
    CREATE USER ‘用户名’@‘主机名’ IDENTIFIED BY ‘密码’;
  2. 删(删除用户)
    DROP USER ‘用户名’@‘主机名’;
  3. 改(修改用户信息)
    ALTER USER ‘用户名’@‘主机名’ IDENTIFED WITH mysql_native_password BY’新密码’;
  4. 查(查询用户信息)
    用户信息在user表中
    use mysql;
    SELECT * FROM USER;

b>权限控制

  • 常用权限
  1. ALL / ALL PRIVILEGES:所有权限
  2. SELECT:查询权限
  3. INSERT:添加权限
  4. DELETE:删除权限
  5. UPDATE:修改数据权限
  6. ALTER:修改表权限
  7. DROP:删除表/数据库权限
  8. CREATE:创建表/数据库权限
  • 语法:
  1. 授予权限
    SHOW GRANTS FOR ‘用户名’@‘主机名’;

  2. 撤销权限

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

  3. 查询权限

    SHOW GRANTS FOR ‘用户名’@‘主机名’;

  • 注意:

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小B学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值