SQL必知必会

数据库基础——数据库术语
数据库:数据库是一个以某种有组织的方式存储的数据集合。
数据库(database)
保存有组织的数据的容器(通常是一个文件或一组文件)。
数据库软件应称为数据库管理系统(DBMS)。数据库是通过 DBMS 创建和操纵的容器。
表(table)
某种特定类型数据的结构化清单。
模式(schema)
关于数据库和表的布局及特性的信息。
表由列组成。列存储表中某部分的信息。
列(column)
表中的一个字段。所有表都是由一个或多个列组成的。
正确地将数据分解为多个列极为重要。
数据库中每个列都有相应的数据类型。数据类型(datatype)定义了列可
以存储哪些数据种类。
数据类型
所允许的数据的类型。每个表列都有相应的数据类型,它限制(或允
许)该列中存储的数据。
行(row)
表中的一个记录。
表中每一行都应该有一列(或几列)可以唯一标识自己。
主键(primary key)
一列(或一组列),其值能够唯一标识表中每一行。
表中的任何列都可以作为主键,只要它满足以下条件:
 任意两行都不具有相同的主键值;
 每一行都必须具有一个主键值(主键列不允许 NULL 值);
 主键列中的值不允许修改或更新;
 主键值不能重用(如果某行从表中删除,它的主键不能赋给以后的新行)。

SQL(发音为字母 S-Q-L或 sequel)是 Structured Query Language(结构
化查询语言)的缩写。SQL是一种专门用来与数据库沟通的语言。

编写 SQL语句需要良好地理解基本数据库设计。

如果使用 DISTINCT 关键字,它必须直接放在列名的前面。

SELECT prod_name
FROM Products
LIMIT 5 OFFSET 5;
所以, LIMIT 指定返回的行数。 LIMIT 带的 OFFSET 指定从哪儿开始。

请注意, DESC 是 DESCENDING 的缩写,这两个关键字都可以使用。与 DESC
相对的是 ASC (或 ASCENDING ),在升序排序时可以指定它。但实际上,
ASC 没有多大用处,因为升序是默认的(如果既不指定 ASC 也不指定
DESC ,则假定为 ASC )。

SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY 2, 3;
SELECT 清单中指定的是选择列的相对位置而不是列名。

通配符搜索只能用于文本字段(字符串),非文本数据类型字段不能使用通配符搜索。
需要特别注意,除了能匹配一个或多个字符外, % 还能匹配 0 个字符。 %代表搜索模式中给定位置的 0个、1个或多个字符


另一个有用的通配符是下划线( _ )。下划线的用途与 % 一样,但它只匹配单个字符,而不是多个字符。

使用通配符的技巧


concat()函数
1、功能:将多个字符串连接成一个字符串。
2、语法:concat(str1, str2,...)
返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null

做好注释




分组是使用 SELECT 语句的 GROUP BY 子句建立的

GROUP BY 子句中列出的每一列都必须是检索列或有效的表达式(但不能是聚集函数)。如果在 SELECT 中使用表达式,则必须在 GROUP BY子句中指定相同的表达式。不能使用别名。
GROUP BY 子句必须出现在 WHERE 子句之后, ORDER BY 子句之前。
关键是,相同的数据出现多次决不是一件好事,这是关系数据库设计的
基础。关系表的设计就是要把信息分解成多个表,一类数据一个表。各
表通过某些共同的值互相关联(所以才叫关系数据库)。
总之,关系数据可以有效地存储,方便地处理。因此,关系数据库的可
伸缩性远比非关系数据库要好。

自联结(self-join)、自然联结(natural join)和外联结(outer join)

目前为止使用的联结称为等值联结(equijoin),它基于两个表之间的相等测试。这种联结也称为内联结(inner join)。










原文地址:https://www.cnblogs.com/apeandcat/p/10363878.html