企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] 查询:我们在sql中最常见也是使用最多的就是select **查询的特点:** select中间可以查询我们想要的字段信息,也是一个结果集例如: 查询列表可以是:表中的字段,常量值,表达式,函数 查询的结果是一张虚拟的表 <br> <br> >[success] ## **一:查询单个字段** ```sql select `name` from gin_user; ``` 结果: ``` WW 风清扬 洪七公 降龙十八掌 张无忌 张三丰 杨过 小龙女 ``` <br> <br> >[success] ## **二:查询多个字段** ```sql select `name`,age from gin_user; ``` 结果: ``` WW 25 风清扬 67 洪七公 77 降龙十八掌 19 张无忌 90 张三丰 800 杨过 40 小龙女 43 ``` <br> <br> >[success] ## **三:查询所有字段** ```sql select * from gin_user; ``` 结果: ``` 1 WW 25 2 风清扬 67 3 洪七公 77 4 降龙十八掌 19 5 张无忌 90 6 张三丰 800 7 杨过 40 8 小龙女 43 ``` <br> <br> >[success] ## **四:查询表达式** > 可以用于统计 ```sql SELECT 100 * 10; ``` :-: ![](https://img.kancloud.cn/a3/7b/a37b8d4e2e0fd895f382a2a63ff72574_225x95.png) <br> <br> >[success] ## **五:查询函数** ```sql select version(); ``` <br> <br> >[success] ## **六:起别名** > (1)起别名是为了,方便理解 > (2)如果查询中有重复的数据可以使用别名区分开来 ### **方式1:使用as** ```sql SELECT 100 * 10 as 结果; ``` :-: ![](https://img.kancloud.cn/ff/1d/ff1d293c7189f80f4710db99c38a116e_246x105.png) ```sql select `name` as 我叫什么,age as 我年龄多大 from gin_user; ``` :-: ![](https://img.kancloud.cn/0f/51/0f5112f7eb5e1b18429063c0d3be18a7_399x216.png) <br> <br> ### **方式2:使用空格** ```sql select `name` 我叫什么,age 我年龄多大 from gin_user; ``` ![](https://img.kancloud.cn/53/53/53534cbb0ad72eee8de102ab54f71622_334x196.png) 结果还是一样 <br> <br> ### 案例: 查询age,将结果显示为sign ```sql select age sign from gin_user; ``` <br> <br> >[success] ## 七:去重(DISTINCT) > 案例:查看表中有多少数据 ```sql select `name` from gin_user; ``` :-: ![](https://img.kancloud.cn/ae/cd/aecd0c12ebcd68122f9e37f419fd2d50_270x238.png) >[danger] 这里我故意插入了几条相同的数据,为了下面做铺垫 > **DISTINCT**去重函数 ```sql select DISTINCT `name` from gin_user; ``` :-: ![](https://img.kancloud.cn/a7/d0/a7d025be2de8758204d42dd01490f8ca_442x204.png) <br> <br> >[success] ## **八:MYSQL中 **+** 作用** >1:在mysql中+号只有一个作用就是运算 >2:如果其中一方不是数值(是字符串)类型,则会试图将它转换成数值型,如果转换成功则在进行运算. >3:如果转换失败则,将字符型转换成0 >4:如果其中一方为null,则结果肯定为null ```sql select 100 + 99 select "321" + 79 select "jack" + 100 ``` :-: ![](https://img.kancloud.cn/83/d5/83d5e82288868c149038028fe2cbc6c6_232x77.png) :-: ![](https://img.kancloud.cn/9e/0a/9e0a94232776d52cbabf17fcba6e75fa_299x110.png) <br> <br> >[success] ## **九:concat实现连接** > concat是将所有列整合在一个列里面进行展示 查询员工名字和年龄,并显示为名字 ```sql SELECT CONCAT(`name`,`age`) as 姓名 from gin_user; ``` <br> <br> <br> >[success] ## **十:ifnull判断为空** > 来判断该字段是否为空,需填写两个参数,第一个参数是要判断为空的列名,第二个是为空后需要返回什么 需求:-- 显示出表gin_user中所有的列,每个列用逗号隔开连接,列头显示成OUT_PUT **写的方法1:** ```sql SELECT IFNULL(money, 0 ) AS 奖金, money FROM gin_user; ``` **写的方法2:** ```sql SELECT CONCAT( `id`, ",", `name`, ",", age, ",", money, ",", IFNULL( money, 0 )) AS OUT_PUT FROM gin_user; ``` :-: ![](https://img.kancloud.cn/6b/20/6b200889bcde65d49c08920c88a7cccf_438x268.png) <br> <br> <br> >[success] ## **十一:条件运算符----查询** > 逻辑运算符:and,or,not > 条件运算符:>,<,>=,<=,!=,<> ,== > 模糊查询:like,between,in,is,null **案例1:查询员工工资大于12000的员工信息** ```sql select * from gin_user where money < 12000; ``` :-: ![](https://img.kancloud.cn/81/10/8110004dd36adb0371667d22575c3b36_497x288.png) <br> **案例2:查询部门编号不等于50的员工名和部门编号** ```sql SELECT `name`, Department_id FROM gin_user WHERE Department_id != 50; ``` :-: ![](https://img.kancloud.cn/1a/f5/1af5d724357aa8cf005c81755115151a_482x359.png) <br> 案例3:查询工资在10000-20000之间,的员工名,工资,奖金 ```sql SELECT `name`, money, bonus FROM gin_user WHERE money > 10000 AND money < 20000; ``` :-: ![](https://img.kancloud.cn/26/08/260841733f31a39f339cf77b9bc2070e_515x173.png) <br> **案例4:查询部门编号不是在50到70之间,或者工资离于15000的员工信息** ```sql SELECT * FROM gin_user WHERE NOT ( Department_id > 50 AND Department_id < 70 ) OR money > 15000 ``` :-: ![](https://img.kancloud.cn/0d/a8/0da858e95b7b4f0c1b61df6f2cf00c5e_500x349.png) >[info] ### **(1):条件运算符----模糊查询** >一般和通配符搭配使用 >通配符:% 的意思是任意多个字符 **案例1:查询员工名中包含“小”的员工信息** ```sql SELECT * FROM gin_user WHERE `name` LIKE "%小%"; ``` :-: ![](https://img.kancloud.cn/e0/a0/e0a0cb3133b6ae61f12d948e4f5ff2c3_471x106.png) <br> <br> **案例2:查询员工名中第二个字符为d,第4个字符为F的员工名和工资** ```sql SELECT * FROM gin_user WHERE `name` LIKE '_d__F%'; ``` :-: ![](https://img.kancloud.cn/2d/33/2d33240a88e4f61430fe47d73f772687_519x71.png) <br> <br> >[info] ### **(2):条件运算符----in** > 含义:in就是判断查询列表中的值是否属于in列表中的某一项 > 特点:in类型中的值类型必须统一 #### **案例1:** **查询员工id是13,15,17的员工姓名和薪资** ```sql SELECT `name`, money FROM gin_user WHERE `id` IN ( 13, 15, 17 ); ``` <br> #### **案例2:** **查询有多少个没有奖金的员工名和奖金** ```sql SELECT `name`, bonus FROM gin_user WHERE bonus IS NULL; ``` :-: ![](https://img.kancloud.cn/38/62/386202ad776ac374b7ea03e8b0b93055_347x135.png) >[danger] 注意:这里不能写成,bonus = null,错误,因为= 不能判断null类型 <br> #### **案例3:** **查询有奖金的员工名和奖金 ** ```sql SELECT `name`, bonus FROM gin_user WHERE bonus IS NOT NULL; ```