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)。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM