# sql學習
## 基礎命令語法
### 測試數據
```sql
+----+--------------+
| id | name |
+----+--------------+
| 1 | 世界你好 |
| 2 | 我是五年后語 |
| 3 | 谷歌很好 |
| 4 | 美麗四射 |
| 5 | 大千世界 |
| 6 | 大千世界 |
| 7 | 大千世界 |
| 8 | 大千世界 |
| 9 | NULL |
+----+--------------+
```
### 1. SELECT
> SELECT 語句用于從數據庫中選取數據。結果被存儲在一個結果表中,稱為結果集。
```sql
#顯示指定數據表中的某字段
SELECT 字段 FROM 數據表;
```
### 2. SELECT DISTINCT
> 在表中,一個列可能會包含多個重復值,有時您也許希望僅僅列出不同(distinct)的值。 DISTINCT 關鍵詞用于返回唯一不同的值。
```sql
#顯示指定數據表中的某字段所有的不同數據(一般用于數據分類),相當于去除 select * 的重復值
SELECT DISTINCT 字段 FROM 數據表;
```
### 3. WHERE
> WHERE 子句用于過濾記錄。
| 運算符 | 描述 |
|--|--|
| = | 等于 |
| <> | 不等于 |
| > | 大于 |
| > | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
| BETWEEN | 指定在某個范圍,用and連接范圍 |
| LIKE | 模糊搜索 |
| IN | 指定查詢字段可能的值 |
| is null | 判空 |
```sql
#查詢數據表中字段內容為 大千世界 的數據
SELECT * FROM data WHERE name="大千世界";
#查詢id字段大于3的數據
SELECT * FROM data WHERE id>3;
#查詢id在2-5之間的數據
SELECT * FROM data WHERE id BETWEEN 2 AND 5;
#模糊查詢字段中包含 千 的數據
SELECT * FROM data WHERE name LIKE "%千%";
#查詢id為1,3,5,10的數據(沒有數據時不顯示)
SELECT * FROM data WHERE name IN(1,3,5,10);
```
**注意**:SQL 使用單引號來環繞文本值(大部分數據庫系統也接受雙引號)。數值字段,不要使用引號
### 4. AND & OR
> AND & OR 運算符用于基于一個以上的條件對記錄進行過濾。如果第一個條件和第二個條件都成立,則 AND 運算符顯示一條記錄。
如果第一個條件和第二個條件中只要有一個成立,則 OR 運算符顯示一條記錄。
```sql
#顯示id為7并且名稱為 大千世界 的數據
SELECT * FROM data WHERE name="大千世界" AND ID=7;
```
**注意**:可以把 AND 和 OR 結合起來(使用圓括號來組成復雜的表達式)
### 5. ORDER BY
> ORDER BY 關鍵字用于對結果集進行排序。默認升序排列ASC 降序排列使用DESC 多列排序時,按照先后順序排序
```sql
#按照降序排列 先排序name字段 再對name字段按照id降序排列
SELECT * FROM data ORDER BY name,id DESC;
```
### 6. INSERT INTO
> INSERT INTO 語句用于向表中插入新記錄。他有兩種編寫形式。第一種形式無需指定要插入數據的列名,只需提供被插入的值即可。第二種形式需要指定列名及被插入的值
```sql
#第一種形式
INSERT INTO 表名 VALUES (value1,value2...);
#第二種形式
INSERT INTO 表名 (字段1,字段2...) VALUES (value1,value2...);
```
**注意**:插入字段為空時,int型默認為0,字符串類型默認NULL
### 7.UPDATE
> UPDATE 語句用于更新表中已存在的記錄
```sql
UPDATE 表名 SET 字段1=value1,字段2=value2,... WHERE 某字段定位=value;
```
**注意**:WHERE 子句規定哪條記錄或者哪些記錄需要更新。如果您省略了 WHERE 子句,所有的記錄都將被更新
### 8.DELETE
> DELETE 語句用于刪除表中的行。
```sql
#刪除某條數據
DELETE FROM 表名 WHERE 字段定位=value;
#刪除所有數據 保留數據表結構 兩種寫法
DELETE FROM 表名;
DELETE * FROM 表名
```
- 前言
- PHP進階之路
- 1.LANMP的環境安裝
- C與數據結構
- PYTHON
- JAVA
- GO入門實踐
- 1.入門語法
- 1.安裝配置GO環境
- 2.數據類型定義
- 3.運算符
- 4.控制語句
- 5.數組
- 6.切片
- 7.函數
- 8.結構體
- 注意事項
- Linux爬坑之路
- 1.zabbix服務
- 1.在龍芯Fedora機器上部署
- Git版本控制
- 0.工作流程與原理
- 1.安裝Git
- 2.安裝后配置
- 3.基礎命令
- 數據庫實踐
- 1.SQL基礎語法
- 1.基本語法
- 2.MySQL實踐
- 1.數據庫常用操作
- Docker容器技術
- 1.Docker常用命令
- 2.進階
- Vagrant虛擬化技術
- 1.基本命令詳解
- 2.進階教程
- WEB前端之旅
- CSS入門
- 1.CSS選擇器
- 操作系統
- 雜談一之系統啟動引導