摘抄自菜鸟教程SQL部分
简单语法
use RUNOOB; 命令用于选择数据库。
set names utf8; 命令用于设置使用的字符集。
SELECT * FROM Websites; 读取数据表的信息。
从 “Websites” 表中选取 “name” 和 “country” 列:select name,country from websites;
distinct 关键词用于返回唯一不同的值。
从 “Websites” 表的 “country” 列中选取唯一不同的值,也就是去掉 “country” 列重复值:select distinct country from websites;
WHERE 子句用于过滤记录,提取那些满足指定条件的记录。
从 “Websites” 表中选取国家为 “CN” 的所有网站:select * from websites where country = ‘cn’;
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值字段,请不要使用引号。
select * from websites where id=1;
下面的运算符可以在 WHERE 子句中使用:
运算符 | 描述 |
---|---|
=、>、<、>=、<=、!= | 略 |
between | 在某个范围内 |
like | 搜索某种模式 |
in | 指定针对某个列的多个可能值 |
SQL AND & OR 运算符:
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
从 “Websites” 表中选取国家为 “CN” 且alexa排名大于 “50” 的所有网站:select * from websites where country=‘cn’ and alexa > 50;
从 “Websites” 表中选取国家为 “USA” 或者 “CN” 的所有客户:select * from websites where country=‘cn’ or country=‘usa’;
从 “Websites” 表中选取 alexa 排名大于 “15” 且国家为 “CN” 或 “USA” 的所有网站:select * from websites where alexa > 15 and (country = ‘cn’ or country = ‘usa’);
ORDER BY 关键字用于对结果集进行排序。ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。ORDER BY 关键字默认按照升序(ASC)对记录进行排序。如果需要按照降序(DESC)对记录进行排序。
从 “Websites” 表中选取所有网站,并按照 “alexa” 列排序:select * from websites order by alexa;
INSERT INTO 语句用于向表中插入新记录。
INSERT INTO 语句可以有两种编写形式。第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name VALUES (value1,value2,value3,…);
第二种形式需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,…)
VALUES (value1,value2,value3,…);
向 “Websites” 表中插入一个新行
INSERT INTO Websites (name, url, alexa, country)
VALUES (‘百度’,‘https://www.baidu.com/’,‘4’,‘CN’);
插入一个新行,但是只在 “name”、“url” 和 “country” 列插入数据(id 字段会自动更新)
INSERT INTO Websites (name, url, country)
VALUES (‘stackoverflow’, ‘http://stackoverflow.com/’, ‘IND’);
UPDATE 语句用于更新表中的记录。
UPDATE table_name SET column1 = value1, column2 = value2, … WHERE condition;
WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!
把 “菜鸟教程” 的 alexa 排名更新为 5000,country 改为 USA
UPDATE Websites SET alexa=‘5000’, country=‘USA’ WHERE name=‘菜鸟教程’;
DELETE 语句用于删除表中的记录。
DELETE FROM table_name WHERE condition;
WHERE 子句规定哪条记录或者哪些记录需要删除。如果您省略了 WHERE 子句,所有的记录都将被删除!
从 “Websites” 表中删除网站名为 “Facebook” 且国家为 USA 的网站
DELETE FROM Websites WHERE name=‘Facebook’ AND country=‘USA’;
在不删除表的情况下,删除表中所有的行。这意味着表结构、属性、索引将保持不变:
DELETE FROM table_name;