自学内容网 自学内容网

sql语法学习

学习 SQL(Structured Query Language)语法是数据库开发的基础,主要用于数据库的管理和操作。以下是 SQL 的基本语法和常用操作,涵盖数据查询、插入、更新、删除等。

1. 数据库基础

  • 数据库:存储表和数据的集合。
  • :由行(记录)和列(字段)组成。
  • 字段:表中的列,表示数据属性。
  • 记录:表中的行,表示具体的数据项。

2. SQL 基本操作

SQL 分为四种主要操作类型:

  • 数据查询语言 (DQL):用于查询数据,如 SELECT
  • 数据操作语言 (DML):用于修改数据,如 INSERTUPDATEDELETE
  • 数据定义语言 (DDL):用于定义和修改数据库结构,如 CREATEALTERDROP
  • 数据控制语言 (DCL):用于权限控制,如 GRANTREVOKE

3. 常用 SQL 语法

3.1. 创建数据库和表
-- 创建数据库
CREATE DATABASE my_database;

-- 使用数据库
USE my_database;

-- 创建表
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100),
    email VARCHAR(100),
    age INT
);
  • CREATE DATABASE:创建一个新数据库。
  • CREATE TABLE:创建一个新表,定义字段及其数据类型。
3.2. 插入数据
-- 向表中插入数据
INSERT INTO users (name, email, age)
VALUES ('Alice', 'alice@example.com', 25);

-- 插入多行数据
INSERT INTO users (name, email, age)
VALUES 
('Bob', 'bob@example.com', 30),
('Charlie', 'charlie@example.com', 22);
  • INSERT INTO:插入新记录到表中。
3.3. 查询数据
-- 查询所有数据
SELECT * FROM users;

-- 查询特定列的数据
SELECT name, email FROM users;

-- 查询带条件的数据
SELECT * FROM users WHERE age > 25;

-- 使用别名(Alias)查询
SELECT name AS 'User Name', email AS 'Email Address' FROM users;

-- 排序查询结果
SELECT * FROM users ORDER BY age DESC;

-- 限制查询结果
SELECT * FROM users LIMIT 5;
  • SELECT:从表中查询数据。
  • WHERE:条件查询。
  • ORDER BY:排序查询结果,ASC 为升序,DESC 为降序。
  • LIMIT:限制查询返回的记录数。
3.4. 更新数据
-- 更新数据
UPDATE users
SET age = 28
WHERE name = 'Alice';
  • UPDATE:修改表中的记录,通常配合 WHERE 条件使用。
3.5. 删除数据
-- 删除记录
DELETE FROM users WHERE name = 'Charlie';

-- 删除表中的所有记录
DELETE FROM users;
  • DELETE:删除表中的数据。注意:如果不加 WHERE 条件,会删除所有记录。

4. 复杂查询

4.1. 聚合函数
-- 统计记录总数
SELECT COUNT(*) FROM users;

-- 求平均年龄
SELECT AVG(age) FROM users;

-- 查询最大和最小年龄
SELECT MAX(age), MIN(age) FROM users;
  • COUNT:计数。
  • AVG:求平均值。
  • MAXMIN:求最大值和最小值。
4.2. 分组查询(GROUP BY)
-- 按年龄分组统计人数
SELECT age, COUNT(*) FROM users
GROUP BY age;
  • GROUP BY:用于将查询结果按某列分组,通常与聚合函数一起使用。
4.3. 联合查询(JOIN)
-- 创建 orders 表
CREATE TABLE orders (
    order_id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT,
    product_name VARCHAR(100),
    amount DECIMAL(10, 2)
);

-- 插入数据
INSERT INTO orders (user_id, product_name, amount)
VALUES (1, 'Laptop', 1000.00), (2, 'Phone', 500.00), (1, 'Tablet', 300.00);

-- 联合查询:查询用户及其订单
SELECT users.name, orders.product_name, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id;
  • JOIN:用于关联两个或多个表。
    • INNER JOIN:默认的 JOIN 类型,返回两张表中满足条件的记录。
    • LEFT JOIN:返回左表中的所有记录,即使右表中没有匹配。
    • RIGHT JOIN:返回右表中的所有记录,即使左表中没有匹配。
4.4. 子查询
-- 查询年龄最大的用户
SELECT * FROM users
WHERE age = (SELECT MAX(age) FROM users);
  • 子查询:在查询中嵌套其他查询。

5. 数据库的修改和删除

5.1. 修改表结构
-- 添加新列
ALTER TABLE users ADD phone VARCHAR(20);

-- 修改列的数据类型
ALTER TABLE users MODIFY age SMALLINT;

-- 删除列
ALTER TABLE users DROP COLUMN phone;
  • ALTER TABLE:修改表的结构,如添加、修改或删除列。
5.2. 删除表和数据库
-- 删除表
DROP TABLE users;

-- 删除数据库
DROP DATABASE my_database;
  • DROP:用于删除表或数据库,删除操作不可恢复。

6. 事务(Transaction)

事务确保一组 SQL 操作要么全部执行成功,要么全部回滚。

-- 开启事务
START TRANSACTION;

-- 插入和更新操作
INSERT INTO users (name, email, age) VALUES ('Dave', 'dave@example.com', 40);
UPDATE users SET age = 41 WHERE name = 'Dave';

-- 提交事务
COMMIT;

-- 如果出现错误,回滚事务
ROLLBACK;
  • START TRANSACTION:开始事务。
  • COMMIT:提交事务,使修改生效。
  • ROLLBACK:回滚事务,撤销未提交的修改。

7. 总结

SQL 是管理和操作关系型数据库的关键工具,掌握 SQL 基本语法和查询技巧可以高效地与数据库交互。通过学习创建、查询、更新、删除数据,以及如何执行复杂查询和事务操作,你可以有效地管理数据库中的数据。


原文地址:https://blog.csdn.net/golove666/article/details/142441497

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!