SQL(结构化查询语言)是一种用于管理和操作关系数据库的标准编程语言。以下是一些 SQL 的基础知识:
基本概念
数据库(Database):
存储和管理数据的容器。一个数据库可以包含多个表。表(Table):
数据以行和列的形式存储在表中。表的结构包括列(字段),每列有特定的数据类型。行(Row):
表中的每条记录。列(Column):
表中的字段,每个字段存储特定类型的数据。
数据类型
常见的数据类型包括:
- 整数类型:
INT
,BIGINT
,SMALLINT
,TINYINT
- 浮点数类型:
FLOAT
,DOUBLE
,DECIMAL
- 字符类型:
CHAR
,VARCHAR
- 文本类型:
TEXT
,BLOB
- 日期和时间类型:
DATE
,TIME
,DATETIME
,TIMESTAMP
SQL 操作
数据定义语言(DDL)
用于定义和管理数据库结构的命令。
创建数据库:
CREATE DATABASE database_name;
创建表:
CREATE TABLE table_name ( column1 datatype, column2 datatype, ... );
删除数据库:
DROP DATABASE database_name;
删除表:
DROP TABLE table_name;
修改表:
ALTER TABLE table_name ADD column_name datatype;
数据操作语言(DML)
用于数据的查询、插入、更新和删除。
插入数据:
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
查询数据:
SELECT column1, column2, ... FROM table_name WHERE condition;
更新数据:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
删除数据:
DELETE FROM table_name WHERE condition;
数据控制语言(DCL)
用于控制对数据库的访问权限。
授予权限:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host' IDENTIFIED BY 'password';
撤销权限:
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host';
事务控制语言(TCL)
用于管理事务,确保数据库操作的原子性、一致性、隔离性和持久性(ACID)。
开始事务:
START TRANSACTION;
提交事务:
COMMIT;
回滚事务:
ROLLBACK;
查询示例
简单查询:
SELECT * FROM employees;
带条件的查询:
SELECT * FROM employees WHERE department = 'Sales';
排序查询:
SELECT * FROM employees ORDER BY salary DESC;
聚合函数:
SELECT COUNT(*), AVG(salary) FROM employees WHERE department = 'Sales';
连接查询:
SELECT employees.name, departments.name FROM employees INNER JOIN departments ON employees.department_id = departments.id;