學習sql的基本查詢。mysql
語法:sql
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;
查詢多列數據:express
SELECT lastName,firstName,jobTitle FROM employees;
查詢全部數據:函數
SELECT * FROM employees;
條件查詢:學習
SELECT lastName,firstName,jobTitle FROM employees WHERE jobTitle = 'Sales Rep';
語法:編碼
DELETE FROM table_name WHERE condition;
刪除全部officeNumber爲4的員工:3d
DELETE FROM employees WHERE officeCode = 4;
GROUP BY 語句根據一個或多個列對結果集進行分組。在分組的列上咱們可使用 COUNT, SUM, AVG,等函數。代碼規範
統計同一條產品線上生產多少種產品:code
SELECT productLine,COUNT(productLine) FROM products GROUP BY productLine HAVING COUNT(productLine)>1;
blog
咱們知道從 MySQL 表中使用 SQL SELECT 語句來讀取數據。若是咱們須要對讀取的數據進行排序,咱們就可使用 MySQL 的 ORDER BY 子句來設定你想按哪一個字段哪一種方式來進行排序,再返回搜索結果。
按價格降序排序:
SELECT * From products ORDER BY buyPrice DESC LIMIT 10;
MySQL 字符串函數: CONCAT(s1,s2...sn)、FORMAT(x,n)等等,對字符串進行處理。
MySQL 數字函數:常見的有COUNT(expression)、AVG(expression)、AVG(expression),對數值變量進行數學運算。
MySQL 日期函數:CURDATE(),DATE()等等,對日期類型的值進行處理,或者獲取某個時間的日期。
MySQL 高級函數:CAST(x AS type),BINARY(s)等等,一些高級用法。
關於SQL編碼規範,參考https://zhuanlan.zhihu.com/p/27466166
創建以下2張表,而且插入數據:
CREATE TABLE email( ID INT NOT NULL PRIMARY KEY, Email VARCHAR(255) )
INSERT INTO email VALUES('1','a@b.com'); INSERT INTO email VALUES('2','c@d.com'); INSERT INTO email VALUES('3','a@b.com');
CREATE TABLE World ( name VARCHAR(50) NOT NULL, continent VARCHAR(50) NOT NULL, area INT NOT NULL, population INT NOT NULL, gdp INT NOT NULL );
INSERT INTO World VALUES('Afghanistan','Asia',652230,25500100,20343000); INSERT INTO World VALUES('Albania','Europe',28748,2831741,12960000); INSERT INTO World VALUES('Algeria','Africa',2381741,37100000,188681000); INSERT INTO World VALUES('Andorra','Europe',468,78115,3712000); INSERT INTO World VALUES('Angola','Africa',1246700,20609294,100990000);
Email,COUNT(Email) FROM email GROUP BY Email HAVING COUNT(Email) > 1;
SELECT * FROM World WHERE area >3000000 OR population > 25000000 AND gdp > 20000000;