SQL命令速查手册:从基础到高级操作指南

SQL命令速查手册:从基础到高级操作指南

前言

SQL(Structured Query Language)是关系型数据库管理系统的标准语言,掌握SQL对于任何需要与数据库打交道的开发者都至关重要。本文基于ChristianLempa的速查表项目,系统整理了SQL的各类命令,帮助开发者快速查阅和掌握SQL的核心操作。

数据库基础操作

数据库创建与管理

-- 创建新数据库
CREATE DATABASE my_database;

-- 删除数据库(谨慎操作)
DROP DATABASE my_database;

-- 查看所有数据库
SHOW DATABASES;

注意事项:删除数据库是不可逆操作,执行前务必确认数据已备份。

表结构操作(DDL)

表创建与修改

-- 创建表
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 删除表
DROP TABLE users;

-- 修改表结构
ALTER TABLE users ADD COLUMN age INT;
ALTER TABLE users DROP COLUMN age;
ALTER TABLE users RENAME COLUMN email TO user_email;
ALTER TABLE users RENAME TO customers;

最佳实践:设计表结构时应考虑字段类型、约束条件(NOT NULL、UNIQUE等)和默认值,这能有效保证数据完整性。

数据操作(DML)

基本CRUD操作

-- 插入数据
INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');

-- 查询数据
SELECT * FROM users;

-- 更新数据
UPDATE users SET username = 'jane_doe' WHERE id = 1;

-- 删除数据
DELETE FROM users WHERE id = 1;

性能提示:UPDATE和DELETE操作务必使用WHERE条件,否则会修改/删除整表数据。

高级查询技巧(DQL)

数据筛选与排序

-- 条件查询
SELECT * FROM users WHERE username LIKE 'j%';

-- 排序
SELECT * FROM users ORDER BY created_at DESC;

-- 分页
SELECT * FROM users LIMIT 10 OFFSET 20;

多表操作

-- 内连接
SELECT u.username, o.order_date 
FROM users u 
JOIN orders o ON u.id = o.user_id;

-- 左外连接
SELECT u.username, o.order_date 
FROM users u 
LEFT JOIN orders o ON u.id = o.user_id;

-- 分组统计
SELECT user_id, COUNT(*) as order_count 
FROM orders 
GROUP BY user_id 
HAVING COUNT(*) > 5;

连接类型说明

  • INNER JOIN:只返回匹配的行
  • LEFT JOIN:返回左表所有行,右表无匹配则为NULL
  • RIGHT JOIN:返回右表所有行,左表无匹配则为NULL
  • FULL JOIN:返回所有行(MySQL不支持)

权限管理(DCL)

-- 创建用户
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'secure_password';

-- 授权
GRANT SELECT, INSERT ON my_database.* TO 'app_user'@'localhost';

-- 撤销权限
REVOKE INSERT ON my_database.* FROM 'app_user'@'localhost';

-- 刷新权限
FLUSH PRIVILEGES;

安全建议:遵循最小权限原则,只授予用户必要的权限。

事务控制(TCL)

-- 开启事务
BEGIN TRANSACTION;

-- 执行操作
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;

-- 提交或回滚
COMMIT; -- 或 ROLLBACK;

事务特性(ACID):

  • 原子性(Atomicity):事务是不可分割的工作单位
  • 一致性(Consistency):事务执行前后数据库保持一致状态
  • 隔离性(Isolation):并发事务互不干扰
  • 持久性(Durability):事务提交后永久有效

实用系统命令

-- 查看表结构
DESCRIBE users;
SHOW CREATE TABLE users;

-- 查看索引
SHOW INDEXES FROM users;

-- 查询执行计划
EXPLAIN SELECT * FROM users WHERE username = 'john';

优化技巧:EXPLAIN命令可帮助分析查询性能,识别潜在的性能瓶颈。

结语

本文涵盖了SQL从基础到高级的各类操作命令,可作为日常开发的快速参考。实际应用中,不同数据库系统(MySQL、PostgreSQL、SQL Server等)可能会有语法差异,建议查阅具体数据库的官方文档。掌握这些核心SQL命令,你将能够高效地进行数据库操作和管理。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翟培任Lame

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值