SQL必知必会【第五版】
第1课 了解SQL
基础概念回顾
- 数据库 (database):保存有组织的数据的容器【通常是一个文件或者一组文件】;
- 表(table):某种特定类型数据的结构化清单;
- 模式(schema):关于数据库和表的布局及特性的信息;
- 列(column):表中的一个字段,所有表都是由一个或多个列组成的;
- 数据类型(datatype):允许什么类型的数据。每个表列都有相应的数据类型,它限制【或允许】该列中存储的数据;
- 行(row):表中的一个记录(record);
- 主键(primary key):一列【或几列】其值能够唯一标识表中每一行;
- SQL(structured query language):结构化查询语言的缩写,是一种专门用来与数据库沟通的语言。
提示【tips】
数据分解
正确地将数据分解为多个列极为重要
通过分解数据,才有可能利用特定的列对数据进行分类和过滤
应该总是定义主键
任意两行都不具有相同的主键值
每一行都必须具有一个主键值【主键列不允许空值null】
主键列的值不允许修改或更新
主键值不能重用【如果某行从表中删除,它的主键不能赋给以后的新行】
第2课 检索数据
基础概念回顾
- 关键字 (keyword):作为SQL组成部分的保留字,关键字不能用作表或列的名字;
- 通配符(wildcard):用来检索出名字未知的列的特殊字符;
提示【tips】
未排序数据
Select未指定排序则查询结果
- 可能是按照数据被添加到表中的顺序,也可能不是
- 只要数据返回相同的行就是正常的
结束SQL语句
多条sql语句必须以分号;分隔
单条sql语句也建议加上分号;
SQL语句的大小写
sql语句不区分大小写
select、Select、SELECT都是相同的
建议对SQL的关键字进行大写,对表名、列名进行小写【更易于阅读和调试】
使用空格
在处理sql语句时,其中所有的空格都被忽略
sql语句可以写成长长的一行,也可以分写在多行
建议对SQL语句分成多行【更容易阅读和调试】
SELECT prod_name
FROM Products;
SELECT prod_name FROM Products;
SELECT
prod_name
FROM
Products;
以上三种写法的作用是一样的
当心逗号
在选择多个列时,一定要在列名之间加上逗号,
但是最后一个列名后不加【否则将出现错误】
检索未知列
使用通配符(星号)检索每一列,能检索出名字未知的列
使用通配符(星号)通常会降低检索速度和应用程序的性能
不能部分使用distinct
distinct关键字作用于所有的列,不仅仅是跟在其后的那一列
SELECT DISTINCT vend_id, prod_price FROM Products;
是列名为vend_id, prod_price组合起来的不唯一结果