SQL 是用于访问和处理数据库的标准的计算机语言
数据库表
一个数据库通常包含一个或多个表。每个表由一个名字标识(例如:"Websites"),表包含带有数据的记录(行)
use RUNOOB; 命令用于选择数据库。
set names utf8; 命令用于设置使用的字符集。
SELECT * FROM Websites; 读取数据表的信息。
一些最重要的 SQL 命令
SELECT - 从数据库中提取数据
UPDATE - 更新数据库中的数据
DELETE - 从数据库中删除数据
INSERT INTO - 向数据库中插入新数据
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
SELECT: 用于从数据库中选取数据、结果被存储在一个结果表中、称为结果集
SELECT column_name,column_name
FROM table_name;
SELECT DISTINCT: 用于返回唯一不同的值
SELECT DISTINCT column_name,column_name
FROM table_name;
WHERE: 用于过滤记录
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
运算符 | 描述 |
---|---|
= | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大等于 |
<= | 小等于 |
BETWEEN | 在某个范围内 |
LIKE | 模糊查询 |
IN | 指定针对某个列的多个可能值 |
AND & OR 运算符: 用于基于一个以上的条件对记录进行过滤
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value AND(OR) column_name operator value2;
ORDER BY: 用于对结果集进行排序
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;
ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字
INSERT INTO: 用于向表中插入新记录
INSERT INTO table_name
VALUES (value1,value2,value3,...);
或
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
UPDATE: 用于更新表中的记录
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
DELETE: 用于删除表中的记录
DELETE FROM table_name
WHERE some_column=some_value;
LIKE 操作符: 用于在 WHERE 子句中搜索列中的指定模式
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE zhang;
通配符: 用于替代字符串中的任何其他字符
通配符 | 描述 |
---|---|
% | 替代 0 个或多个字符 |
_ | 替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist]或[!charlist] | 不在字符列中的任何单一字符 |
IN 操作符: 允许在 WHERE 子句中规定多个值
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);
BETWEEN 操作符: 用于选取介于两个值之间的数据范围内的值
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
别名: 可以为表名称或列名称指定别名
SELECT column_name AS alias_name
FROM table_name;
SELECT column_name(s)
FROM table_name AS alias_name;
SQL JOIN: 用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段
- INNER JOIN:如果表中有至少一个匹配,则返回行
- LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
- RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
- FULL JOIN:只要其中一个表中存在匹配,则返回行
INNER JOIN: 在表中存在至少一个匹配时返回行
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
LEFT JOIN: 从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;
RIGHT JOIN: 从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;
FULL OUTER JOIN: 只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行.结合了 LEFT JOIN 和 RIGHT JOIN 的结果。
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;