📜  MySQL |常见的 MySQL 查询

📅  最后修改于: 2021-09-10 02:33:34             🧑  作者: Mango

MySQL服务器是一个开源的关系数据库管理系统,是对基于 Web 的应用程序的主要支持。数据库和相关表格是许多网站和应用程序的主要组成部分,因为数据是通过网络存储和交换的。甚至所有社交网站(主要是 Facebook、Twitter 和 Google)都依赖于为此目的而设计和优化的 MySQL 数据。由于所有这些原因,MySQL 服务器成为 Web 应用程序的默认选择。

MySQL服务器用于数据操作,如查询、排序、过滤、分组、修改和加入表。在学习常用查询之前,让我们先了解一下 MySQL 的一些优点。

MySQL的优点:

  • 快速和高性能的数据库。
  • 易于使用、维护和管理。
  • 易于使用并维护数据库的完整性。
  • 提供可扩展性、可用性和可靠性。
  • 低成本硬件。
  • MySQL 可以读取简单和复杂的查询和写入操作。
  • InnoDB 是默认且广泛使用的存储引擎。
  • 提供强大的索引支持。
  • 为安全连接提供 SSL 支持。
  • 提供强大的数据加密和准确性。
  • 提供跨平台兼容性。
  • 提供最少的代码重复。

查询可以理解为与数据库表交互以处理数据的命令。一些常用的 MySQL 查询、运算符和函数如下:

  1. 显示数据库

    这将显示服务器中所有现有数据库的信息。

    输出:

    注意:数据库‘information_schema’‘mysql’‘performance_schema’是MySQL服务器内部使用的系统数据库。 “测试”数据库用于安装期间提供的测试目的。

  2. 使用数据库名称
    database_name : 数据库名称
    这将数据库设置为 MySQL 服务器中的当前数据库。
    要显示设置的当前数据库名称,请使用语法
    SELECT DATABASE(); 
  3. 描述表名
    table_name :表名
    这描述了table_name与 Field、Type、Null、Key、Default、Extra 相关的列。
  4. 显示表
    这将显示所选数据库中的所有表作为信息。
  5. 显示创建表表名
    table_name :表名
    这显示了 MySQL 用于创建表的完整 CREATE TABLE 语句。
  6. 立即选择()
    MySQL 查询大多以 SELECT 语句开头。
    此查询显示当前日期和时间。

    输出 :

    2019-09-24 07:08:30 
  7. 选择 2 + 4;

    输出 :

    6 

    这将在没有任何表的情况下执行 SELECT 语句。
    SELECT 可用于执行表达式或评估内置函数。
    SELECT 也可用于多列或多列。

    例子 :

    SELECT 2+4, CURDATE(); 

    输出 :

  8. 注释
    评论有两种类型。多行注释或单行或行尾注释。
    /*  These are multi-line comments.  */ 
    #  This is single-line comment.
    -- This is also single-line comment.
  9. CREATE DATABASE database_name
    database_name : 数据库名称
    此语句创建一个新数据库。
  10. 删除数据库 database_name
    database_name : 数据库名称
    此语句删除数据库。
    注意:用户在删除数据库之前必须非常小心,因为它会丢失所有重要的
    存储在数据库中的信息。

  11. CREATE TABLE table_name(column1, column2, column3..)
    table_name :表名
    column1 :第一列的名称
    column2 :第二列的名称
    column3 :第三列的名称
    当开发人员开始构建应用程序时,他需要创建数据库表。
    此语句使用给定的列创建一个新表。

    例子 :

    CREATE TABLE  employee(
       'id' INTEGER  NOT NULL AUTO_INCREMENT,
       'name' VARCHAR(30) NOT NULL,
       'profile' VARCHAR(40) DEFAULT 'engineer',
       PRIMARY KEY ('id')
    )ENGINE = InnoDB; 

    注意:您将‘id’列作为 AUTO_INCREMENT 与主键约束,以确保每个 id 都是递增的值,避免重复。选择的存储引擎是“InnoDB”,允许外键约束和相关事务。

  12. 自动递增
    它用于为新行生成唯一标识字段。
  13. 删除表表名
    table_name :表名
    此语句删除提到的表。
  14. RENAME TABLE old_table_name 到 new_table_name
    old_table_name :上一个表的名称。
    new_table_name :新表的名称。
    此语句将表重命名为新名称。
  15. ALTER TABLE table_name ADD(column1, column2, column3..)
    table_name :现有表的名称。
    column1 :第一列的名称。
    column2 :第二列的名称。
    column3 :第三列的名称。
    此语句将列添加到现有表中。
  16. ALTER TABLE table_name DROP(column1)
    table_name :现有表的名称。
    column1 :第一列的名称。
    此语句从现有表中删除指定的列。
  17. INSERT INTO table_name (column1, column2, column3 . . ) VALUES(value1, value2, value3 . . )
    table_name :现有表的名称。
    column1 :第一列的名称。
    column2 :第二列的名称。
    column3 :第三列的名称。
    value1 :第一列的值。
    value2 :第二列的值。
    value3 :第三列的值。
    此语句将新记录插入具有指定值的表中。
  18. UPDATE table_name SET column1 = value1, column2 = value2, column3 = value3.. WHERE 条件
    table_name :表的名称。
    column1 :第一列的名称。
    column2 :第二列的名称。
    column3 :第三列的名称。
    value1 :第一列的值。
    value2 :第二列的值。
    value3 :第三列的值。
    条件:条件语句。
    此语句使用列的新给定值更新表中的记录。

    注意: MySQL 查询中的 WHERE 子句用于过滤特定条件的行。

  19. DELETE FROM table_name WHERE 条件
    table_name :表的名称。
    条件:条件语句。
    此语句从表中删除记录。
  20. SELECT column1, column2, column3.. FROM table_name WHERE 条件
    table_name :表的名称。
    column1 :第一列的名称。
    column2 :第二列的名称。
    column3 :第三列的名称。
    条件:条件语句。
    该语句执行并提供来自表中与 WHERE 子句后的条件匹配的特定列的记录。
  21. SELECT * FROM 表名
    table_name :表的名称。
    您可以使用星号 (*) 来表示表的所有列,而不是指定一列或多列。此查询从表中检索所有记录。
  22. 数数
    COUNT函数用于返回任何表中与条件匹配的记录总数。
    它是已知的 AGGREGATE函数。

    例子 :

    SELECT COUNT(*) from student; 

    注意: AGGREGATE 函数允许您对数据运行计算并通过使用提供信息
    一个 SELECT 查询。

  23. 最大限度
    它用于获取表特定列的最大数值。
    例子 :
    SELECT MAX(marks) FROM student_report;  

    注意: MIN 和 MAX 函数对数字和字母值都可以正常工作。

  24. 最小
    它用于获取表特定列的最小数值。
    例子 :
    SELECT MIN(marks) FROM student_report;  

    注意:上面给出的示例查询也可以根据需要相互嵌套。

    例子 :

    SELECT MIN(marks) 
    FROM student_report 
    WHERE marks > ( SELECT MIN(marks) from student_report); 
  25. 限制
    用于设置结果集中记录数的限制。

    例子 :

    SELECT * 
    FROM student limit 4, 10; 

    这给出了从第 5 条记录开始的 10 条记录。

  26. 之间
    用于获取从指定下限到上限的记录。
    这将验证某个值是否在该给定范围内。

    例子 :

    SELECT * FROM employee 
    WHERE age BETWEEN 25 to 45. 
  27. 清楚的
    这用于获取所有不同的记录,避免所有重复的记录。

    例子 :

    SELECT DISTINCT profile 
    FROM employee; 
  28. IN子句
    这将验证一行是否包含在一组给定值中。
    它用于代替在查询中使用如此多的 OR 子句。

    例子 :

    SELECT * 
    FROM employee 
    WHERE age IN(40, 50, 55); 

  29. MySQL查询中的这个条件用于根据AND条件过滤结果数据。

    例子 :

    SELECT NAME, AGE 
    FROM student 
    WHERE marks > 95 AND grade = 7; 
  30. 或者
    MySQL 查询中的此条件用于根据 OR 条件过滤结果数据。

    例子 :

    SELECT * 
    FROM student 
    WHERE address = 'Hyderabad' OR address = 'Bangalore'; 
  31. 一片空白
    此关键字用于布尔比较或检查列的数据值是否为空。
    例子 :
    SELECT * 
    FROM employee 
    WHERE contact_number IS NULL; 
  32. 外键
    它用于指向另一个表的 PRIMARY KEY。

    例子 :

    CREATE TABLE Customers
     (
     id INT AUTO_INCREMENT PRIMARY KEY, 
     name VARCHAR(30) NOT NULL, 
    )
    
    CREATE TABLE Orders
    (
     order_id INT AUTO_INCREMENT PRIMARY KEY,
     FOREIGN KEY (id) REFERENCES Customers(id)
     ); 

    注意: MySQL 服务器的 MYISAM 存储引擎中未使用此功能。
    InnoDB 存储引擎支持外键约束。

  33. 喜欢
    这用于获取与指定字符串模式匹配的记录。

    例子 :

    SELECT * 
    FROM employee 
    WHERE name LIKE 'Sh%';
    
    SELECT * 
    FROM employee  
    WHERE name LIKE '%Sh%';   

    注意:查询中的百分号 (%) 表示零个或多个字符。

  34. 加入
    联接是联接两个或多个数据库表以根据公共字段获取数据。
    在不同的数据库中有不同名称的各种类型的连接。
    众所周知的联接有自联接、外联接、内联接等等。

    常规加入:
    连接从两个表中获取与给定条件完全匹配的所有记录。
    例子 :

    SELECT student.name, department.name 
    FROM student JOIN department ON student.department = department.name 

    左加入:
    它是获取与给定条件匹配的所有记录的连接,并从中获取所有记录
    左边的桌子。
    例子 :

    SELECT student.name, department.name 
    FROM student LEFT JOIN department ON student.deptartment = department.name 

    正确加入:
    它是获取与给定条件匹配的所有记录的连接,并从中获取所有记录
    正确的表。
    例子 :

    SELECT student.name, department.name 
    FROM student RIGHT JOIN department on student.department = department.name 
  35. 添加或删除列
    如果以后需要,可以在数据库表上添加新列。

    例子 :

    ALTER TABLE employee ADD COLUMN salary VARCHAR(25); 

    同样,可以从数据库表中删除任何列。

    例子 :

    ALTER TABLE employee DROP COLUMN salary; 

    结论 :
    运行 MySQL 查询是最常执行的任务,用于在数据库管理过程中获取数据。有许多数据库管理工具,如phpMyAdmin ,它们有助于通过可视化数据结果轻松地执行查询和处理事务。您已经滚动了日常编码实践中使用的最常见的 MySQL 查询。开发人员可以根据特定要求自定义或增强查询。