MySQL資料庫中,View元件可以用來保存一段你指定的查詢敘述。 MySQL View的實作請參考 https://www.mysql.tw/2023/05/mysql-view.html (1)CREATE VIEW語法 CREATE [ OR REPLACE ] [ ALGORITHM = { UNDEFINED | MERGE | TEMPTABLE } ] [ DEFINER = { user | CURRENT_USER } ] [ SQL SECURITY { DEFINER | INVOKER } ] VIEW view_name [ ( column_list ) ] AS select_statement [ WITH [ CASCADED | LOCAL ] CHECK OPTION ] https://dev.mysql.com/doc/refman/8.0/en/create-view.html 範例 mysql> CREATE TABLE t (qty INT, price INT); mysql>…
SQL指令包含四大類型 : DDL (資料定義語言)、DML (資料處理語言)、DCL (資料控制語言)、TCL (交易控制語言)。 DDL ( Data Definition Language ) 資料定義語言 CREATE - to create objects in the database ALTER - alters the structure of the database DROP - delete objects from the database TRUNCATE - remove all records from a table, including all spaces allocated for the records are removed RENAME - rename an object 範例: CREATE DATABASE [database name] CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE TABLE [table name] ( fid MEDIUMINT NOT NULL AUTO_INCREMENT, fname varchar(20),…
SELECT的基本語法如下~ 依照給予的條件,抓出資料。 SELECT * | {[DISTINCT, DISTINCTROW] field_list} FROM table_list WHERE conditions GROUP BY {field_list} [ASC,DESC] HAVING conditions ORDER BY {field_list} [ASC,DESC] 假設有以下表單 student( studno , studname, deptid) 學生資料表 course( yearsemester, courseid, studno , score) 選課單 coursemain( courseid , coursename, coursecredit, courseflag, deptid) 課程基本資料表 teacher( teano , teaname, deptid) 教師資料表 courseopen( yearsemester, courseid , teano, coursetime, room) 教師開課表 dept( deptid , deptname) 科系資料表 1. SELECT * F…
SQL語法中WHERE與HAVING有何差異? 這兩個都是在進行資料的過濾,但是在使用上是有差別的。 在SQL語法中,我們可以使用WHERE給予條件,進行資料的過濾,例如有如下資料表: 我們使用 SELECT * FROM mymoney WHERE mamount>1000; 如下,資料只顯示出金額大於1000的資料列。 但是如果我們使用 SELECT * FROM mymoney HAVING mamount>1000; 雖然沒有錯誤,但是就不是好的語法了。 為何呢? 因為HAVING只能用在aggregate (合計) 情況下 ,也就是有GROUP BY的時候,並且HAVING要過濾的條件,要跟GROUP BY的合計函數有關。 例如我們來看以下範例: SELECT SUM(mamount) FROM mymoney WHERE SUBSTR(mdate,1,6)='201401'; 列出符合201401條件的金額加總,如上列出75500。 SELECT SUM(mamount) FROM mymoney WHERE SUBSTR(mdate,1,6)=…