mysql 各種關系代數的使用


連接(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$';

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM