SQL语句-常用版

SQL语句是关系型数据库中不可缺少的部分

1. 数据定义语言(DDL)

用于定义数据库结构:

-- 创建数据库
CREATE DATABASE database_name;
-- 创建表
CREATE TABLE table_name (
    column1 datatype constraints,
    column2 datatype constraints,
    ...
);

这里面column是数据列名,datatype 是该列里面存储的数据类型,constraints 是约束条件(常见的有 not null 非空, unique 唯一 等等)

-- 修改表结构
ALTER TABLE table_name ADD column_name datatype;
ALTER TABLE table_name MODIFY column_name new_datatype;
ALTER TABLE table_name DROP COLUMN column_name;

ADD 增加表的数据列

MODIFY 修改原有表的数据类型

DROP COLUNM 删除已有的数据列

-- 删除表或数据库
DROP TABLE table_name;
DROP DATABASE database_name;
-- 创建索引
CREATE INDEX index_name ON table_name (column_name);

SQL 的索引并不是C语言的*、@,而是一种优化途径:基于数据结构 B树 / B+树 存储列值和对应行位置的映射,帮助数据库快速定位数据而不用全局扫描,大幅提高 WHEREORDER BYJOIN 的速度(尽管功能和哈希表类似,但是B树主要是通过平衡树实现,虽然时间复杂度比哈希表更高,但是也支持范围、前缀、等值等更多操作)

像我的智选果实项目数据库脚本里面就可以通过

-- 为fruit_type列创建索引,加速按水果类型查询
CREATE INDEX idx_fruit_type ON fruit_weights (fruit_type);

-- 为timestamp列创建索引,加速时间范围查询
CREATE INDEX idx_timestamp ON fruit_weights (timestamp);

创建索引,加快下面的查询操作

-- 查找所有苹果记录
SELECT * FROM fruit_weights WHERE fruit_type = '苹果';

-- 查找特定日期范围内的记录
SELECT * FROM fruit_weights WHERE timestamp BETWEEN '2025-05-01' AND '2025-05-21';

2. 数据操作语言(DML)

用于操作数据:

-- 插入数据:INSERT
INSERT INTO table_name (column1, column2) VALUES (value1, value2);

-- 更新数据:UPDATE
UPDATE table_name SET column1 = value1 WHERE condition;

-- 删除数据:DELETE
DELETE FROM table_name WHERE condition;

3. 数据查询语言(DQL)

用于查询数据:

-- 基本查询
SELECT column1, column2 FROM table_name;

-- 带条件查询
SELECT * FROM table_name WHERE condition;

-- 排序
SELECT * FROM table_name ORDER BY column_name ASC/DESC;

-- 分组
SELECT column1, COUNT(*) FROM table_name GROUP BY column1;

-- 连接查询
SELECT a.column1, b.column2 
FROM table1 a 
JOIN table2 b ON a.key = b.key;

-- 子查询
SELECT * FROM table_name 
WHERE column_name IN (SELECT column_name FROM another_table);

-- 聚合函数
SELECT COUNT(*), AVG(column_name), SUM(column_name) FROM table_name;

-- 限制结果数量
SELECT * FROM table_name LIMIT 10;

4. 数据控制语言(DCL)

用于控制数据库访问权限:

-- 授权
GRANT privilege ON database.table TO user@host;

-- 撤销权限
REVOKE privilege ON database.table FROM user@host;

5. 事务控制语言(TCL)

用于管理事务:

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

-- 提交事务
COMMIT;

-- 回滚事务
ROLLBACK;

-- 设置保存点
SAVEPOINT savepoint_name;

-- 回滚到保存点
ROLLBACK TO SAVEPOINT savepoint_name;

在果实智选项目的duqu3.py脚本中,主要使用了DDL语句创建表结构和DML语句插入水果重量数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值