数据库总结(二)

1.数据库系统(DBS)包括 数据库管理系统(DBMS)和数据库(DB)
RDBMS是指关系型数据库管理系统

2.SQL语句对大小写不敏感

3.unique指唯一,而Primary Key不仅指唯一,而且不能为空,一般认为:primary key = unique + not null
在逻辑设计上Primary Key被用作记录标识,而unique只是为了保证唯一性。一个表中只能有一个Primary Key,但可以有多个unique
同时存在

4.SQL(结构化查询语言)包括数据操纵语言(DML)和数据定义语言(DDL)

DML 主要包括:
SELECT:从数据库表中获取数据
DELETE:从数据库表中删除数据
UPDATE:更新数据库表中的数据
INSERT INTO:向数据库表中插入数据(新加一行)

DDL 主要包括:
DDL使我们有能力创建和删除表格,我们也可以定义索引(键),规定表之间的链接,以及施加表之间的约束

CREATE DATABASE:创建数据库
ALTER DATABASE:修改数据库

CREATE TABLE:创建数据库表
ALTER TABLE:更改数据库表

DROP TABLE:删除表

CREATE INDEX:创建索引(搜索键)
DROP INDEX:删除索引

5.SELECT语句
一般形式:SELECT 列名称 FROM 表名称 星号(*)是选取所有列的快捷方式
查询的结果存储在一个结果表中,称为结果集

扫描二维码关注公众号,回复: 3439285 查看本文章

DISTINCT可以保证选取的列中不包含重复值,一般形式如下:
SELECT DISTINCT 列名称 FROM 表名称 (ALL允许重复值,一般默认情况下为ALL)

WHERE子句用于规定选取的标准
一般使用形式为:SELECT 列名称 FROM 表名称 WHERE 列名称 运算符 值

运算符有:<>不等于(某些版本SQL中,可写为!=) BETWEEN 在某个范围内 LIKE 搜索某种模式

值:文本值须用单引号(一般双引号也可接受)环绕,数值则不能使用引号

ORDER BY语句用于根据指定列对结果集进行排序(默认为升序ASC,降序为DESC)
当ORDER BY语句指定的第一列的值相等或为空时,则按照第二列来对这些相等的记录排序
ORDER BY只能用于最终的外层查询

6.INSERT INTO语句用于向表中插入新的行
一般形式为:
INSERT INTO 表名称 VALUES(值1,值2…)

也可以指定相应的列:
INSERT INTO 表名称 (列名称1,列名称2…)VALUES(值1,值2…)
这里的值若为文本值还是须使用引号环绕,列名称则不用

7.UPDATE用于修改表中的数据
一般格式为:UPDATE 表名称 SET 列名称1 = 新值1,列名称2 = 新值2 … WHERE 列名称 = 某值

8.DELETE用于删除表中的行
一般形式为:
DELETE FROM 表名称 WHERE 列名称 = 某值

删除所有的行:
DELETE FROM 表名称 或 DELETE * FROM 表名称
这时表的结构,属性和索引都是完整的

9.LIKE可用于搜索指定的模式,如:
SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE 某种模式 (NOT LIKE表示不包含或不匹配)

10.通配符往往和LIKE一起使用,主要包括:
%:代替一个或多个字符
_:仅代替一个字符
[charlist]:[]内的任何单一字符
[!charlist] 或 [^charlist]:不在[]内的任何单一字符

11.IN可以在WHERE子句中规定多个值,如下:
SELECT * FROM Persons
WHERE LastName IN (‘Adams’,‘Carter’) 姓氏为 Adams 和 Carter 的人都会被选中

12.BETWEEN 值1 AND 值2 选取介于两值之间的值,可以是数值,文本或日期
NOT BETWEEN 值1 AND 值2 表示不在范围之中的值

13.Alias 即别名

SELECT column_name(s)
FROM table_name
AS alias_name 表取别名

SELECT column_name AS alias_name
FROM table_name 列取别名

LOWER(列名) 表示用小写表示相应的列

14.GROUP BY语句用于结合合计函数(SUM),根据一个或多个列对结果集进行分组

聚集函数不能在WHERE子句中使用,增加了HAVING字句,如:
SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000

15.连接查询:

等值和非等值连接:选定一张表中的一行,然后逐个与另一张表中的每一行相比较,若满足条件,则将两行连接在一起作为结果表的一行。若把目标列重复的属性列去掉,则为自然连接

自身连接:同一张表取不同的别名,然后利用这些不同的别名实现的连接查询就是自身连接

连接可分为内连接(INNER JOIN或JOIN)和外连接(LEFT JOIN, RIGHT JOIN, FULL JOIN),默认情况下为内连接。
内连接只有相互匹配的行才会列出,左外连接列出左边表的全部行,右外连接列出右边表的全部行,FULL全部列出

当连接的表超过两个时,现将其中两个连接得到一个结果表,然后这个结果表再与下一个表连接

16.UNION用于合并两个或多个结果集,用于合并的结果表必须拥有相同的列数,并且相对应的列的类型必须相似。
UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名,默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

17.SELECT INTO
INTO后面跟的是新表名,即SELECT选取的结果会形成一张新表。若这张新创建的表是在其他数据库中的,则要用IN子句说明,如:IN ‘Backup.mdb’

18.CREATE DATABASE 创建数据库,如:CREATE DATABASE my_db
CREATE TABLE 创建数据库中的表,一般形式如下:
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
。。。(最后一个不要逗号)
) (这里是括号,结尾没有分号)

19.约束
NOT NULL:不接受控制,若为空,无法加入表中

20.CREATE INDEX用于创建索引,索引对用户不可见,可以加快数据的查询,但更新数据时也会因索引而需要更多的时间,
所以,一般只在常被搜索的列(表)上创建索引

一般形式为:CREATE INDEX 列索引名 ON 表名称(列名称1 [DESC], 列名称2 [DESC]…)

CREATE UNIQUE INDEX用于创建唯一的索引,唯一的索引意味着两行不能拥有相同的索引值

CREATE UNIQUE CLUSTERED INDEX 创建唯一聚集索引

21.DROP用于删除索引,表和数据库
DROP INDEX 索引名 ON 表名

DROP TABLE 表名 (表的结构,属性,索引等也会被删除)

DROP DATABASE 数据库名

TRUNCATE TABLE 表名 (只会删除表中的内容,表的结构不会被删除)

22.ALTER TABLE 用于在已有的表中添加,修改和删除列

ALTER TABLE 表名
ADD 列名称 数据类型

ALTER TABLE 表名
ALTER COLUMN 列名称 数据类型

ALTER TABLE 表名
DROP COLUMN 列名称

23.AUTO_INCREMENT 被其修饰的列自动增加一

24.无法比较NULL和0,它们是不等价的,判断列的值是否为空,必须用IS NULL和IS NOT NULL

  1. SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
    FROM Products ISNULL意味着,如果UnitsOnOrder字段为NULL,则返回0

NVL IFNULL COALESCE函数和ISNULL的作用相同

CLUSTERED 聚集的

猜你喜欢

转载自blog.csdn.net/u013738122/article/details/82827558
今日推荐