1.了解SQL
数据库:文件柜。
表:在文件柜中创建文件夹,储放某种特定类型的数据
列
行/数据库记录
主键:其值能唯一标识表中每一行
表中任何列都可以作为主键,只要满足以下特点:两一定两不允许
- 任意两行一定不具有相同主键;
- 每一行一定具有一个主键值;
- 主键值不允许修改或更新;
- 主键值不允许重用(如果某行从表中被删除,它的主键值不可被赋给新行)。
SQL(发音sequel或S-Q-L)是Structured Querty Language(结构化查询语句)的缩写。
2.检索数据
2.1 SELECT语句
语法规范:一般关键字大写,对列名、表名小写。
2.2 检索单个列
2.3 检索多个列
2.4 检索所有列
2.5 检索不同值
SELECT DISTINCT prod_id
FROM products
2.6 限制结果
LIMIT 3 OFFSET 5 --注释:第一个被检索的行是0行。故该语句会从第6行开始检索返回不超过3行的数据。
2.7 使用注释
--之后的,用来描述CREATE TABLE语句中的列很不错
/* 之间的,一般给代码注释 */
3.排序检索数据库
3.1&3.2 按单个列或多个列排序数据库
ORDER BY prod_name; /* 该语句应为SELECT语句中最后一个子句。查询多多个列时加上逗号与相应列即可 */
3.3 按列位置排序
SELECT prod_id, prod_price,prod_name
FROM Products
order by 2,3;
3.4 指定排序方向
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price DESC;
/*DESC关键词只应用到直接位于其前面的列。故要按多个排序且价格降序的话
ORDER BY prod_price DESC, prod_name;*/
4.过滤数据
4.1 使用WHERE子句
WHERE子句在表明(FROM子句)之后给出
4.2 WHERE子句操作符
表4-1WHERE子句操作符
PS:如果将值与字符串类数据比较时,必须加上限定引号。与数值比较时不用。
例如:WHERE ven_id != 'DLL01';
WHERE prod_price <=10;
范围检查用法:
WHERE prod_price BETWEEN 5 AND 10;
5.高级数据过滤
5.1 组合WHERE子句
关于AND 和OR的使用。
优先级:圆括号>AND>OR
PS:任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。使用圆括号没什么坏处,它能消除歧义。
5.2 IN操作符
功能与OR类似,但有多组时更直观清晰、性能好执行的快、最大优点可以包含其他SELEST语句(见11章)
用法:WHERE vend_id IN('DLL01','BRS01')
5.3 NOT操作字符
功能与!=和<>类似,简单的WHERE子句中没有优势,复杂的子句中可与IN联合使用。
用法:WHERE NOT vend_id = 'DLL01'
6.用通配符进行过滤
6.1 LIKE操作符
%通配符:表示任何字符出现任意次数
****_ 通配符:表示任何字符出现1次 (只匹配单个字符串)
[] 通配符:必须匹配指定位置的一个字符。例如找出所有以J或M开头的联系人:LIKE ‘[JM]%’
例子:
SELECT prod_id, prod_name
FROM Products
WHERE prod_name LIKE '_ inch teddy bear';
- 联结、