全部博文(68)
分类: Mysql/postgreSQL
2012-12-10 21:51:04
SQL必知必会(第3版)
Ben Forta著 钟鸣 刘晓霞 等译
人民邮电出版社
一.数据库和数据库软件
数据库是保存有组织的数据的容器(通常是一个或一组文件)。数据库软件,即数据库管理系统(DBMS),数据库通过DBMS来操作。常用的DBMS有:IMB DB2,Microsoft SQL Server, Microsoft Access, MySQL, Oracle, PostgreSQL, Sybase Adaptive Server.
二.表,列,行,主键
表是某种特定类型数据的结构化清单。在同个数据库中,每个表都有一个唯一的名字。
表由列构成,列是表中的一个字段。
表中的数据是按行存储的,一行即为表中的一个记录。
主键是特殊的列,其值能够唯一标识表中的行。表中任何行都可以作为主键,只要满足下列条件:
A. 任意两行都不具有相同的主键值;
B. 其值不允许是NULL值,即每个行都必须有主键值;
C. 其值不允许修改或更新;
D. 其值不能重复,如果某行从表中删除,它的主键值不能赋给以后的新行。
三.SELECT 语句及其应用
1. 检索单个列
SELECT prod_name
FROM Products;
2. 检索多个列
SELECT id, name, price
FROM Products;
3. 检索所有列
SELECT *
FROM products;
4. 排列数据(ORDER BY 必须是在语名最后)
SELECT name
FROM Products
ORDER BY name;
5. 按多个列排序(先按第一列排,第一列中有相同的再按第二列排,以此类推)
SELECT id, name, price
FROM Products
ORDER BY price, name;
6. 按列位置排序
SELECT id, price, name
FROM Products
ORDER BY 2, 3;
7. 指定排序方向(DESC是降序,ASC是升序,默认是ASC)
SELECT id, price, name
FROM Products
ORDER BY price DESC;
8. 过滤数据(使用WHERE 子句)
SELECT name, price
FROM Products
WHERE Price = 3.49;
Where子句操作符
= | 等于 |
< > | 不等于 |
!= | 不等于 |
< | 小于 |
<= | 小于等于 |
!< | 不小于 |
> | 大于 |
>= | 大于等于 |
!> | 不大于 |
BETWEEN | 在指定两个值之间 |
IS NULL | 为NULL值 |
9. 组合where 子句(AND, OR, IN , NOT)
--同时成立
SELECT id, price, name
FROM Products
WHERE id = ‘DLL01’ AND price <= 4;
--其中一个成立
SELECT id, price, name
FROM Products
WHERE id = ‘DLL01’ OR id = ‘DLL02’ ;
--AND OR组合,注意计算优先级,加()明确
SELECT id, price, name
FROM Products
WHERE ( id = ‘DLL01’ OR id = ‘DLL02’ )
AND price <= 4
--指定条件范围
SELECT id, price, name
FROM Products
WHERE id IN ( ‘DLL01’, ‘DDL02’)
ORDER BY name;
--否定后跟条件
SELECT id, price, name
FROM Products
WHERE NOT id = ‘DLL01’
ORDER BY name;