# 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选择器
- 操作系统
- 杂谈一之系统启动引导