数据库
码(Key)
超码(super key):是一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一的标识一个元祖。
候选码( candidate key):超码中可能包含了无关紧要的属性,我们通常只对这样的一些超码感兴趣,它们的任意子集都不能成为超码。这样最小超码称为候选码(candidate key) 。
主码(primary key): 被数据库设计者所选中用来标识一个关系的候选码。
外码(foreign key):一个关系模式r1可能在他的属性中包含了另一个关系的r2的主码。这个码就称为**参照关系(referenced relation)**的外码(foreign key)。
SQL
一、DML
- DML(data manipulation language)数据操纵语言:
就是我们最经常用到的 SELECT、UPDATE、INSERT、DELETE。 主要用来对数据库的数据进行一些操作。
SELECT 列名称 FROM 表名称
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
DELETE FROM 表名称 WHERE 列名称 = 值
二、DDL
- DDL(data definition language)数据库定义语言:
其实就是我们在创建表的时候用到的一些 sql ,比如说:CREATE、ALTER、DROP等。DDL主要是用在定义或改变表的结构,数据类型,表之间的链接和约束等初始化工作上
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)
ALTER TABLE table_name
ALTER COLUMN column_name datatype
DROP TABLE 表名称
DROP DATABASE 数据库名称
三、DCL
- DCL(Data Control Language)数据库控制语言:
是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。这个比较少用到。
在公司呢一般情况下我们用到的是DDL、DML这两种。
String Operations
-
percent (%). The % character matches any substring.
-
underscore (_). The _ character matches any character.
常见语言
between
select name
from instructor
where salary between 90000 and 100000
(select course_id from section where sem = ‘Fall’ and year = 2009)
union
(select course_id from section where sem = ‘Spring’ and year = 2010)
(select course_id from section where sem = ‘Fall’ and year = 2009)
intersect
(select course_id from section where sem = ‘Spring’ and year = 2010)
Find courses that ran in Fall 2009 but not in Spring 2010
(select course_id from section where sem = ‘Fall’ and year = 2009)
except
(select course_id from section where sem = ‘Spring’ and year = 2010)
distinct
Left-join
Right-join
范式(Normal Form)
第一范式 : 一个域是原子的(atomic),如果该域的元素被认为是不可再分的单元。我们称一个关系R属于第一范式(First Normal Form,1NF),如果R的所有属性的域都是原子的。
函数依赖(Function Depend): 对于实例中的所有元素,如果t1和t2,若t1[a] = t2[a] ,则 t1[b] = t2[b]. a → b a \to b