SQL入門筆記(上)

語法規(guī)則:

SQL不區(qū)分大小寫,通常做法是用大寫編寫所有SQL命令。

在SQL中,會忽略空格和換行。

一個SQL語句可以放在一個或多個文本行上。另外,多個SQL語句可以組合在一個文本行上。

SQL常用語句:Select,insert,update,delete,show等。

  • SHOW語句
SHOW DATABASES(列出服務(wù)器管理的數(shù)據(jù)庫)
SHOW TABLES (顯示當(dāng)前選定的數(shù)據(jù)庫中的所有表)
SHOW columns FROM customers (顯示“customers”表中的列)
  • SELECT語句(劃重點(diǎn)劃重點(diǎn))
SELECT column_1, column_2, column_3 FROM table1;(從table1表中,選取3列數(shù)據(jù))
SELECT * FROM table1; (*通配符,表示所有。選取table1表中的所有列)
SELECT DISTINCT column_1, column_2 FROM table1;(distinct用于返回唯一值,去掉重復(fù)記錄)
SELECT * FROM table1 LIMIT 6; (limit限定子集范圍。選取table1表中前6條記錄)
SELECT * FROM table1 LIMIT 2, 10; (選取table1表中從第3條開始的前10個結(jié)果)
SELECT table1. column_1 FROM table1;(列名前提供表名,用點(diǎn)分隔。完全限定名稱)
SELECT * FROM table1 ORDER BY column_1;(order by關(guān)鍵字默認(rèn)按升序ASC排序)
SELECT * FROM table1 ORDER BY column_1 DESC;(按DESC降序排序)
SELECT * FROM table1 ORDER BY column_1, column_2;(多列排序,先按列1,再按列2)
SELECT * FROM customers WHERE ID=6;(從customers表中選擇ID為6的記錄)
SELECT * FROM customers WHERE ID BETWEEN 2 AND 6;(選取ID介于2和6之間的記錄)
SELECT * FROM customers WHERE ID IN(3,4,6);(選取ID為3,4,6的記錄)
SELECT * FROM customers WHERE City=’London’;(單引號環(huán)繞文本值,選取London相關(guān)的記錄)
SELECT * FROM customers WHERE City=’London’AND state=’CA’;(AND語句)
SELECT * FROM customers WHERE City=’London’AND (Age=25 OR Age=28);(結(jié)合AND和OR)
SELECT ID, Salary+500 AS Salary FROM employees; (算術(shù)運(yùn)算符+,為員工工資加500)
SELECT CONCAT (FirstName,’,’,City)FROM customers;(concat()函數(shù)用于連接兩個或多個文本值,
并返回連接字符串。把FirstName與City連接起來,用逗號分隔)
  執(zhí)行輸出結(jié)果:
  CONCAT (FirstName,’,’,City)
  John, New York
SELECT CONCAT (FirstName,’,’,City) AS new_column FROM customers;
 (AS關(guān)鍵字為列自定義名稱)
  執(zhí)行輸出結(jié)果:
  new_column
  John, New York
  • LIKE操作符
LIKE操作符用于在WHERE子句中搜索列中的指定模式。
SQL模式允許使用“_”匹配任何單個字符,而使用“%”匹配任意數(shù)目字符(包括零個字符)。
案例:選擇FirstName以字母“D”開頭的所有員工:
SELECT * FROM employees WHERE FirstName LIKE ‘D%’;
案例:選擇LastName以字母“s”結(jié)尾的所有員工:
SELECT * FROM employees WHERE LastName LIKE ‘%s’;
  • 函數(shù)
UPPER()函數(shù):將指定字符串中的所有字母轉(zhuǎn)換為大寫。(Smith>>SMITH)
LOWER()函數(shù):將指定字符串中的所有字母轉(zhuǎn)換為小寫。(Smith>>smith)
案例:SELECT FirstName, UPPER(LastName) AS LastName FROM employees;
SQRT():平方根。 AVG():平均值。 SUM():求和。 MIN():最小值。
案例:SELECT Salary, SQRT(Salary) FROM employees
  • 子查詢
當(dāng)一個查詢是另一個查詢的條件時,稱之為子查詢。

例子: SELECT * FROM items WHERE cost>500 ORDER BY cost DESC;

SELECT Salary FROM employees WHERE Salary > (SELECT AVG(Salary) FROM employees);
  • 表連接
組合來自兩個或?qū)€表的數(shù)據(jù)。表連接創(chuàng)建一個臨時表,顯示連接表中的數(shù)據(jù)。

案例:連接 customers表和orders表

SELECT customers.ID, customers.Name, orders.Name, orders.Amount FROM customers, 
orders WHERE customers.ID=orders.Customer_ID ORDER BY customers.ID;
  • 連接

JOIN操作符:橫向連接。又分內(nèi)連接和外連接。

案例:有三個表如下:

內(nèi)連接:SELECT * FROM user_1, user_2 WHERE user_1.id = user_2.id

內(nèi)連接輸出結(jié)果

左外連接:SELECT * FROM user_1 LEFT OUTER JOIN user_2 ON user_1.id = user_2.id

image.png

全外連接:SELECT * FROM user_1 FULL OUTER JOIN user_2 ON user_1.id = user_2.id

全連接,兩個表的行都在

UNION操作符:縱向連接
UNION將多個數(shù)據(jù)集合并到單個數(shù)據(jù)集中,并刪除任何現(xiàn)有的重復(fù)項(xiàng)。
UNION ALL將多個數(shù)據(jù)集合并到一個數(shù)據(jù)集中,但不會刪除重復(fù)的行。
UNION ALL比UNION運(yùn)行速度快,因?yàn)樗粫?shù)據(jù)集執(zhí)行重復(fù)刪除操作。
UNION內(nèi)部每個SELECT語句必須擁有相同數(shù)量的列。列也必須擁有相似的數(shù)據(jù)類型。
同時,每個SELECT語句中的列的順序必須相同。
案例:SELECT ID, City FROM table1 UNION SELECT ID, City FROM table2;(不包括重復(fù)值)
SELECT ID, City FROM table1 UNION ALL SELECT ID, City FROM table2;(包括重復(fù)值)

CREATE TABLE語句:創(chuàng)建表

CREATE TABLE uesrs ( UserID int, FirstName varchar(100), LastName varchar(100), City varchar(100); PRIMARY KEY(UserID));

SQL約束:約束可在創(chuàng)建表時規(guī)定

NOT NULL:指示某列不能存儲NULL值。

UNIQUE:保證每列的每行必須有唯一值。

PRIMARY KEY:NOT NULL和UNIQUE的結(jié)合。主鍵。

FOREIGN KEY:保證一個表中的數(shù)據(jù)匹配另一個表中的值的參照完整性。

CHECK:保證列中的值符合指定的條件。

DEFAULT:規(guī)定沒有給列賦值時的默認(rèn)值。

AUTO INCREMENT:自動遞增,插入新記錄時,自動創(chuàng)建主鍵字段的值。

案例: UserID int NOT NULL AUTO_INCREMENT, PRIMARY KEY (UserID)

CREATE TABLES users (id int NOT NULL AUTO_INCREMENT, username varchar(40) NOT NULL, password varchar(10) NOT NULL, PRIMARY KEY(id) );

INSERT INTO語句:用于向數(shù)據(jù)庫中的表添加新的數(shù)據(jù)行。

案例:向Employees表中插入新的一行信息。

INSERT INTO Employees VALUES (6, ‘Andrew’, ‘Thomas’, 43);

INSERT INTO Employees( ID, FirstName, LastName, Age) VALUES (6, ‘Andrew’, ‘Thomas’, 43); (指定表列名后,再插入數(shù)據(jù))

ALTER TABLE:用于在已有的表中添加、刪除或修改列。

案例:給“people”表中添加一個名為“Birthday”的列

ALTER TABLE people ADD Birthday date;

ALTER TABLE people DROP COLUMN Birthday ; (刪除“Birthday”列)

ALTER TABLE people CHANGE FirstName name varchar(55);(將“FirstName”列重命名為“name”)

UPDATE語句:更新表中記錄

UPDATE Employees SET Salary=6000 WHERE ID=1; (WHERE子句規(guī)定哪條記錄需要更新,如果省略WHERE子句,所有記錄都將被更新?。?
UPDATE Employees SET Salary=5500, FirstName=’Robert’WHERE ID=1; (逗號分隔,更新多列)

RENAME TABLE: 重命名整個表。

RENAME TABLE people TO users;

DELETE 語句:刪除表中記錄

DELETE FROM Employees WHERE ID=1;(WHERE子句規(guī)定哪條記錄需要刪除,如果省略WHERE子句,所有記錄都將被刪除?。?
DROP TABLE: 刪除整個表。

DROP TABLE people;

SQL視圖:是基于SQL語句的結(jié)果集的可視化的表。視圖包含行和列,就像一個真實(shí)的表。

案例:創(chuàng)建一個視圖List,顯示每個員工的“FirstName”和“Salary”。

CREATE VIEW List AS SELECT FirstName, Salary FROM Employees;

可以像查詢實(shí)際表一樣查詢列表視圖:

SELECT * FROM List;

DROP VIEW:刪除視圖。

DROP VIEW List;
  • SQL運(yùn)算符
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • MYSQL 基礎(chǔ)知識 1 MySQL數(shù)據(jù)庫概要 2 簡單MySQL環(huán)境 3 數(shù)據(jù)的存儲和獲取 4 MySQL基本操...
    Kingtester閱讀 8,050評論 5 115
  • 觀其大綱 page 01 基礎(chǔ)知識 1 MySQL數(shù)據(jù)庫概要 2 簡單MySQL環(huán)境 3 數(shù)據(jù)的存儲和獲取 4 M...
    周少言閱讀 3,244評論 0 33
  • 寫作是一個人對自我的總結(jié)和提升。因此在各個時期和方面,如果在有一顆幽寂的心的前提下,沉淀下來用心的去寫總會體會到不...
    巴圖魯閱讀 868評論 4 6
  • 有點(diǎn)悔不當(dāng)初的感覺!昨天又?jǐn)喔恕磥硎菓?yīng)該設(shè)個鬧鐘的。 下午出門前,還想好了在回來路上,地鐵上更新文章的。哪怕...
    冷悲秋閱讀 557評論 0 51
  • 之前做的不好,別人有提醒了,就要做好,既然制定了規(guī)矩肯定要遵守,違反就要被處罰。做個有覺悟有進(jìn)步的人,努力把事情做...
    日落絢閱讀 133評論 0 1

友情鏈接更多精彩內(nèi)容