sql查询语句大全及实例

sql查询语句大全及实例

SQL 查询语句大全及实例

SQL(Structured Query Language)是用于管理和操作关系数据库的标准编程语言。以下是一些常用的SQL查询语句及其示例,涵盖了数据定义、数据操纵和数据控制等多个方面。

一、数据定义语言 (DDL)

DDL 语句用于定义和管理数据库结构或模式。

  1. 创建数据库

    CREATE DATABASE 数据库名; -- 实例:创建一个名为 "SchoolDB" 的数据库 CREATE DATABASE SchoolDB;
  2. 删除数据库

    DROP DATABASE 数据库名; -- 实例:删除名为 "SchoolDB" 的数据库 DROP DATABASE SchoolDB;
  3. 创建表

    CREATE TABLE 表名 ( 列名 数据类型 [约束], ... ); -- 实例:创建一个名为 "Students" 的表 CREATE TABLE Students ( StudentID INT PRIMARY KEY, FirstName VARCHAR(50), LastName VARCHAR(50), Age INT, Gender CHAR(1) );
  4. 删除表

    DROP TABLE 表名; -- 实例:删除名为 "Students" 的表 DROP TABLE Students;
  5. 修改表结构

    • 添加列ALTER TABLE 表名 ADD 列名 数据类型 [约束]; -- 实例:在 "Students" 表中添加一列 "Email" ALTER TABLE Students ADD Email VARCHAR(100);
    • 删除列ALTER TABLE 表名 DROP COLUMN 列名; -- 实例:从 "Students" 表中删除 "Email" 列 ALTER TABLE Students DROP COLUMN Email;
    • 修改列数据类型或约束ALTER TABLE 表名 MODIFY COLUMN 列名 新数据类型 [新约束]; -- 实例:将 "Age" 列的数据类型改为 BIGINT ALTER TABLE Students MODIFY COLUMN Age BIGINT;

二、数据操纵语言 (DML)

DML 语句用于对数据库中的数据进行增删改查操作。

  1. 插入数据

    INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...); -- 实例:向 "Students" 表中插入一条记录 INSERT INTO Students (StudentID, FirstName, LastName, Age, Gender) VALUES (1, 'John', 'Doe', 20, 'M');
  2. 更新数据

    UPDATE 表名 SET 列1 = 新值1, 列2 = 新值2, ... WHERE 条件; -- 实例:将 "Students" 表中 StudentID 为 1 的学生的年龄更新为 21 UPDATE Students SET Age = 21 WHERE StudentID = 1;
  3. 删除数据

    DELETE FROM 表名 WHERE 条件; -- 实例:删除 "Students" 表中 StudentID 为 1 的学生 DELETE FROM Students WHERE StudentID = 1;
  4. 查询数据

    • 基本查询SELECT 列1, 列2, ... FROM 表名 WHERE 条件; -- 实例:查询 "Students" 表中的所有学生信息 SELECT * FROM Students;
    • 使用聚合函数SELECT 聚合函数(列名) FROM 表名 WHERE 条件; -- 实例:计算 "Students" 表中学生的平均年龄 SELECT AVG(Age) AS AverageAge FROM Students;
    • 分组查询SELECT 列名, 聚合函数(列名) FROM 表名 GROUP BY 列名 HAVING 条件; -- 实例:按性别分组并计算每组的平均年龄 SELECT Gender, AVG(Age) AS AverageAge FROM Students GROUP BY Gender;
    • 排序查询SELECT 列1, 列2, ... FROM 表名 ORDER BY 列名 [ASC|DESC]; -- 实例:按年龄降序排列查询 "Students" 表中的学生信息 SELECT * FROM Students ORDER BY Age DESC;
    • 连接查询SELECT A.列名, B.列名 FROM 表A A INNER JOIN 表B B ON A.公共列 = B.公共列; -- 实例:连接 "Students" 和 "Courses" 表,查询选修课程的学生信息 SELECT S.FirstName, S.LastName, C.CourseName FROM Students S INNER JOIN Courses C ON S.StudentID = C.StudentID;

三、数据控制语言 (DCL)

DCL 语句用于设置或更改数据库用户访问权限。

  1. 授予权限

    GRANT 权限 ON 对象 TO 用户; -- 实例:授予用户 "user1" 对 "Students" 表的 SELECT 权限 GRANT SELECT ON Students TO user1;
  2. 撤销权限

    REVOKE 权限 ON 对象 FROM 用户; -- 实例:撤销用户 "user1" 对 "Students" 表的 SELECT 权限 REVOKE SELECT ON Students FROM user1;

以上只是SQL查询语句的一部分内容,实际应用中可能还需要结合事务处理、索引管理、视图创建等高级功能来实现更复杂的数据库操作。希望这些示例能帮助你更好地理解和使用SQL。