參考鏈接:http://www.yiibai.com/mysql/ 一、 SQLECT 語法 SELECT column_1, column_2, ... FROM table_1 [INNER | LEFT |RIGHT] JOIN table_2 ON conditions WHERE cond ...
參考鏈接:http://www.yiibai.com/mysql/ 一、 SQLECT 語法
SELECT column_1, column_2, ...SELECT語句由以下列表中所述的幾個子句組成:
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之後是逗號分隔列或星號(*)的列表,表示要返回所有列。
- FROM指定要查詢數據的表或視圖。
- JOIN根據某些連接條件從其他表中獲取數據。
- WHERE過濾結果集中的行。
- GROUP BY將一組行組合成小分組,並對每個小分組應用聚合函數。
- HAVING過濾器基於GROUP BY子句定義的小分組。
- ORDER BY指定用於排序的列的列表。
- LIMIT限制返回行的數量。
SELECT
lastname,firstname,jobtitle
FROM
employees;

SELECT * FROM employees;

SELECT
lastname,firstname,jobtitle
FROM
employees
WHERE
jobtitle = 'Sales Rep';

SELECT
lastname,firstname,jobtitle
FROM
employees
WHERE
jobtitle='Sales Rep' AND officeCode = 1;

INSERT INTO
tasks(subject,start_date,end_date,description)
VALUES
('Learn MySQL INSERT','2017-11-27','2017-11-27','start learning..');

INSERT INTO tasks_bak SELECT * FROM tasks;

UPDATE
employees
SET
email='[email protected]'
WHERE
employeeNumber = 1056;

UPDATE
employees
SET
email='[email protected]',lastname='Hill'
WHERE
employeeNumber = 1056;

UPDATE customers註釋: 從employees表隨機抽取jobtitle=Sales Rep的一個employeeNumber數據,插入到customers的salesRepEmployeeNumber為空的列中。 五、 DELETE語句
SET
salesRepEmployeeNumber = (SELECT
employeeNumber
FROM
employees
WHERE
jobtitle='Sales Rep'
ORDER BY RAND() LIMIT 1)
WHERE
salesRepEmployeeNumber IS NULL;
DELETE FROM tasks WHERE task_id=3;


CREATE DATABASE IF NOT EXISTS mytest;

DROP DATABASE IF EXISTS mytest;

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 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;