連接(JOIN)
選擇運算表示為: R⋈S ,其中R和S為不同的兩個關系
連接運算是選取兩個指定關系中的屬性滿足給定條件的元祖連接在一起來組成一個新的關系
數學形式: JOIN 關系名1 AND 關系名2 WHERE 條件
實際形式: select value1,value2 from 表1 join 表2 on(where) 條件
inner join, left join ,right join 三種
內連接,左連接,外連接
mysql> SELECT a.age, b.author FROM books a INNER JOIN books2 b ON a.age>25;#去除沒有匹配的數據
mysql> SELECT a.age, b.author FROM books a RIGHT JOIN books2 b ON a.age>25;#會讀取右邊邊數據表的全部數據
mysql> SELECT a.age, b.author FROM books a LEFT JOIN books2 b ON a.age>25; #會讀取左邊數據表的全部數據
選擇(SELECT)
選擇運算表示為:σF(R), 其中, F為條件表達式,R為指定的被運算的關系
選擇運算是從指定關系中選取滿足給定條件的若干元祖組成一個新的關系
選擇的mysql語句是where
數學形式: SELECT 關系名 WHERE 條件
實際形式: WHERE 條件
投影(PROJECTION)
投影運算表示為:πA(R),其中, R為被運算關系,A為屬性序列
投影運算是從指定的關系中選取指定的若干屬性值組成一個新關系
數學形式: PROJETION 關系名 (屬性1,屬性2,...,屬性n)
實際形式: SELECT 屬性 FROM 表名 WHERE 條件
mysql> SELECT age FROM books WHERE age > 23 AND age <28;
除(DIVISION) 參考https://blog.csdn.net/qq_22627687/article/details/53789362
除運算表示為: R÷S,其中R 和 S 代表兩個不同的關系,若被出關系為m元關系,除關系為n元關系,則運算結果為m-n關系,
數學形式:
實際形式:
select * from books A where not exists(select age from books8 B WHERE A.age=B.age);
笛卡爾積
數學形式:
實際形式:select * from 表1,表2,... [where字句] #from為迪卡爾積的sql語句
mysql> SELECT * FROM books,books9,books3 WHERE books.author NOT REGEXP '^f.*g$';