日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

數據庫

1. 查看現有數據庫

SHOW DATABASES;

2. 新建數據庫

CREATE DATABASE <數據庫名>;

3. 選擇數據庫

USE <數據庫名>;

4. 從.sql文件引入SQL語句

SOURCE <.sql文件路徑>;

5. 刪除數據庫

DROP DATABASE <數據庫名>;

6. 查看當前數據庫中的表

SHOW TABLES;

SQL常用語句總結(面試很有用哦)

 

7. 創建新表

CREATE TABLE <表名> (
 <列名1> <列類型1>,
 <列名2> <列類型2>,
 <列名3> <列類型3>,
 PRIMARY KEY (<列名1>),
 FOREIGN KEY (<列名2>) REFERENCES <表名2>(<列名2>)
);

主鍵(PRIMARY KEY)用來標識一條記錄(一行),所以每條記錄的主鍵值必須是唯一的。主鍵可以定義在多列上,這稱為聯合主鍵(composite primary key)

如果我們把表視作具有某種結構的數組(例如,C語言中的struct),那么外鍵(FOREIGN KEY)可以視作指針。

例子:

CREATE TABLE instructor (
 ID CHAR(5),
 name VARCHAR(20) NOT NULL,
 dept_name VARCHAR(20),
 salary NUMERIC(8,2), 
 PRIMARY KEY (ID),
 FOREIGN KEY (dept_name) REFERENCES department(dept_name));

在上面的例子中,我們創建了一個教員(instructor)表,該表的主鍵是ID,外鍵是教員所在的部門名稱(dept_name),關聯部門(department)表。此外,教員表還包括姓名(name)、薪水(salary)。其中,姓名有約束NOT NULL,表示姓名這一項不能為空。

8. 概述表中的列

使用如下語句查看表中的列的基本信息:

DESCRIBE <表名>;

下圖顯示了一些例子:

SQL常用語句總結(面試很有用哦)

 

9. 在表中插入新紀錄

INSERT INTO <表名> (<列名1>, <列名2>, <列名3>, …)VALUES (<值1>, <值2>, <值3>, …);

也可以省略列名(依序在所有列上插入新值):

INSERT INTO <表名>VALUES (<值1>, <值2>, <值3>, …);

10. 在表中更新記錄

UPDATE <表名>
 SET <列名1> = <值1>, <列名2> = <值2>, ...
 WHERE <條件>;

11. 清空表

DELETE FROM <表名>;

12. 刪除表

DROP TABLE <表名>;

查詢

13. SELECT

SELECT語句可以從表中選擇數據:

SELECT <列名1>, <列名2>, …
 FROM <表名>;

以下語句選擇所有內容:

SELECT * FROM <表名>;

SQL常用語句總結(面試很有用哦)

 

artment)表和課程(course)表中的所有內容</center>14. SELECT DISTINCT

SELECT DISTINCT過濾掉了重復的值:

SELECT DISTINCT <列名1>, <列名2>, …
 FROM <表名>;
SQL常用語句總結(面試很有用哦)

 

15. WHERE

我們之前在更新記錄時已經用到了WHERE關鍵字,用來指明條件。這里我們稍微詳細一點地介紹下WHERE

WHERE的條件通常是:

  • 比較文本(text)
  • 比較數字(numbers)
  • ANDORNOT等邏輯運算

讓我們來看一些例子:

SELECT * FROM course WHERE dept_name='Comp. Sci.';
SELECT * FROM course WHERE credits>3;
SELECT * FROM course WHERE dept_name='Comp. Sci.' AND credits>3;
SQL常用語句總結(面試很有用哦)

 

16. GROUP BY

GROUP BY語句可以分組結果,常用于COUNTMAXMINSUMAVG聚合函數(aggregate functions)

SELECT <列名1>, <列名2>, …
 FROM <表名>
 GROUP BY <列名>;

讓我們來看一個例子,列出每個部門的課程數量:

SELECT COUNT(course_id), dept_name 
 FROM course 
 GROUP BY dept_name;
SQL常用語句總結(面試很有用哦)

 

17. HAVING

乍看起來,HAVINGWHERE很像:

SELECT <列名1>, <列名2>, …
 FROM <表名>
 GROUP BY <列名x>
 HAVING <條件>;

那么,HAVINGWHERE有什么不同呢?讓我們先來看一個例子,列出開了不止一門課程的部門開設的課程數:

SELECT COUNT(course_id), dept_name 
 FROM course 
 GROUP BY dept_name 
 HAVING COUNT(course_id)>1;

這里HAVING不能換成WHERE,因為WHERE直接針對行操作,且在GROUP BY之前運行(即先通過WHERE篩選行,之后再將篩選出的行通過GROUP BY分組)。假設SQL中不存在HAVING語句,那么我們只能先新建一張表,將COUNT(course_id)作為新表的列,然后在新表上再通過WHERE進行篩選(當然,實際上SQL提供了派生表、CTE等機制,并不用真的手工建新表)。

SQL常用語句總結(面試很有用哦)

 

18. ORDER BY

ORDER BY可以對結果進行排序,在沒有明確指定ASC(升序)或DESC(降序)的情況下,默認按升序排列。

SELECT <列名1>, <列名2>, …
FROM <表名>
ORDER BY <列名1>, <列名2>, …, ASC|DESC;

例子:

SELECT * FROM course ORDER BY credits;
SELECT * FROM course ORDER BY credits DESC;
SQL常用語句總結(面試很有用哦)

 

19. BETWEEN

BETWEEN語句用于指定區間

SELECT <列名1>, <列名2>, …
 FROM <表名>
 WHERE <列名x> BETWEEN <值1> AND <值2>;

其中“值”可能是數字,文本,乃至日期等。

例如,列出薪資在50000和100000之間的教員:

SELECT * FROM instructor 
 WHERE salary BETWEEN 50000 AND 100000;
SQL常用語句總結(面試很有用哦)

 

20. LIKE

LIKE用于匹配文本中的特定模式

SELECT <列名1>, <列名2>, …
 FROM <表名>
 WHERE <列名x> LIKE <模式>;

模式中可以使用以下兩個通配符:

  • % (零個、一個或多個字符)
  • _ (單個字符)

例子:列出課程名中包含“to”的課程,以及課程ID以“CS-”開頭的課程。

SELECT * FROM course WHERE title LIKE '%to%';
SELECT * FROM course WHERE course_id LIKE 'CS-___';
SQL常用語句總結(面試很有用哦)

 

21. IN

IN語句表示值屬于某個集合。

SELECT <列名1>, <列名2>, …
 FROM <表名>
 WHERE <列名n> IN (<值1>, <值2>, …);

例子:列出計算機科學、物理、電子工程部門的學生。

SELECT * FROM student 
 WHERE dept_name IN ('Comp. Sci.', 'Physics', 'Elec. Eng.');
SQL常用語句總結(面試很有用哦)

 

22. JOIN

JOIN用來組合兩張以上表中的值。下圖展示了JOIN的三種類型:

SQL常用語句總結(面試很有用哦)

 

圖片來源:zeroturnaround.com

SELECT <列名1>, <列名2>, …
 FROM <表名1>
 JOIN <表名2>
 ON <表名1.列名x> = <表名2.列名x>

讓我們來看三個例子,分別對應三種JOIN的類型。

第一個例子,列出課程時包含開設課程的部門詳情:

SELECT * FROM course 
 JOIN department 
 ON course.dept_name=department.dept_name;
SQL常用語句總結(面試很有用哦)

 

第二個例子,列出所有具有前置課程的課程的詳情:

SELECT prereq.course_id, title, dept_name, credits, prereq_id 
 FROM prereq 
 LEFT OUTER JOIN course 
 ON prereq.course_id=course.course_id;
SQL常用語句總結(面試很有用哦)

 

最后一個例子,列出所有課程的詳情,不管是否具有前置課程:

SELECT course.course_id, title, dept_name, credits, prereq_id 
 FROM prereq 
 RIGHT OUTER JOIN course 
 ON prereq.course_id=course.course_id;
SQL常用語句總結(面試很有用哦)

 

23. 視圖

視圖(view)是虛擬的SQL表。它包含行和列,和一般的SQL表格很類似。視圖總是顯示數據庫中的最新數據。

CREATE VIEW

創建視圖:

CREATE VIEW <視圖名> AS
 SELECT <列名1>, <列名2>, …
 FROM <表名>
 WHERE <條件>;

DROP VIEW

刪除視圖:

DROP VIEW <視圖名>;

例如,創建3學分的課程視圖:

CREATE VIEW my_view AS
 SELECT * FROM course
 WHERE credits=3;
SQL常用語句總結(面試很有用哦)

 

24. 聚合函數

我們之前已經提到聚合函數,這里列出最常用的一些聚合函數:

  • COUNT(列名) 返回行數
  • SUM(列名) 返回指定列的值之和
  • AVG(列名) 返回指定列的平均值
  • MIN(列名) 返回指定列的最小值
  • MAX(列名) 返回指定列的最大值

25. 嵌套子查詢

在SQL請求中,可以嵌套SELECT-FROM-WHERE表達式,稱為嵌套子查詢(nested subqueries)

例如,查找2009年秋、2010年春都開的課程:

SELECT DISTINCT course_id 
 FROM section 
 WHERE semester = ‘Fall’ AND year= 2009 AND course_id IN (
 SELECT course_id 
 FROM section 
 WHERE semester = ‘Spring’ AND year= 2010
 );
SQL常用語句總結(面試很有用哦)

 

希望你覺得這篇文章有用。

感謝閱讀!?

祝面試順利!

分享到:
標簽:語句 SQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定