SQL命令详解(附实用示例)

1. 什么是SQL?

SQL(Structured Query Language,结构化查询语言)是用于管理和操作关系型数据库的标准语言。无论是网站开发、数据分析还是企业系统,SQL都是必备技能。

SQL的核心功能:

  • 查询数据(如搜索用户信息)
  • 增删改数据(如添加新商品、修改订单状态)
  • 管理数据库结构(如创建表、修改字段)
  • 控制访问权限(如限制用户只能查询不能删除)

2. SQL命令分类

SQL命令主要分为5类:

类别命令用途
DQL(数据查询)SELECT查询数据
DML(数据操作)INSERT, UPDATE, DELETE增删改数据
DDL(数据定义)CREATE, ALTER, DROP管理表结构
DCL(数据控制)GRANT, REVOKE权限管理
TCL(事务控制)COMMIT, ROLLBACK事务管理

接下来,我们通过实际案例详细介绍每类命令的用法。


3. DQL(数据查询语言)

核心命令:SELECT

(1)基本查询

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

-- 只查询name和email列
SELECT name, email FROM users;

(2)条件查询(WHERE)

-- 查询年龄大于18岁的用户
SELECT * FROM users WHERE age > 18;

-- 查询名字是"张三"的用户
SELECT * FROM users WHERE name = '张三';

-- 查询2023年注册的用户(日期范围)
SELECT * FROM users 
WHERE register_time BETWEEN '2023-01-01' AND '2023-12-31';

(3)排序(ORDER BY)

-- 按年龄升序(默认ASC)
SELECT * FROM users ORDER BY age;

-- 按注册时间降序(DESC)
SELECT * FROM users ORDER BY register_time DESC;

(4)分组统计(GROUP BY)

-- 统计每个城市的用户数量
SELECT city, COUNT(*) AS user_count 
FROM users 
GROUP BY city;

-- 查询订单总金额大于1000的用户
SELECT user_id, SUM(amount) AS total_amount 
FROM orders 
GROUP BY user_id 
HAVING SUM(amount) > 1000;

4. DML(数据操作语言)

(1)插入数据(INSERT)

-- 插入单条数据
INSERT INTO users (name, email, age) 
VALUES ('李四', 'lisi@example.com', 25);

-- 插入多条数据
INSERT INTO users (name, email, age) 
VALUES 
    ('王五', 'wangwu@example.com', 30),
    ('赵六', 'zhaoliu@example.com', 22);

(2)更新数据(UPDATE)

-- 将所有用户的年龄+1
UPDATE users SET age = age + 1;

-- 只更新特定用户(ID=1)
UPDATE users SET email = 'new_email@example.com' 
WHERE id = 1;

(3)删除数据(DELETE)

-- 删除ID=5的用户
DELETE FROM users WHERE id = 5;

-- 删除所有年龄小于18的用户
DELETE FROM users WHERE age < 18;

5. DDL(数据定义语言)

(1)创建表(CREATE TABLE)

CREATE TABLE products (
    id INT PRIMARY KEY AUTO_INCREMENT,  -- 主键,自增
    name VARCHAR(100) NOT NULL,         -- 商品名,非空
    price DECIMAL(10, 2),               -- 价格,小数点2位
    stock INT DEFAULT 0                 -- 库存,默认0
);

(2)修改表(ALTER TABLE)

-- 添加新列
ALTER TABLE products ADD COLUMN description TEXT;

-- 修改列类型
ALTER TABLE products MODIFY COLUMN price DECIMAL(12, 2);

-- 删除列
ALTER TABLE products DROP COLUMN stock;

(3)删除表(DROP TABLE)

-- 删除表(慎用!数据会全部丢失)
DROP TABLE products;

6. DCL(数据控制语言)

(1)授予权限(GRANT)

-- 让用户test可以查询数据库
GRANT SELECT ON my_database.* TO 'test'@'localhost';

-- 让用户admin拥有所有权限
GRANT ALL PRIVILEGES ON my_database.* TO 'admin'@'localhost';

(2)撤销权限(REVOKE)

-- 撤销test用户的删除权限
REVOKE DELETE ON my_database.* FROM 'test'@'localhost';

7. TCL(事务控制语言)

事务(Transaction)用于保证多个SQL操作的原子性,要么全部成功,要么全部失败。

(1)基本事务操作

-- 开始事务
BEGIN;  -- 或 START TRANSACTION;

-- 执行SQL(转账操作)
UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE user_id = 2;

-- 提交事务(如果成功)
COMMIT;

-- 回滚事务(如果失败)
ROLLBACK;

(2)设置保存点(SAVEPOINT)

BEGIN;
-- 操作1
SAVEPOINT step1;
-- 操作2
SAVEPOINT step2;

-- 回滚到step1
ROLLBACK TO step1;

8. 总结

命令类型常用命令用途
DQLSELECT查询数据
DMLINSERT, UPDATE, DELETE增删改数据
DDLCREATE, ALTER, DROP管理表结构
DCLGRANT, REVOKE权限管理
TCLCOMMIT, ROLLBACK事务控制

掌握这些SQL命令,你就能轻松操作数据库!建议多练习,结合实际项目加深理解。

下一篇预告: 《SQL高级查询:JOIN、子查询、索引优化》

欢迎点赞、收藏、关注! 🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值