SQL学习之–《SQL必知必会》
《SQL必知必会》是入门SQL的一本绝佳教材,简洁明了,当然学习还是要做笔记的!
MySQL教程
MARKDOWN教程
了解数据库
其实我们一直都在使用数据库,只是我们不自知,像我们要在登录一些网站,便需要依靠数据库验证用户名和密码。
数据库(database)是一个以某种有组织的方式存储的数据集合。数据库就如同一个文件柜,在这个柜子中有很多文件夹,这个文件夹就是表(table),代表某种特定类型数据的结构化清单。这里的类型并非是数据类型的意思,而是顾客的清单和订单的清单,这样的类型的区别。最初对我是有些混淆的。一个数据库中不能有相同的表名,不同的数据库是可以有的。表中当然有列和行,列代表表中的字段,一列的数据类型是固定的。 行则是表中的一个记录。
还有两个较为重要的概念:
- 主键(primary key):一列(或一组列),其值能够唯一标识表中每一行。
- 外键(foreign key):表A的主键列,在表B中有一列L其取值于主键列,把两个表关联在一起,列L是表B的外键。
用本书中用到的5个表,并利用MySQL workbench导出其关系图,如下图:
表通过主键和外键进行连接。(导出方法链接。)
SELECT语句
检索数据
检索一列:
SELECT prod_name
FORM Products;
检索多列,逗号分隔:
SELECT prod_id,prod_name
FROM Products;
检索全部列:
SELECT *
FROM Products;
检索不同的值:
SELECT DISTINCT 一行或两行
检索前几行,后几行:
SELECT 列名
FROM 表名
LIMIT 5; #前五行,一个SELECT语句结束后加分号
LIMIT 5 OFFSET 5; #后五行,偷懒的不重复前两行的写法
排序数据
SELECT 列名
FROM 表名
ORDER BY 某一列或多列; #必须放在select语句的最后一行,多列时先按第一列排,再按第二列...
关键字 DESC降序排列,ASC升序排列;
过滤数据
SELECT 列名
FROM 表名
WHERE 条件; #例 prod_price=3.4
WHERE 字句操作符:
操作符 | 说明 | 操作符 | 说明 |
---|---|---|---|
= | 等于 | > | 大于 |
<> | 不等于 | >= | 大于等于 |
!= | 不等于 | !> | 不大于 |
< | 小于 | BETWEEN | 在指定的两个值之间(要用AND) |
<= | 小于等于 | IS NULL | 为NULL值 |
!< | 不小于 |
在建立这个表中遇到了一些符号的转义,在此可以找到。