当前位置: 首页 > article >正文

SQL基础教程

SQL基础教程

目录

  1. 简介
  2. 创建数据库和表
    2.1 创建数据库
    2.2 创建表
  3. 使用SELECT语句查询数据
    3.1 基本SELECT语句
    3.2 使用WHERE子句
  4. 表的连接操作
    4.1 INNER JOIN
    4.2 LEFT JOIN
    4.3 RIGHT JOIN
  5. 修改数据:INSERT、UPDATE、DELETE
    5.1 INSERT语句
    5.2 UPDATE语句
    5.3 DELETE语句
  6. 实践练习
  7. 总结

1. 简介

本教程专为没有SQL基础的初学者设计。我们将涵盖SQL操作的基础知识,包括创建数据库和表、查询数据、连接表以及修改数据。每个部分都包含解释、示例代码和练习题。

2. 创建数据库和表

2.1 创建数据库

数据库是用于存储和管理数据的容器。在开始处理数据之前,我们需要先创建一个数据库。

语法:

CREATE DATABASE 数据库名称;

示例:

CREATE DATABASE my_database;

练习:
创建一个名为student_db的数据库。

2.2 创建表

表是数据库中的基本存储结构。它们由具有指定数据类型的列(字段)组成。

语法:

CREATE TABLE 表名 (1 数据类型,2 数据类型,3 数据类型,
    ...
);

示例:

USE my_database;

CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    age INT,
    major VARCHAR(50)
);

练习:
student_db数据库中创建一个名为courses的表,包含以下列:

  • course_id:整数,主键,自动递增
  • course_name:VARCHAR(50),非空
  • credits:整数

3. 使用SELECT语句查询数据

3.1 基本SELECT语句

SELECT语句用于从一个或多个表中检索数据。

语法:

SELECT1,2, ...
FROM 表名;

示例:

-- 查询students表中的所有数据
SELECT * FROM students;

-- 只查询students表中的name和age列
SELECT name, age FROM students;

练习:
编写一个查询,从courses表中选择所有课程名称和学分。

3.2 使用WHERE子句

WHERE子句用于根据指定条件筛选记录。

语法:

SELECT1,2, ...
FROM 表名
WHERE 条件;

示例:

-- 查询年龄大于20岁的学生
SELECT * FROM students WHERE age > 20;

-- 查询主修计算机科学的学生
SELECT * FROM students WHERE major = '计算机科学';

练习:
编写一个查询,选择所有3学分或以上的课程。

4. 表的连接操作

4.1 INNER JOIN

INNER JOIN返回两个表中具有匹配值的记录。

语法:

SELECTFROM1
INNER JOIN2
ON1.=2.;

示例:

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

练习:
编写一个查询,显示每个学生的姓名和他们选修的课程名称。

4.2 LEFT JOIN

LEFT JOIN返回左表中的所有记录,即使右表中没有匹配项。

语法:

SELECTFROM1
LEFT JOIN2
ON1.=2.;

示例:

SELECT students.name, courses.course_name
FROM students
LEFT JOIN enrollments ON students.id = enrollments.student_id
LEFT JOIN courses ON enrollments.course_id = courses.course_id;

练习:
编写一个查询,显示所有学生的姓名和他们选修的课程(如果有)。

4.3 RIGHT JOIN

RIGHT JOIN返回右表中的所有记录,即使左表中没有匹配项。

语法:

SELECTFROM1
RIGHT JOIN2
ON1.=2.;

示例:

SELECT students.name, courses.course_name
FROM students
RIGHT JOIN enrollments ON students.id = enrollments.student_id
RIGHT JOIN courses ON enrollments.course_id = courses.course_id;

练习:
编写一个查询,显示所有课程和选修这些课程的学生姓名(如果有)。

5. 修改数据:INSERT、UPDATE、DELETE

5.1 INSERT语句

INSERT语句用于向表中插入新记录。

语法:

INSERT INTO 表名 (1,2,3, ...)
VALUES (1,2,3, ...);

示例:

INSERT INTO students (name, age, major)
VALUES ('张三', 20, '计算机科学');

练习:
courses表中插入一门新课程。

5.2 UPDATE语句

UPDATE语句用于修改表中的现有记录。

语法:

UPDATE 表名
SET1 =1,2 =2, ...
WHERE 条件;

示例:

UPDATE students
SET major = '物理学'
WHERE name = '张三';

练习:
更新courses表中某门课程的学分。

5.3 DELETE语句

DELETE语句用于删除表中的记录。

语法:

DELETE FROM 表名
WHERE 条件;

示例:

DELETE FROM students
WHERE age < 18;

练习:
courses表中删除学分少于2的课程。

6. 实践练习

  1. 创建一个名为library_db的数据库。
  2. library_db中创建一个books表,包含以下列:
    • book_id:整数,主键,自动递增
    • title:VARCHAR(100),非空
    • author:VARCHAR(50)
    • published_year:整数
  3. books表中插入至少5本书的信息。
  4. 编写一个查询,选择所有2000年之后出版的书籍。
  5. 更新某本书的标题。
  6. 删除某个特定作者的所有书籍。

7. 总结

通过本教程,您已经学习了SQL的基本操作,包括创建数据库和表、查询数据、连接表以及修改数据。这些基础知识将帮助您开始使用SQL进行数据管理和分析。

记住,实践是掌握SQL的关键。尝试在实际的数据库环境中运行这些命令,并创建自己的查询来加深理解。随着您的技能提升,您可以探索更高级的SQL概念和技术。


http://www.kler.cn/a/331220.html

相关文章:

  • 【C++】设计模式
  • 【赵渝强老师】MongoDB逻辑存储结构
  • lxml提取某个外层标签里的所有文本
  • Docker 部署 plumelog 最新版本 实现日志采集
  • Ubuntu下ESP32-IDF开发环境搭建
  • React 前端框架简介
  • linux系统解压zip文件名乱码
  • vue3项目执行pnpm update后还原package.json文件后运行报错
  • 7.使用 VSCode 过程中的英语积累 - Terminal 菜单(每一次重点积累 5 个单词)
  • docker快速安装ELK
  • IDEA在git提交时添加忽略文件
  • 【动态规划-分组背包】【hard】力扣2218. 从栈中取出 K 个硬币的最大面值和
  • C++ 类和对象的初步介绍
  • 网页前端开发之Javascript入门篇(3/9):条件控制
  • Vue.js 组件开发知识详解
  • 国外电商系统开发-运维系统开发
  • python如何查询函数
  • pod管理及优化
  • 解决 MySQL 服务无法启动:failed to restart mysql.service: unit not found
  • 2024-09-04 深入JavaScript高级语法十五——浏览器原理-V8引擎-js执行原理
  • Springboot项目jar包中resource目录下静态资源excel、pdf等二进制文件损坏
  • 跨平台音乐播放器Feishin
  • 位运算(6)_只出现一次的数字 II
  • Build a Large Language Model (From Scratch)学习汇总
  • uni-app运行到 Android 真机和Android studio模拟器
  • three.js 通过着色器实现热力图效果