SQL 基本语句

数据库操作的基石

在当今数字化时代,数据管理变得至关重要。无论是企业运营、科学研究还是日常应用开发,都离不开对数据的高效处理。SQL(Structured Query Language)作为关系数据库管理系统的标准语言,为我们提供了强大的数据操作工具。掌握 SQL 基本语句,能够让我们更加自如地与数据库交互,实现各种复杂的数据需求。

一、SQL 概述

SQL 即结构化查询语言,是一种用于管理和操作关系数据库的语言。它具有综合统一、高度非过程化、面向集合操作等特点,并且语法简洁,功能强大。通过 SQL,我们可以创建和管理数据库对象,如表、视图、索引等;同时,还能进行数据的增删改查操作,以及实现数据的聚合、排序和连接等复杂处理。

二、SQL 基本语句分类

(一)数据定义语言(DDL)

  1. CREATE 语句
    • 创建数据库:使用 CREATE DATABASE 语句可以创建一个新数据库。例如,CREATE DATABASE my_database; 这将创建一个名为 my_database 的数据库,可用于存储相关的数据表和其他数据库对象。
    • 创建表CREATE TABLE 语句用于在指定数据库中创建一个新表。比如,CREATE TABLE students (id INT PRIMARY KEY, name VARCHAR(50), age INT); 此语句创建了一个名为 students 的表,包含 idname 和 age 三个字段,其中 id 为主键。
  2. ALTER 语句
    • 修改表结构:可以使用 ALTER TABLE 语句来修改表的结构。例如,向表中添加一个新列:ALTER TABLE students ADD COLUMN gender VARCHAR(10); 这将在 students 表中新增一个名为 gender 的列,用于存储性别信息。
    • 修改列属性:也可以修改已有列的属性,如数据类型、是否允许为空等。比如,将 name 列的数据类型改为 VARCHAR(100)ALTER TABLE students MODIFY COLUMN name VARCHAR(100);
  3. DROP 语句
    • 删除数据库DROP DATABASE 语句用于删除一个指定的数据库及其包含的所有对象。例如,DROP DATABASE my_database; 执行此语句后,名为 my_database 的数据库将被永久删除,所以在执行前需要谨慎确认。
    • 删除表DROP TABLE 语句可以删除一个或多个表。例如,DROP TABLE students; 这将删除 students 表及其所有数据,同样需要注意数据的备份和确认。

(二)数据操作语言(DML)

  1. INSERT INTO 语句
    • 插入单行数据:该语句用于向表中插入一行新的记录。例如,向 students 表中插入一条新学生的记录:INSERT INTO students (id, name, age) VALUES (1, 'John', 20); 这里需要注意的是,如果没有指定所有列的值,则未指定的列将使用默认值(如果有设置),或者为 NULL(如果允许为空)。
    • 插入多行数据:可以在一条 INSERT INTO 语句中插入多行数据,值之间用逗号分隔。例如,INSERT INTO students (id, name, age) VALUES (2, 'Jane', 18), (3, 'Bob', 19); 同时插入了两条学生记录。
  2. UPDATE 语句
    • 更新单行或多行数据:用于修改表中已有记录的值。例如,将 students 表中 id 为 1 的学生年龄改为 21:UPDATE students SET age = 21 WHERE id = 1; 如果省略 WHERE 子句,则会更新表中的所有记录,这通常是不安全的,除非确实需要对所有记录进行相同的更新操作。
  3. DELETE 语句
    • 删除单行或多行数据:从表中删除满足条件的记录。例如,删除 students 表中 id 为 1 的学生记录:DELETE FROM students WHERE id = 1; 同样,若省略 WHERE 子句,会删除表中的所有记录,务必谨慎使用。

(三)数据查询语言(DQL)

  1. SELECT 语句
    • 简单查询:最基本的用法是从表中选取特定的列和行。例如,查询 students 表中所有学生的姓名和年龄:SELECT name, age FROM students; 这将返回一个包含学生姓名和年龄的结果集。
    • 带条件查询:使用 WHERE 子句来筛选满足特定条件的记录。比如,查询年龄大于 18 岁的学生:SELECT * FROM students WHERE age > 18;
    • 排序查询:利用 ORDER BY 子句对查询结果进行排序。例如,按年龄升序排列学生记录:SELECT * FROM students ORDER BY age ASC; 也可以按多个列进行排序,如先按年龄升序,再按姓名降序:ORDER BY age ASC, name DESC;
    • 聚合函数查询:常见的聚合函数包括 COUNT()(统计行数)、SUM()(求和)、AVG()(求平均值)、MAX()(求最大值)和 MIN()(求最小值)等。例如,统计学生总人数:SELECT COUNT(*) FROM students; 计算学生的平均年龄:SELECT AVG(age) FROM students;
  2. 联合查询
    • UNION 操作符:用于合并多个 SELECT 语句的结果集,要求这些结果集具有相同的列数和相似的数据类型。例如,查询男生和女生的信息并合并结果:SELECT * FROM students WHERE gender = '男' UNION SELECT * FROM students WHERE gender = '女';
    • JOIN 操作符:包括内连接(INNER JOIN)、外连接(LEFT JOINRIGHT JOINFULL JOIN)等,用于连接两个或多个表,根据它们之间的关联条件获取相关数据。例如,有两个表 students(学生表)和 scores(成绩表),通过学生的 id 进行内连接查询每个学生的成绩:SELECT students.name, scores.score FROM students INNER JOIN scores ON students.id = scores.student_id;

三、SQL 基本语句的使用示例

以下以一个简单的学校管理系统为例,假设我们有一个包含学生信息的表 students(字段包括 idnameagegender)和一个包含课程信息的表 courses(字段包括 course_idcourse_name),以及一个记录学生选课信息的表 enrollments(字段包括 student_idcourse_idgrade)。

  1. 创建数据库和表
    • 首先创建一个数据库:
       

      sql复制代码

      CREATE DATABASE school;

    • 然后切换到该数据库:
       

      sql复制代码

      USE school;

    • 接着创建 students 表:
       

      sql复制代码

      CREATE TABLE students ( id INT PRIMARY KEY, name VARCHAR(50), age INT, gender VARCHAR(10) );

    • 创建 courses 表:
       

      sql复制代码

      CREATE TABLE courses ( course_id INT PRIMARY KEY, course_name VARCHAR(100) );

    • 创建 enrollments 表:
       

      sql复制代码

      CREATE TABLE enrollments ( student_id INT, course_id INT, grade DECIMAL(3, 2), PRIMARY KEY (student_id, course_id), FOREIGN KEY (student_id) REFERENCES students(id), FOREIGN KEY (course_id) REFERENCES courses(course_id) );

  2. 插入数据
    • 向 students 表中插入数据:
       

      sql复制代码

      INSERT INTO students (id, name, age, gender) VALUES (1, 'Alice', 20, 'Female'), (2, 'Bob', 22, 'Male');

    • 向 courses 表中插入数据:
       

      sql复制代码

      INSERT INTO courses (course_id, course_name) VALUES (101, 'Mathematics'), (102, 'Physics');

    • 向 enrollments 表中插入数据:
       

      sql复制代码

      INSERT INTO enrollments (student_id, course_id, grade) VALUES (1, 101, 85.5), (2, 102, 90.0);

  3. 查询数据
    • 查询所有学生的信息:
       

      sql复制代码

      SELECT * FROM students;

    • 查询选修了数学课程的学生及其成绩:
       

      sql复制代码

      SELECT students.name, enrollments.grade FROM students INNER JOIN enrollments ON students.id = enrollments.student_id INNER JOIN courses ON enrollments.course_id = courses.course_id WHERE courses.course_name = 'Mathematics';

  4. 更新数据
    • 将学生 Alice 的年龄改为 21:
       

      sql复制代码

      UPDATE students SET age = 21 WHERE name = 'Alice';

  5. 删除数据
    • 删除学生 Bob 的选课记录:
       

      sql复制代码

      DELETE FROM enrollments WHERE student_id = 2;

四、总结

SQL 基本语句是数据库操作的基础,掌握它们对于进行有效的数据管理和数据分析至关重要。在实际的应用开发中,我们需要根据具体的需求灵活运用这些语句,构建高效、可靠的数据库应用程序。无论是简单的数据查询还是复杂的数据操纵,SQL 都能够帮助我们实现对数据的精准控制和管理,为各种业务场景提供有力的支持。希望本文能够帮助你更好地理解和掌握 SQL 基本语句,开启数据库编程的大门。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值