SQL学习笔记(一)
什么是SQL
-- SQL读作sequel,是结构和查询语言(Structured Query Language)的缩写。SQl有如下优点:
-- SQL不是某个特定数据库供应商专有的语言,几乎所有DBMS都支持SQL,学习此语言使你几乎能与所有数据库打交道
-- SQL简单易学。它的语句全都是由很强描述性的英语单词组成的,而且这些单词数目不多
-- SQL是一种强而有力的语言,灵活使用其语言元素可以进行非常复杂和高级的数据库操作
你需要了解的几个概念:
-- 表:某种特定类型数据的结构化清单
-- 列:表中的一个字段,所有表都是由一个或多个列组成的。
-- 数据类型:所容许的数据的类型,它限定该列中存储的数据。
-- 行:表中的一个记录
-- 主键:一列或一组列,其值能够唯一标示表中的每个行。唯一标识表中每行的这个列成为主键。
检索数据(SELECT)
-- 检索一个列:
SELECT prod_name
FROM Products;
-- 检索多个列:
SELECT prod_name, prod_id, prod_price
FROM Products;
-- 检索所有列:
SELECT *
FROM Products;
排序检索数据(ORDERBY)
-- 按底层表出现的顺序:
SELECT prod_name
FROM Products;
-- 对prod_name列以字母顺序排序数据
SELECT prod_name
FROM Products
ORDER BYprod_name;
-- 按多个列排序
SELECT prod_id, prod_price, prod_name
FROMProducts
ORDER BY prod_price,prod_name;
只在多个具有与相同prod_price值时才对产品按prod_name进行排序
-- 按列位置排序
SELECTprod_id, prod_price, prod_name
FROMproducts
ORDER BY3,2;
先按第3列prod_name排序,再按第2列prod_price排序
-- 指定排序方向
SELECT prod_id,prod_price, prod_name
FROMProducts
ORDER BY prod_price DESC;
默认排序时升序(从A到Z),如果要降序则加上关键字DESC
-- DESC关键字只应用于它前面的列名
SELECT prod_id,prod_price, prod_name
FROMProducts
ORDER BYprod_price DESC, prod_name ;
price以降序排,name仍然按升序,因此想在多个列进行降序排序就必须对每个列指定DESC关键字
-- 默认情况下,以上的排序都是不区分大小写的,也就是说a和A是同一个先后的
过滤数据(WHERE)
-- 从表中检索两个列,返回prode_price值为3.49的行
SELECT prod_name,prod_price
FROM Products
WHERE prod_price =3.49;
-- 同时使用ORDER BY和WHERE子句时,应该让ORDERBY位于WHERE之后,否则出错。
-- 条件操作符
SELECT prod_name,prod_price
FROM Products
WHERE prod_price< 10;
列出价格小于10的所有产品
-- 不匹配检查
SELECT prod_id,prod_price
FROMProducts
WHERE prod_id <> ‘DLL01’;
列出不是DDL01供应商的产品
-- 范围检查
SELECT prod_name,prod_price
FROMProducts
WHEREprod_price BETWEEN 5 AND 10;
检索出价格在5美元到10美元的所有产品
-- 空值检查
SELECT prod_name,prod_price
FROMProducts
WHEREprod_price IS NULL;
返回没有价格的所有产品