您好,登錄后才能下訂單哦!
本篇內容介紹了“SQL查詢語句有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
SQL 代表結構化查詢語言,是一種用于管理數據庫中數據的語言。SQL 由命令和聲明性語句組成,它們充當數據庫的指令,以便它可以執行任務。您可以使用 SQL 命令在數據庫中創建表、添加和更改大量數據、搜索數據以快速查找特定內容,或者一起刪除表。
在開始之前,您應該了解數據庫的層次結構。
SQL 數據庫是存儲在表中的相關信息的集合。每個表都有描述其中數據的列,以及包含實際數據的行。字段是一行中的單個數據。因此,要獲取所需的數據,我們需要具體化。
例如,遠程公司可以有多個數據庫。要查看他們的數據庫的完整列表,我們可以鍵入SHOW DATABASES;并可以在Employees數據庫上進行分區。
輸出將如下所示:
+--------------------+ | Databases | +--------------------+ | mysql | | information_schema | | employees | | test | | sys | +--------------------+
一個數據庫可以有多個表。以上面的例子為例,要查看employees數據庫中的不同表,我們可以這樣做SHOW TABLES in employees;。表格可以是Engineering、Product、Marketing和 ,Sales適用于公司擁有的不同團隊。
+----------------------+ | Tables_in_employees | +----------------------+ | engineering | | product | | marketing | | sales | +----------------------+
然后,所有表都由描述數據的不同列組成。
要查看不同的列,請使用Describe Engineering;. 例如,工程表可以具有限定單個屬性樣柱employee_id,first_name,last_name,email,country,和salary。
這是輸出:
+-----------+-------------------+--------------+ | Name | Null | Type | +-----------+-------------------+--------------+ |EMPLOYEE_ID| NOT NULL | INT(6) | |FIRST_NAME | NOT NULL |VARCHAR2(20) | |LAST_NAME | NOT NULL |VARCHAR2(25) | |EMAIL | NOT NULL |VARCHAR2(255) | |COUNTRY | NOT NULL |VARCHAR2(30) | |SALARY | NOT NULL |DECIMAL(10,2) | +-----------+-------------------+--------------+
表也由行組成,行是表中的單個條目。例如,一個行會包括根據條目employee_id,first_name,last_name,email,salary,和country。這些行將定義并提供有關工程團隊中一個人的信息。
您可以對數據執行的所有操作都遵循 CRUD 首字母縮寫詞。
CRUD 代表我們在查詢數據庫時執行的 4 個主要操作:創建、讀取、更新和刪除。
我們CREATE在數據庫中提供信息,我們READ/從數據庫中檢索該信息,我們UPDATE/操縱它,如果我們愿意,我們可以DELETE。
下面我們將介紹一些基本的 SQL 查詢及其語法以開始使用。
要創建名為 的數據庫engineering,我們可以使用以下代碼:
CREATE DATABASE engineering;
CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype );
此查詢在數據庫內創建一個新表。
它為表提供了一個名稱,并且我們希望我們的表具有的不同列也被傳入。
我們可以使用多種數據類型。一些最常見的有:INT,DECIMAL,DATETIME,VARCHAR,NVARCHAR,FLOAT,和BIT。
從上面的示例中,這可能類似于以下代碼:
CREATE TABLE engineering ( employee_id int(6) NOT NULL, first_name varchar(20) NOT NULL, last_name varchar(25) NOT NULL, email varchar(255) NOT NULL, country varchar(30), salary decimal(10,2) NOT NULL );
我們根據這些數據創建的表看起來類似于以下內容:
EMPLOYEE_ID | FIRST_NAME | LAST_NAME | COUNTRY | SALARY | |
---|---|---|---|---|---|
? |
創建表后,我們可以通過向其添加另一列來修改它。
ALTER TABLE table_name ADD column_name datatype;
例如,如果我們想要,我們可以birthday通過鍵入以下內容向現有表中添加一列:
ALTER TABLE engineering ADD birthday date;
現在我們的表格將如下所示:
EMPLOYEE_ID | FIRST_NAME | LAST_NAME | COUNTRY | SALARY | BIRTHDAY | |
---|---|---|---|---|---|---|
? |
這就是我們向表中插入數據并創建新行的方式。這是CCRUD 中的一部分。
INSERT INTO table_name(column1, column2, column3,..) VALUES(value1, 'value2', value3,..);
在INSERT INTO部分中,我們可以指定要填充信息的列。
里面VALUES是我們想要存儲的信息。這會在表中創建一個新記錄,這是一個新行。
每當我們插入字符串值時,它們都用單引號括起來,''.
例如:
INSERT INTO table_name(employee_id,first_name,last_name,email,country,salary) VALUES (1,'Timmy','Jones','timmy@gmail.com','USA',2500.00); (2,'Kelly','Smith','ksmith@gmail.com','UK',1300.00);
該表現在看起來像這樣:
EMPLOYEE_ID | FIRST_NAME | LAST_NAME | COUNTRY | SALARY | |
---|---|---|---|---|---|
1 | Timmy | Jones | timmy@gmail.com | USA | 2500.00 |
2 | Kelly | Smith | ksmith@gmail.com | UK | 1300.00 |
該語句從數據庫中獲取數據。它是RCRUD的一部分。
SELECT column1,column2 FROM table_name;
從我們之前的示例中,這將如下所示:
SELECT first_name,last_name FROM engineering;
輸出:
+-----------+----------+ |FirstName | LastName | +-----------+----------+ | Timmy | Jones | | Kelly | Smith | +-----------+----------+
該SELECT語句指向我們想要從中獲取數據的特定列,我們希望在結果中顯示該列。
該FROM部分確定表本身。
這是另一個例子SELECT:
SELECT * FROM table_name;
星號*將從我們指定的表中獲取所有信息。
WHERE 使我們能夠更具體地了解我們的查詢。
如果我們想過濾我們的Engineering表以搜索具有特定薪水的員工,我們將使用WHERE.
SELECT employee_id,first_name,last_name,email,country FROM engineering WHERE salary > 1500
上一個示例中的表:
EMPLOYEE_ID | FIRST_NAME | LAST_NAME | COUNTRY | SALARY | |
---|---|---|---|---|---|
1 | Timmy | Jones | timmy@gmail.com | USA | 2500.00 |
2 | Kelly | Smith | ksmith@gmail.com | UK | 1300.00 |
現在將有以下輸出:
+-----------+----------+----------+----------------+------------+ |employee_id|first_name|last_name |email |country | +-----------+----------+----------+----------------+------------+ | 1| Timmy |Jones |timmy@gmail.com | USA | +-----------+----------+----------+----------------+------------+
該過濾器通過,并說明滿足條件的結果-也就是說,它表明只有其薪水的人的行more than 1500。
這些運算符允許您通過向WHERE語句添加更多條件來使查詢更加具體。
該AND操作發生在兩個條件,他們都必須是true為了在結果中顯示的行。
SELECT column_name FROM table_name WHERE column1 =value1 AND column2 = value2;
該OR運算符接受兩個條件,其中之一必須為真,才能在結果中顯示該行。
SELECT column_name FROM table_name WHERE column_name = value1 OR column_name = value2;
該BETWEEN運營商過濾出數字或文字的特定范圍內。
SELECT column1,column2 FROM table_name WHERE column_name BETWEEN value1 AND value2;
我們也可以將這些運算符相互結合使用。
假設我們的表現在是這樣的:
EMPLOYEE_ID | FIRST_NAME | LAST_NAME | COUNTRY | SALARY | |
---|---|---|---|---|---|
1 | Timmy | Jones | timmy@gmail.com | USA | 2500.00 |
2 | Kelly | Smith | ksmith@gmail.com | UK | 1300.00 |
3 | Jim | White | jwhite@gmail.com | UK | 1200.76 |
4 | José Luis | Martìnez | jmart@gmail.com | Mexico | 1275.87 |
5 | Emilia | Fischer | emfis@gmail.com | Germany | 2365.90 |
6 | Delphine | Lavigne | lavigned@gmail.com | France | 2108.00 |
7 | Louis | Meyer | lmey@gmail.com | Germany | 2145.70 |
如果我們使用如下語句:
SELECT * FROM engineering WHERE employee_id BETWEEN 3 AND 7 AND country = 'Germany';
我們會得到這個輸出:
+------------+-----------+-----------+----------------+--------+--------+ |employee_id | first_name| last_name | email |country |salary | +------------+-----------+-----------+----------------+--------+--------+ |5 |Emilia |Fischer |emfis@gmail.com | Germany| 2365.90| |7 |Louis |Meyer |lmey@gmail.com | Germany| 2145.70| +------------+-----------+-----------+----------------+--------+--------+
這將選擇所有具有德國國家/地區employee_id之間的comlumns 3 and 7 AND。
ORDER BY按我們在SELECT語句中提到的列排序。
它對結果進行排序,并按字母或數字的降序或升序順序(默認順序為升序)顯示它們。
我們可以指定使用以下命令:ORDER BY column_name DESC | ASC。
SELECT employee_id, first_name, last_name,salary FROM engineering ORDER BY salary DESC;
在上面的示例中,我們對工程團隊中員工的工資進行排序,并按數字降序排列。
GROUP BY 讓我們將具有相同數據和相似點的行組合起來。
將重復的數據和在表格中多次出現的條目排列起來很有幫助。
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;
這里COUNT(*)單獨計算每一行并返回指定表中的行數,同時還保留重復的行。
LIMIT允許您指定應在結果中返回的最大行數。
這在處理可能導致查詢需要很長時間運行的大型數據集時很有用。通過限制您獲得的結果,它可以節省您的時間。
SELECT column1,column2 FROM table_name LIMIT number;
這就是我們如何更新表中的一行。這U是 CRUD的一部分。
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
該WHERE條件指定要編輯的記錄。
UPDATE engineering SET country = 'Spain' WHERE employee_id = 1
我們之前的表:
EMPLOYEE_ID | FIRST_NAME | LAST_NAME | COUNTRY | SALARY | |
---|---|---|---|---|---|
1 | Timmy | Jones | timmy@gmail.com | USA | 2500.00 |
2 | Kelly | Smith | ksmith@gmail.com | UK | 1300.00 |
3 | Jim | White | jwhite@gmail.com | UK | 1200.76 |
4 | José Luis | Martìnez | jmart@gmail.com | Mexico | 1275.87 |
5 | Emilia | Fischer | emfis@gmail.com | Germany | 2365.90 |
6 | Delphine | Lavigne | lavigned@gmail.com | France | 2108.00 |
7 | Louis | Meyer | lmey@gmail.com | Germany | 2145.70 |
現在看起來像這樣:
EMPLOYEE_ID | FIRST_NAME | LAST_NAME | COUNTRY | SALARY | |
---|---|---|---|---|---|
1 | Timmy | Jones | timmy@gmail.com | Spain | 2500.00 |
2 | Kelly | Smith | ksmith@gmail.com | UK | 1300.00 |
3 | Jim | White | jwhite@gmail.com | UK | 1200.76 |
4 | José Luis | Martìnez | jmart@gmail.com | Mexico | 1275.87 |
5 | Emilia | Fischer | emfis@gmail.com | Germany | 2365.90 |
6 | Delphine | Lavigne | lavigned@gmail.com | France | 2108.00 |
7 | Louis | Meyer | lmey@gmail.com | Germany | 2145.70 |
這將更新 ID 為 1 的員工的居住國家/地區列。
我們還可以使用來自另一個表的值更新表中的信息JOIN。
UPDATE table_name SET table_name1.column_name1 = table_name2.column_name1 table_name1.column_name2 = table_name2.column2 FROM table_name1 JOIN table_name2 ON table_name1.column_name = table_2.column_name;
DELETE是DCRUD的一部分。這就是我們從表中刪除記錄的方式。
基本語法如下所示:
DELETE FROM table_name WHERE condition;
例如,在我們的engineering示例中,它可能如下所示:
DELETE FROM engineering WHERE employee_id = 2;
這將刪除工程團隊中 id 為 2 的員工的記錄。
要從表中刪除特定列,我們將執行以下操作:
ALTER TABLE table_name DROP COLUMN column_name;
要刪除整個表,我們可以這樣做:
DROP TABLE table_name;
“SQL查詢語句有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。