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

数据库常用语法总结

数据库是现代应用程序中不可或缺的一部分,用于存储和管理大量结构化数据。本文将总结一些常用的 SQL 语法,帮助初学者和经验丰富的开发者更好地理解和使用数据库。

1. 创建数据库

创建一个新的数据库非常简单,使用以下语法:

CREATE DATABASE database_name;

例如,创建一个名为 test_db 的数据库:

CREATE DATABASE test_db;

2. 选择数据库

在执行操作之前,需要选择要操作的数据库:

USE database_name;

例如,选择 test_db 数据库:

USE test_db;

3. 创建表

创建表时需要定义表的结构,包括列名、数据类型和约束条件:

CREATE TABLE table_name (
    column1_name column1_type constraint1,
    column2_name column2_type constraint2,
    ...
);

例如,创建一个名为 users 的表,包含 idname 和 email 列:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(150) UNIQUE NOT NULL
);

4. 插入数据

向表中插入数据使用 INSERT INTO 语句:

INSERT INTO table_name (column1_name, column2_name, ...) VALUES (value1, value2, ...);

例如,向 users 表中插入一条数据:

INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');

5. 查询数据

查询表中的数据使用 SELECT 语句:

SELECT column1_name, column2_name, ... FROM table_name WHERE condition;

例如,查询 users 表中所有数据:

SELECT * FROM users;

查询 users 表中 name 为 ‘Alice’ 的数据:

SELECT * FROM users WHERE name = 'Alice';

6. 更新数据

更新表中的数据使用 UPDATE 语句:

UPDATE table_name SET column1_name = value1, column2_name = value2, ... WHERE condition;

例如,更新 users 表中 id 为 1 的用户的 email

UPDATE users SET email = 'alice_new@example.com' WHERE id = 1;

7. 删除数据

删除表中的数据使用 DELETE 语句:

DELETE FROM table_name WHERE condition;

例如,删除 users 表中 id 为 1 的用户:

DELETE FROM users WHERE id = 1;

8. 删除表

删除表使用 DROP TABLE 语句:

DROP TABLE table_name;

例如,删除 users 表:

DROP TABLE users;

9. 修改表结构

修改表结构使用 ALTER TABLE 语句:

ALTER TABLE table_name ADD column_name column_type;
ALTER TABLE table_name DROP column_name;
ALTER TABLE table_name MODIFY column_name column_type;

例如,向 users 表中添加一个 age 列:

ALTER TABLE users ADD age INT;

删除 users 表中的 age 列:

ALTER TABLE users DROP age;

修改 users 表中的 name 列的类型为 VARCHAR(200)

ALTER TABLE users MODIFY name VARCHAR(200);

10. 索引

创建索引以提高查询性能:

CREATE INDEX index_name ON table_name (column_name);

例如,为 users 表的 email 列创建索引:

CREATE INDEX idx_email ON users (email);

删除索引:

DROP INDEX index_name ON table_name;

例如,删除 users 表的 idx_email 索引:

DROP INDEX idx_email ON users;

11. 聚合函数

聚合函数用于对一组值进行计算并返回单个结果:

  • COUNT:计算行数
  • SUM:计算总和
  • AVG:计算平均值
  • MAX:返回最大值
  • MIN:返回最小值

例如,计算 users 表中的总行数:

SELECT COUNT(*) FROM users;

计算 users 表中 age 列的总和:

SELECT SUM(age) FROM users;

12. 分组

使用 GROUP BY 语句将行分组,通常与聚合函数一起使用:

SELECT column_name, aggregate_function(column_name)
FROM table_name
GROUP BY column_name;

例如,按 age 列分组并计算每个年龄段的用户数:

SELECT age, COUNT(*) FROM users GROUP BY age;

13. 排序

使用 ORDER BY 语句对查询结果进行排序:

SELECT column_name, column2_name, ...
FROM table_name
ORDER BY column_name [ASC|DESC];

例如,按 name 列升序排序 users 表中的所有数据:

SELECT * FROM users ORDER BY name ASC;

按 age 列降序排序:

SELECT * FROM users ORDER BY age DESC;

14. 连接表

使用 JOIN 语句将多个表中的数据连接在一起:

  • INNER JOIN:返回两个表中匹配的行
  • LEFT JOIN:返回左表中的所有行,以及右表中匹配的行
  • RIGHT JOIN:返回右表中的所有行,以及左表中匹配的行
  • FULL OUTER JOIN:返回两个表中的所有行

例如,假设有两个表 users 和 orders,我们可以通过 user_id 进行连接:

SELECT users.name, orders.order_date
FROM users
INNER JOIN orders ON users.id = orders.user_id;

15. 子查询

子查询是在另一个查询中的查询,通常用于条件过滤:

SELECT column_name, column2_name, ...
FROM table_name
WHERE column_name Operator (SELECT column_name FROM table_name WHERE condition);

例如,查询 users 表中购买了最大金额订单的用户:

SELECT users.name
FROM users
WHERE users.id = (SELECT user_id FROM orders ORDER BY order_amount DESC LIMIT 1);

16. 事务

事务用于确保一组操作的原子性、一致性、隔离性和持久性:

BEGIN TRANSACTION;
-- 执行多个 SQL 语句
COMMIT;
-- 或者
ROLLBACK;

例如,确保插入和更新操作一起成功或全部失败:

BEGIN TRANSACTION;
INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
UPDATE users SET email = 'alice_new@example.com' WHERE id = 1;
COMMIT;

如果在事务执行过程中发生错误,可以回滚事务:

BEGIN TRANSACTION;
-- 执行 SQL 语句
ROLLBACK;

17. 视图

视图是一个虚拟表,其内容由查询定义:

CREATE VIEW view_name AS
SELECT column_name, column2_name, ...
FROM table_name
WHERE condition;

例如,创建一个视图 user_orders,包含用户及其订单信息:

CREATE VIEW user_orders AS
SELECT users.name, orders.order_date, orders.order_amount
FROM users
INNER JOIN orders ON users.id = orders.user_id;

查询视图:

SELECT * FROM user_orders;

18. 存储过程

存储过程是一组 SQL 语句,可以预先编译并存储在数据库中,通过调用名称来执行:

DELIMITER //
CREATE PROCEDURE procedure_name()
BEGIN
    -- 执行 SQL 语句
END //
DELIMITER ;

例如,创建一个存储过程 get_all_users,返回所有用户的名称:

DELIMITER //
CREATE PROCEDURE get_all_users()
BEGIN
    SELECT name FROM users;
END //
DELIMITER ;

调用存储过程:

CALL get_all_users();

希望你喜欢这篇文章!请点关注和收藏吧。你的关注和收藏会是我努力更新的动力,祝关注和收藏的帅哥美女们今年都能暴富。如果有更多问题,随时欢迎评论区留言


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

相关文章:

  • Linux 常用操作指令大揭秘(下)
  • AI制作ppt
  • 三正科技笔试题
  • Linux 进程线程间通信总结
  • Python多进程间通讯(包含共享内存方式)
  • 【MySQL】数据库表连接简明解释
  • 鸿蒙next版开发:相机开发-元数据(ArkTS)
  • SpringCloud篇(微服务)
  • [CKS] K8S AppArmor Set Up
  • AI 扩展开发者思维方式:以 SQL 查询优化为例
  • automa 浏览器自动化工具插件
  • 使用TaPas进行表格问答
  • 一文理解:结构化数据、非结构化数据、半结构化数据和元数据
  • 使用 start-local 脚本在本地运行 Elasticsearch
  • Pycharm打开终端时报错:Cannot open Local,Failed to start[powershell.exe]
  • 【论文复现】STM32设计的物联网智能鱼缸
  • 快速排序法
  • Macos mysql实现命令自动补全的方法
  • 7天用Go从零实现分布式缓存GeeCache(总结)
  • 目录树文件名映射深度1分组计数,tree(映射(目录A))
  • Mysql用户权限与账号管理
  • Conda环境、Ubuntu环境移植
  • Scala 的List
  • 【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-成绩排序ABCDE
  • 3DTiles之使用customShader调整风格
  • 图像处理实验一(Matlab Exercises and Image Fundamentals)