MySQL小结

1. MySQL操作语言分类

  • DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;

  • DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);

  • DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;

  • DQL(Data Query Language):数据查询语言,用来查询记录(数据)。

DDL

什么是DDL:
DDL是数据定义语言(Data Definition Language)的缩写。

数据定义语言是用于定义数据库结构和模式的语言。它包括创建、修改和删除数据库对象(如表、视图、索引等)的命令。常见的DDL命令包括CREATE、ALTER和DROP等。

例如,使用DDL命令CREATE TABLE可以创建一个新的数据库表,使用ALTER TABLE可以修改现有的数据库表结构,使用DROP TABLE可以删除数据库表。

需要注意的是,DDL命令对数据库结构进行操作,而不是对数据库中的数据进行操作。如果要对数据库中的数据进行操作,需要使用数据操作语言(DML)命令,如SELECT、INSERT、UPDATE和DELETE等。

下面给出一些DDL功能实现的具体例子:

  1. 创建表(CREATE TABLE):
   CREATE TABLE Students ( 
     ID INT PRIMARY KEY, 
     Name VARCHAR(50), 
     Age INT 
   ); 
  1. 修改表结构(ALTER TABLE):
   ALTER TABLE Students 
   ADD COLUMN Grade VARCHAR(10); 
  1. 删除表(DROP TABLE):
   DROP TABLE Students; 
  1. 创建视图(CREATE VIEW):
   CREATE VIEW StudentDetails AS 
   SELECT ID, Name, Age, Grade 
   FROM Students 
   WHERE Age >= 18; 

这些是一些常见的DDL功能的具体例子。通过使用DDL命令,您可以创建、修改和删除数据库对象,以及定义数据库的结构和模式。

DML

DML是数据库操作语言(Data Manipulation Language)的缩写。

DML是一种用于操作数据库中数据的语言。它提供了各种命令和操作,用于插入、更新、删除和查询数据库中的数据。常见的DML命令包括INSERT、UPDATE、DELETE和SELECT。

  • INSERT用于向数据库中插入新的数据记录。
  • UPDATE用于更新数据库中现有的数据记录。
  • DELETE用于从数据库中删除数据记录。
  • SELECT用于查询数据库中的数据记录。

通过使用DML语言,可以对数据库中的数据进行增加、修改和删除操作,以满足应用程序的需求。

下面是一些DML功能实现的具体例子:

  1. 插入数据:
    使用INSERT语句将新的数据行插入到数据库表中,例如:
   INSERT INTO 表名 (1,2,3) VALUES (1,2,3);
  1. 更新数据:
    使用UPDATE语句更新数据库表中的现有数据行,例如:
UPDATE 表名 SET1 =1,2 =2 WHERE 条件;
  1. 删除数据:
    使用DELETE语句从数据库表中删除数据行,例如:
DELETE FROM 表名 WHERE 条件;   
  1. 查询数据:
    使用SELECT语句从数据库表中检索数据行,例如:
SELECT1,2,3 FROM 表名 WHERE 条件;

DCL

什么是DCL:
DCL代表数据控制语言(Data Control Language)。它是一种用于管理数据库访问权限和安全性的语言。DCL包含了用于授予或撤销用户访问数据库对象的权限的命令。

常见的DCL命令包括:

  1. GRANT:用于授予用户或用户组对数据库对象的特定权限,例如SELECT、INSERT、UPDATE、DELETE等。

  2. REVOKE:用于撤销用户或用户组对数据库对象的特定权限。

通过使用DCL命令,数据库管理员可以管理用户对数据库的访问权限,确保数据的安全性和完整性。

下面是DCL运用的实例:

  1. 授予用户对表的查询权限:
GRANT SELECT ON table_name TO user_name;
  1. 授予用户对表的插入、更新和删除权限:
GRANT INSERT, UPDATE, DELETE ON table_name TO user_name;
  1. 撤销用户对表的所有权限:
REVOKE ALL PRIVILEGES ON table_name FROM user_name;
  1. 创建用户并为其分配登录权限:
CREATE USER user_name IDENTIFIED BY 'password';
   GRANT CONNECT TO user_name;
  1. 创建用户组并将用户添加到组中:
CREATE ROLE role_name;
   GRANT role_name TO user_name;
  1. 授予用户对数据库的所有权限:
GRANT ALL PRIVILEGES ON database_name.* TO user_name;
  1. 撤销用户对数据库的特定权限:
REVOKE SELECT, INSERT ON table_name FROM user_name;

DQL

DQL是数据库查询语言(Database Query Language)的缩写。它是一种用于从数据库中检索数据的语言。DQL主要用于执行查询操作,例如从数据库表中选择特定的数据行或列,以及使用条件和排序来过滤和排序数据。

常见的DQL语言包括结构化查询语言(SQL),它是最常用的数据库查询语言。通过使用SQL,可以执行各种查询操作,如SELECT语句来检索数据,以及JOIN语句来合并多个表中的数据。

DQL的目的是提供一种简单、灵活和强大的方式来检索数据库中的数据,以便满足特定的需求。它是数据库管理系统中的重要组成部分,用于支持数据的查询和分析。

下面是DQL运用的实例:

  1. 查询所有数据:使用SELECT语句可以检索表中的所有数据。
SELECT * FROM 表名;
  1. 条件查询:使用WHERE子句可以根据特定条件过滤数据。
SELECT * FROM 表名 WHERE 条件;
  1. 排序查询:使用ORDER BY子句可以按照特定的列对数据进行排序。
SELECT * FROM 表名 ORDER BY 列名 ASC/DESC;

注意:其中DESC表示降序排列, ASC表示升序,所有的排列默认是ASC

4.连接查询:
连接查询是一种使用SQL语句合并多个表中的数据的查询操作。它通过在查询中指定表之间的关联条件,将具有相同关联值的行连接起来。连接查询通常使用JOIN子句来实现。

连接查询又能分为:

  1. 内连接(INNER JOIN):返回两个表中匹配的行。
SELECT 列名 FROM1 INNER JOIN2 ON1.=2.;

注意:
对于内连接来说 它连接的两张表 只要有一张表的所有数据为空,那么查询结构 就不会显示出

  1. 左连接(LEFT JOIN):返回左表中的所有行,以及与右表匹配的行(将左边的表设为主表,右边的表为副表)。
SELECT 列名 FROM1 LEFT JOIN2 ON1.=2.;
  1. 右连接(RIGHT JOIN):返回右表中的所有行,以及与左表匹配的行(将右边的表设为主表,左边的表设为副表)。
SELECT 列名 FROM1 RIGHT JOIN2 ON1.=2.;

这些连接查询的实例可以根据具体的表和关联条件进行调整。连接查询可以帮助我们从多个表中获取相关数据,以满足复杂的查询需求。

注意·:对于内连接来说 它连接的两张表 只要有一张表的所有数据为空,那么查询结构 就不会显示出
对于外连接来说 它连接的两张表 有一张为空,那么查询的结果就会为空

  1. 聚合函数查询:使用聚合函数可以对数据进行统计计算,如求和、平均值、最大值等。

当需要对数据库中的数据进行汇总、计算或统计时,可以使用聚合函数查询。以下是一些聚合函数查询的实例:

  1. 求和(SUM):计算某列的总和。
SELECT SUM(列名) FROM 表名;
  1. 平均值(AVG):计算某列的平均值。
SELECT AVG(列名) FROM 表名;
  1. 计数(COUNT):统计某列的行数。
SELECT COUNT(列名) FROM 表名;
  1. 最大值(MAX):找出某列的最大值。
SELECT MAX(列名) FROM 表名;
  1. 最小值(MIN):找出某列的最小值。
6. SELECT MIN(列名) FROM 表名;
  1. 分组查询:使用GROUP BY子句可以按照特定的列对数据进行分组。

分组查询是在数据库中根据指定的列或表达式对数据进行分组,并对每个分组进行聚合计算。以下是一些分组查询的实例运用:

  1. 按照某一列进行分组并计算每组的数量:
SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名;
  1. 按照某一列进行分组并计算每组的总和:
SELECT 列名, SUM(另一列名) FROM 表名 GROUP BY 列名; 
  1. 按照多个列进行分组并计算每组的平均值:
SELECT1,2, AVG(另一列) FROM 表名 GROUP BY1,2;
  1. 按照日期或时间进行分组并计算每天或每小时的数量:
SELECT DATE(日期列), COUNT(*) FROM 表名 GROUP BY DATE(日期列);
  1. 按照条件进行分组并计算满足条件的数量:、
SELECT 列名, COUNT(*) FROM 表名 WHERE 条件 GROUP BY 列名;
  • 33
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值