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