MySQL常用文法

來源:互聯網
上載者:User

標籤:delect   title   組成   ast   fse   mon   database   delete   sts   

參考連結:http://www.yiibai.com/mysql/ 一、 SQLECT 文法
SELECT  column_1, column_2, ... FROM table_1 [INNER | LEFT |RIGHT] JOIN table_2 ON conditions WHERE conditions GROUP BY column_1 HAVING group_conditions ORDER BY column_1 LIMIT offset, length;
SELECT語句由以下列表中所述的幾個子句組成:
  • SELECT之後是逗號分隔列或星號(*)的列表,表示要返回所有列。
  • FROM指定要查詢資料的表或視圖。
  • JOIN根據某些串連條件從其他表中擷取資料。
  • WHERE過濾結果集中的行。
  • GROUP BY將一組行組合成小分組,並對每個小分組應用彙總函式。
  • HAVING過濾器基於GROUP BY子句定義的小分組。
  • ORDER BY指定用於排序的列的列表。
  • LIMIT限制返回行的數量。
語句中的SELECT和FROM語句是必須的,其他部分是可選的。 栗子:
SELECT lastname,firstname,jobtitle FROM employees;
SELECT * FROM employees;
 二、WHERE 語句WHERE子句允許根據指定的過濾運算式或條件來指定要選擇的行。栗子:擷取僱員中的銷售代表;
SELECT lastname,firstname,jobtitle FROM employees WHERE jobtitle = ‘Sales Rep‘;
MySQL 會優先使用 where 進行匹配,在到 select 匹配。 擷取僱員中的銷售代表,且辦公室代碼=1;
SELECT lastname,firstname,jobtitle FROM employees WHERE jobtitle=‘Sales Rep‘ AND officeCode = 1;
 操作符:= 等於,幾乎任何資料類型都可用<> 或 != 不等於< 小於,通常使用數字和日誌/時間資料類型> 大於,通常使用數字和日誌/時間資料類型<= 大於或等於>= 大於或等於 還有一些有用的運算子可以在WHERE子句中使用來形成複雜的條件,例如:
  • BETWEEN選擇在給定範圍值內的值。
  • LIKE匹配基於模式比對的值。
  • IN指定值是否匹配列表中的任何值。
  • IS NULL檢查該值是否為NULL。
 三、 INSERT 語句MySQL INSERT 語句將一行或者多行資料插入列表。栗子:
INSERT INTO tasks(subject,start_date,end_date,description) VALUES(‘Learn MySQL INSERT‘,‘2017-11-27‘,‘2017-11-27‘,‘start learning..‘);
 將tasks表的所有資料複製插入到tasks_bak表
 INSERT INTO tasks_bak SELECT * FROM tasks;
 四、 UPDATE 語句UPDATE語句來更新表中的現有資料。也可以使用UPDATE語句來更改表中單個行,一組行或所有行的列值。栗子:更新 Mary 的郵箱。
UPDATE employees SET email=‘[email protected]‘ WHERE employeeNumber = 1056;
 更新多行資料:
UPDATE employees SET email=‘[email protected]‘,lastname=‘Hill‘ WHERE employeeNumber = 1056;
 從另一表選擇資料插入當前表
 UPDATE customers SET salesRepEmployeeNumber = (SELECT employeeNumber FROM employees WHERE jobtitle=‘Sales Rep‘ ORDER BY RAND() LIMIT 1) WHERE salesRepEmployeeNumber IS NULL;
注釋:從employees表隨機抽取jobtitle=Sales Rep的一個employeeNumber資料,插入到customers的salesRepEmployeeNumber為空白的列中。 五、 DELECT 語句 
DELETE FROM tasks WHERE task_id=3;
刪除後: 六、 建立與刪除資料庫
CREATE DATABASE IF NOT EXISTS mytest;
 刪除資料庫 mytest
DROP DATABASE IF EXISTS mytest;
  七、 CREATE TABLE 語句
CREATE TABLE [IF NOT EXISTS] table_name( column_list ) engine=table_type;
其中engine是指定搜尋引擎,不添加則使用預設InnoDB,有MyISAM,HEAP,EXAMPLE,CSV,ARCHIVE,MERGE, FEDERATED或NDBCLUSTER 可選。 column_list詳細語義:
column_name data_type[size] [NOT NULL|NULL] [DEFAULT value] [AUTO_INCREMENT]PRIMARY KEY (col1,col2,...)
  • column_name指定列的名稱。每列具有特定資料類型和大小,例如:VARCHAR(255)。
  • NOT NULL或NULL表示該列是否接受NULL值。
  • DEFAULT值用於指定列的預設值。
  • AUTO_INCREMENT指示每當將新行插入到表中時,列的值會自動增加。每個表都有一個且只有一個 AUTO_INCREMENT列。
  • PRIMARY KEY 設定主鍵。
栗子文法:
CREATE TABLE IF NOT EXISTS tasks ( task_id INT(11) NOT NULL AUTO_INCREMENT, subject VARCHAR(45) DEFAULT NULL, start_date DATE DEFAULT NULL, end_date DATE DEFAULT NULL, description VARCHAR(200) DEFAULT NULL, PRIMARY KEY (task_id) ) ENGINE=InnoDB; 
 八、 ALTER TABLE 語句文法:
ALTER TABLE table_name action1[,action2,…]
  • 首先,在ALTER TABLE子句之後指定要更改的表名稱。
  • 其次,列出一組要應用於該表的操作。操作可以是添加新列,添加主鍵,重新命名表等任何操作。 ALTER TABLE語句允許在單個ALTER TABLE語句中應用多個操作,每個操作由逗號(,)分隔。
栗子:
ALTER TABLE mytest ADD COLUMN task_id INT(11) NOT NULL;
其他文法:
ALTER TABLE mytest CHANGE COLUMN task_id task_id INT(10) NOT NULL AUTO_INCREMENT;ALTER TABLE mytest ADD COLUMN task_id INT(11) NOT NULL;ALTER TABLE tasks RENAME TO work_items; 

 

 

MySQL常用文法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.