1. 变量:
1)tuple:记录不同属性的 Value
Student(stude#, name, course)
(, ‘Jack Smith’, ‘BSc’)
其中三个value分别对应stude#,name, course这三个属性
2) Set: 同一个属性的value集合
SELECT name
FROM Employees
WHERE job IN (‘Lecturer’, ‘Tutor’, ‘Professor’);
其中所有的value都是属于job这个属性
2. 数据类型
1)字符串
CHAR(N):固定长度字符类型。如果输⼊的字符串⻓度⼩于 N,将⽤空格填充⾄ N 个字符
VARCHAR(N):可变长度字符类型。N 是可选的⻓度限制。
2) 整数
SMALLINT:16 位有符号整数
INT:32 位有符号整数
BIGINT:64 位有符号整数
3)小数
NUMERIC(precision, scale): 精确⼩数。NUMERIC(总位数, 小数点后的位数)
4)日期和时间
DATE:⽇期类型,没有时间部分。
TIME:时间类型,没有⽇期部分。
TIMESTAMP:时间戳类型,包含⽇期和时间
SQL function
1. string 操作
1)|| 连接两个字符串: ‘hello’ || ‘world’ =‘helloworld’
2)LENGTH(‘hello’) = 5
3) SUBSTR (‘Hello’,1, 3) = ‘Hel’ #(从第一个字符开始,到第三个字符结束)
2. LIKE 正则表达式匹配:
(%):匹配零个或多个字符。 ‘a%’ 可以匹配任何以 ‘a’ 开头的字符串
(_):匹配单个字符。 ‘a’ 可以匹配 ‘ba’,任意以a结尾的两字字符串,
注意:一个’‘只能代表一个字符
例:
名字以J开头的: name LIKE ‘J%’;
名字以son结尾的 : name LIKE ‘%son’
name包括‘anna’: name LIKE ‘%anan%’
名字由5个字母组成的:name LIKE ‘_ _ _ _ _’
名字第二个字符为 ‘a’ 的: name LIKE ‘_a%’
SQL 核⼼:Select-From-Where 语句
1. join 语句
1.1. Cartesian Product 笛卡尔积:
笛卡尔积是一个基于两个或多个表的关系,产生这些表所有可能的行组合的操作。
SELECT Attributes FROM R1, R2, … WHERE Condition
FROM子句开始,将指定的表(table1, table2等)组合起来形成一个大的表。
使用WHERE子句中的条件对这个大的表进行筛选
SELECT 属性,输出结果
1.2. 自然连接(Natural Join)
在两个表中查找具有相同名称和值的列,将其合并,形成一个新的大表
如果 teaches 表中同一个 ID 有多个课程,如 10101,则 instructor 表中相应的行将与 teaches 表中的每个匹配行重复合并。
1.3 内连接(Inner Join,也称条件连接或Theta Join)
SELECT * FROM instructor INNER JOIN teaches ON instructor.ID = teaches.ID
意思是:instructor 表的 ID 列的值必须等于 teaches 表的 ID 列的值
instructor表中的ID 12121(Wu)在 teaches 表中没有对应的ID,所以直接删去,只保留与 teaches 表的 ID 列的值相等的列。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/192566.html