码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 4.四大类(DDL、DML、DQL、DCL)


    文章目录

    • 4.四大类(DDL、DML、DQL、DCL)
      • 4.1 DDL(数据定义语言)
        • 数据库操作
        • 查询表操作
        • 创建表操作
        • 修改表中字段
        • 删除表中字段
        • 删除表
      • 4.2 DML(数据操作语言)
        • 插入数据
        • 修改数据
        • 删除数据
      • 4.3 DQL(数据查询语言)
        • 基本查询
        • 设置别名
        • 去除重复记录
        • 条件查询
        • 聚合查询
        • 分组查询
        • 排序查询
        • 分页查询
        • 执行顺序
      • 4.4 DCL(数据控制语言)
        • 用户管理
        • 权限控制

    4.四大类(DDL、DML、DQL、DCL)

    4.1 DDL(数据定义语言)

    注意:[…]为可选。

    数据库操作

    #查询所有数据库
    show databases;
    
    #查询当前数据库
    select database();
    
    #创建数据库
    create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];
    
    #删除数据库
    drop database [if exists] 数据库名;
    
    #使用数据库
    use 数据库名;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    查询表操作

    #查询当前数据库所有表
    show tables;
    
    #查询表结构
    desc 表名;
    
    #查询指定表的建表语句
    show create table 表名;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    创建表操作

    #创建表
    create table 表名(
    	字段1 字段1类型[comment 字段1注释],
        字段2 字段2类型[comment 字段3注释],
        字段3 字段3类型[comment 字段3注释]
    )[comment 表注释];
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    修改表中字段

    #添加字段
    alter table 表名 add 字段名 类型(长度)[comment 注释][约束];
    
    • 1
    • 2

    删除表中字段

    #删除表字段
    alter table 表名 drop 字段名;
    
    • 1
    • 2

    删除表

    #删除表
    drop table[if exists] 表名;
    
    #删除指定表,并重新创建该表
    truncate table 表名;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.2 DML(数据操作语言)

    插入数据

    #给指定字段添加数据
    insert into 表名(字段名1,字段名2)
    values
    (值1,值2);
    
    • 1
    • 2
    • 3
    • 4

    修改数据

    #修改数据
    update 表名 
    set 字段名1 = 值1,字段名2 = 值2 
    [where 条件];
    
    • 1
    • 2
    • 3
    • 4

    删除数据

    #删除数据
    delete 
    from 表名 
    [where 条件];
    
    • 1
    • 2
    • 3
    • 4

    4.3 DQL(数据查询语言)

    基本查询

    #查询多个字段
    select 字段1,字段2,字段3 
    from 表名;
    
    #查询全部字段
    select * 
    from 表名;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    设置别名

    #设置别名
    select 字段1 as "别名1",字段2 as "别名2" 
    from 表名;
    
    • 1
    • 2
    • 3

    去除重复记录

    select distinct 字段列表 
    from 表名;
    
    • 1
    • 2

    条件查询

    #按条件查询
    select 字段列表 
    from 表名 
    where 条件列表;
    
    • 1
    • 2
    • 3
    • 4

    聚合查询

    1.介绍:将一列数据作为一个整体,进行纵向计算。

    函数功能
    count统计数量
    max最大值
    min最小值
    avg平均值
    sum求和
    #求员工表中的平均年龄
    select avg(emy_age)
    from tb_emy
    
    • 1
    • 2
    • 3

    分组查询

    #语法
    select 字段列表 
    from 表名 
    [where 条件] 
    group by 分组字段名 
    [having 分组后的过滤条件];
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    #查询员工表中不同部门的人数
    select dept_id,count(*)
    from tb_emy
    group by dept_id
    
    • 1
    • 2
    • 3
    • 4

    where 与 having区别:

    ①执行时机不同:where是封装之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。

    ②判断条件不同:where不能对聚合函数进行判断,而having可以。

    排序查询

    #语法
    select 字段列表 
    from 表名 
    order by 字段1 排序方式1,字段2 排序方式2;
    
    • 1
    • 2
    • 3
    • 4
    #查询员工表中员工工资并按年龄降序排序
    select emy_name,emy_age,emy_money
    from tb_emy
    order by emy_age desc
    
    • 1
    • 2
    • 3
    • 4

    排序方式

    ①ASC:升序(默认)

    ②DESC:降序

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

    分页查询

    #语法
    select 字段列表
    from 表名
    limit 起始索引,查询记录数;
    
    • 1
    • 2
    • 3
    • 4
    # 查询第一页员工信息,每页有两条
    select * 
    from tb_emy
    limit 0,2;
    # 查询第二页员工信息,每页有两条
    select * 
    from tb_emy
    limit 2,2;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    ①起始索引式从0开始,起始索引 = (查询页码 - 1) * 每页显示记录数。

    ②分页查询是数据库的方言,不同的数据库有不同的实现,MySql是limit。

    ③如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。

    执行顺序

    在这里插入图片描述

    4.4 DCL(数据控制语言)

    用户管理

    #查询用户
    user mysql;
    select * from user;
    
    #创建用户
    create user '用户名'@'主机名' identified by '密码';
    
    #修改用户密码
    alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
    
    #删除用户
    drop user '用户名'@'主机名';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    权限控制

    #查询权限
    show grants for '用户名'@'主机名';
    
    #授予权限
    grant 权限列表 on 数据库.表名 to '用户名'@'主机名';
    
    #撤销权限
    revoke 权限列表 on 数据库.表名 from '用户名'@'主机名';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    ​

  • 相关阅读:
    SL1588A 18V转3.3V、5V、12V/ 2A同步降压稳压器
    VCS(DVE)仿真波形的存储和打开.vpd
    计算机毕业设计Java的电影社区网站(源码+系统+mysql数据库+lw文档)
    【论文辅导】新手如何从零开始发表CV论文,有三AI一对一辅导计划出炉!
    分享 2022 年最受欢迎的黑科技工具(二)
    面向Web开发人员的Linux实用入门
    使用maven打包项目时报错:[INFO] Using ‘UTF-8‘ encoding to copy filtered resources.
    【Mybatis小白从0到90%精讲】12:Mybatis删除 delete, 推荐使用主键删除!
    UnityAI——排队过窄洞
    【C语法学习】25 - strncpy()函数
  • 原文地址:https://blog.csdn.net/m0_59376721/article/details/126459781
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号