SQL语句整理
1. 数据库和数据表的操作
1.1 创建数据库
CREATE DATABASE database_name;
说明:用于创建新的数据库,其中database_name为数据库名称。
1.2 删除数据库
DROP DATABASE database_name;
说明:用于删除已有的数据库,其中database_name为数据库名称。
1.3 创建数据表
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
.....
);
说明:用于创建新的数据表,其中table_name为数据表名称,column1、column2、column3为数据表的列名,datatype为数据类型。
1.4 删除数据表
DROP TABLE table_name;
说明:用于删除已有的数据表,其中table_name为数据表名称。
1.5 修改数据表
ALTER TABLE table_name ADD COLUMN column_name datatype;
ALTER TABLE table_name DROP COLUMN column_name;
ALTER TABLE table_name MODIFY COLUMN column_name datatype;
说明:用于修改已有的数据表,其中ADD COLUMN用于添加新的列,DROP COLUMN用于删除列,MODIFY COLUMN用于修改列的数据类型。
2. 数据的插入,更新与删除
2.1 插入数据
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
说明:用于向数据表中插入新的一行数据,其中table_name为数据表名称,column1、column2、column3为数据表的列名,value1、value2、value3为要插入的值。
2.2 更新数据
UPDATE table_name SET column1 = value1, column2 = value2, ...
WHERE condition;
说明:用于更新已有的数据,其中table_name为数据表名称,column1、column2为数据表的列名,value1、value2为要更新的值,WHERE condition为更新数据的条件。
2.3 删除数据
DELETE FROM table_name WHERE condition;
说明:用于删除已有的数据,其中table_name为数据表名称,WHERE condition为删除数据的条件。
3. 数据完整性的实现
3.1 主键
CREATE TABLE table_name (
column1 datatype PRIMARY KEY,
column2 datatype,
column3 datatype,
.....
);
说明:用于创建带有主键的数据表,其中column1为主键列。
3.2 外键
CREATE TABLE table_name1 (
column1 datatype PRIMARY KEY,
column2 datatype,
column3 datatype,
.....
);
CREATE TABLE table_name2 (
column1 datatype PRIMARY KEY,
column2 datatype,
column3 datatype,
table_name1_column1 datatype,
FOREIGN KEY (table_name1_column1) REFERENCES table_name1(column1)
);
说明:用于创建带有外键的数据表,其中table_name2的table_name1_column1列为外键,REFERENCES用于指定引用的数据表和列。
3.3 唯一约束
CREATE TABLE table_name (
column1 datatype UNIQUE,
column2 datatype,
column3 datatype,
.....
);
说明:用于创建带有唯一约束的数据表,其中column1列的值必须是唯一的。
3.4 非空约束
CREATE TABLE table_name (
column1 datatype NOT NULL,
column2 datatype,
column3 datatype,
.....
);
说明:用于创建带有非空约束的数据表,其中column1列的值不能为空。
4. 单表查询
4.1 SELECT语句
SELECT column1, column2, ...
FROM table_name
WHERE condition
GROUP BY column1
HAVING condition
ORDER BY column1 ASC|DESC;
说明:用于从数据表中查询数据,其中column1、column2为要查询的列名,table_name为数据表名称,WHERE condition为查询条件,GROUP BY column1为分组条件,HAVING condition为分组条件的筛选条件,ORDER BY column1 ASC|DESC为排序条件。
4.2 聚合函数
SELECT COUNT(column1), SUM(column1), AVG(column1), MIN(column1), MAX(column1)
FROM table_name;
说明:用于对数据进行聚合计算,其中COUNT用于计算行数,SUM用于计算数据总和,AVG用于计算平均值,MIN用于计算最小值,MAX用于计算最大值。
4.3 LIKE操作符
SELECT column1, column2, ...
FROM table_name
WHERE column1 LIKE pattern;
说明:用于查询与指定模式匹配的数据,其中column1为要查询的列名,table_name为数据表名称,WHERE column1 LIKE pattern为查询条件。
4.4 LIMIT语句
SELECT column1, column2, ...
FROM table_name
LIMIT start_row, num_of_rows;
说明:用于限制查询结果的行数,其中start_row为开始查询的行号,num_of_rows为要查询的行数。
5. 多表查询
5.1 JOIN语句
SELECT column1, column2, ...
FROM table1
JOIN table2
ON table1.column1 = table2.column2
WHERE condition;
说明:用于连接多个数据表进行查询,其中table1、table2为数据表名称,ON用于指定连接条件,WHERE condition为查询条件。
5.2 INNER JOIN语句
SELECT column1, column2, ...
FROM table1
INNER JOIN table2
ON table1.column1 = table2.column2
WHERE condition;
说明:用于连接多个数据表进行查询,同时只返回满足连接条件的行。
5.3 LEFT JOIN语句
SELECT column1, column2, ...
FROM table1
LEFT JOIN table2
ON table1.column1 = table2.column2
WHERE condition;
说明:用于连接多个数据表进行查询,同时返回左表中所有行以及与之匹配的右表行。
5.4 RIGHT JOIN语句
SELECT column1, column2, ...
FROM table1
RIGHT JOIN table2
ON table1.column1 = table2.column2
WHERE condition;
说明:用于连接多个数据表进行查询,同时返回右表中所有行以及与之匹配的左表行。
6. 视图与索引
6.1 CREATE VIEW语句
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
说明:用于创建视图,其中view_name为视图名称,SELECT语句用于指定视图的列和数据表以及查询条件。
6.2 CREATE INDEX语句
CREATE INDEX index_name ON table_name(column1);
说明:用于为数据表中的列创建索引,其中index_name为索引名称,column1为要索引的列名。
7. 数据库设计
7.1 数据库范式
第一范式(1NF):每列都是不可分割的原子数据项。
第二范式(2NF):每个非主键列都必须完全依赖于主键。
第三范式(3NF):非主键列之间不存在依赖关系。
7.2 数据库设计步骤
确定需求:确定数据库的目标和需求。
概念设计:设计数据模型,包括实体、关系和属性等。
逻辑设计:将概念设计转化为逻辑模型,包括实体-关系模型和数据规范等。
物理设计:将逻辑模型转化为物理模型,包括建立数据表、索引和视图等。
数据实现:进行数据导入、测试和优化等。