SQL数据库基础概念
SQL(Structured Query Language)是用于管理和操作关系型数据库的标准语言。关系型数据库以表格形式存储数据,表由行(记录)和列(字段)组成。
常见数据库管理系统
MySQL、PostgreSQL、Oracle、Microsoft SQL Server和SQLite是广泛使用的关系型数据库管理系统。它们都支持SQL标准,但可能有各自的扩展和语法差异。
基本SQL命令分类
数据定义语言(DDL) CREATE DATABASE创建数据库 CREATE TABLE创建表 ALTER TABLE修改表结构 DROP TABLE删除表
数据操作语言(DML) INSERT INTO插入数据 UPDATE更新数据 DELETE删除数据
数据查询语言(DQL) SELECT查询数据 FROM指定数据源 WHERE过滤条件
数据控制语言(DCL) GRANT授予权限 REVOKE撤销权限
创建和管理表
sql
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
基本查询操作
sql
SELECT * FROM users;
SELECT username, email FROM users WHERE id = 1;
SELECT * FROM users ORDER BY created_at DESC;
SELECT COUNT(*) FROM users;
表间关系
主键(Primary Key)唯一标识表中的每条记录 外键(Foreign Key)建立表之间的关联 JOIN操作关联多表数据
sql
SELECT orders.id, users.username
FROM orders
JOIN users ON orders.user_id = users.id;
数据完整性约束
NOT NULL确保列不能有NULL值 UNIQUE确保列中所有值都不同 PRIMARY KEY唯一标识表中的每条记录 FOREIGN KEY维护表间关系 CHECK确保列值满足特定条件 DEFAULT为列提供默认值
索引优化
sql
CREATE INDEX idx_username ON users(username);
索引可以加快查询速度但会增加插入和更新操作的开销。
事务控制
sql
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
事务确保一组操作要么全部成功,要么全部失败,保持数据一致性。
视图和存储过程
视图是虚拟表,存储查询结果 存储过程是预编译的SQL语句集合
sql
CREATE VIEW active_users AS
SELECT * FROM users WHERE last_login > DATE_SUB(NOW(), INTERVAL 30 DAY);

被折叠的 条评论
为什么被折叠?



