1.最重要的 SQL 命令
- SELECT - 从数据库中提取数据
- UPDATE - 更新数据库中的数据
- DELETE - 从数据库中删除数据
- INSERT INTO - 向数据库中插入新数据
- CREATE DATABASE - 创建新数据库
- ALTER DATABASE - 修改数据库
- CREATE TABLE - 创建新表
- ALTER TABLE - 变更(改变)数据库表
- DROP TABLE - 删除表
- CREATE INDEX - 创建索引(搜索键)
- DROP INDEX - 删除索引
2.语法详细讲解
1)SELECT DISTINCT 语句
在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。
DISTINCT 关键词用于返回唯一不同的值。
--选择唯一不同的值,去掉重复的值
SELECT DISTINCT country FROM websites;
2)WHERE 子句
WHERE 子句用于提取那些满足指定条件的记录。
文本字段 vs. 数值字段:
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。
在上个实例中 'CN' 文本字段使用了单引号。
如果是数值字段,就不要使用引号。
--where限定条件查找指定元素
SELECT name FROM websites where id = 1;
SELECT * FROM websites where country = 'CN';
WHERE 子句中的运算符:
BETWEEN 在某个范围内 LIKE 搜索某种模式 IN 指定针对某个列的多个可能值
3)AND & OR 运算符
用于基于一个以上的条件对记录进行过滤。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
--AND
SELECT * FROM websites WHERE alexa >= 3 AND country = 'USA';
--OR
SELECT * FROM websites WHERE alexa > 20 OR id = 2;
--AND和OR
SELECT * FROM websites WHERE alexa >15 AND (id = 2 OR id = 4);
4)ORDER BY 关键字
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。
ORDER BY 关键字默认按照升序(自上往下越来越大)对记录进行排序。如果需要按照降序(自上往下越来越小)对记录进行排序,您可以使用 DESC 关键字。
ORDER BY 多列:
ORDER BY 多列的时候,先按照第一个列明排序,在按照第二个列明排序;如下面代码:
- 1)、先将country值这一列排序,同为CN的排前面,同属USA的排后面;
- 2)、然后在同属CN的这些多行数据中,再根据alexa值的大小排列。
- 3)、ORDER BY 排列时,不写明ASC(升序) DESC(降序)的时候,默认是ASC(升序)。
ORDER BY 多列的时候,例如:
order by A,B 这个时候都是默认按升序排列 order by A desc,B 这个时候 A 降序,B 升序排列 order by A ,B desc 这个时候 A 升序,B 降序排列
DESC只对它之前的列起作用。
--升序(自上而下)
SELECT * FROM websites ORDER BY alexa;
--降序(自上而下)
SELECT * FROM websites ORDER BY alexa DESC;
--多列
SELECT * FROM websites ORDER BY country,alexa;
5)INSERT INTO 语句
有两种编写形式:
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可,需要输入所有列的值:
INSERT INTO table_name
VALUES (value1,value2,value3,...);
第二种形式需要指定列名及被插入的值,需要输入指定列的值:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
INSERT INTO websites VALUES (6,','','4','CN');
6)UPDATE 语句
UPDATE 语句用于更新表中已存在的记录。
SET参数为变更的值,WHERE为限定条件。
UPDATE websites SET alexa='5000',country='CAN' WHERE name='菜鸟教程';
7)DELETE 语句
DELETE 语句用于删除表中的行。
DELETE FROM websites WHERE id = 6;