MySQL语句基础之单表查询

一、select 语句的基本语法格式
select column1,column2… from 数据源 【where condition】
注意事项
1、数据源可以是表,也可是是视图。
2、如果没有where条件,则默认选出所有的行。
3、如果想选择出所有列,则可以使用 * 代表所有列。
4、select语句进行查询时,可以在select语句中使用算术运算符,其中,两个日期之间只可以进行减法运算,两列之间也可以进行运算。
select 后的不仅可以是数据列,也可以是表达式、变量、常量等。teacher_table表如下,
+————+————–+
| teacher_id | teacher_name |
+————+————–+
| 11 | zhangsan |
| 22 | lisi |
| 33 | wulongjian |
| 44 | cuichenchen |
| 55 | yuanlulu |
| 66 | mihailong |
+————+————–+

 select 3*5, 20 from teacher_table;
+-----+----+
| 3*5 | 20 |
+-----+----+
|  15 | 20 |
|  15 | 20 |
|  15 | 20 |
|  15 | 20 |
|  15 | 20 |
|  15 | 20 |
+-----+----+
但其实这并没有过多的意义。
5、在MySQL中,使用***concat***函数来进行字符串连接运算,代码即运算结果如下
 select concat (teacher_name,'xx')
    -> from teacher_table;
+----------------------------+
| concat (teacher_name,'xx') |
+----------------------------+
| zhangsanxx                 |
| lisixx                     |
| wulongjianxx               |
| cuichenchenxx              |
| yuanluluxx                 |
| mihailongxx                |
+----------------------------
  5.2,在MySQL中,如果**在算术表达式中使用null,会导致其返回值为null,在字符串链接运算中出现null,会导致其结果也是null**
 select concat(teacher_name,null) from teacher_table;
+---------------------------+
| concat(teacher_name,null) |
+---------------------------+
| NULL                      |
| NULL                      |
| NULL                      |
| NULL                      |
| NULL                      |
| NULL                      |
+---------------------------+
5.3 concat等运算符也可以在多列之间进行运算。
 select teacher_id +5 MY_id, concat (teacher_name,teacher_id) lianjie,teacher_name SB_name from teacher_table where teacher_id *2 >33;
+-------+---------------+-------------+
| MY_id | lianjie       | SB_name     |
+-------+---------------+-------------+
|    27 | lisi22        | lisi        |
|    38 | wulongjian33  | wulongjian  |
|    49 | cuichenchen44 | cuichenchen |
|    60 | yuanlulu55    | yuanlulu    |
|    71 | mihailong66   | mihailong   |
+-------+---------------+-------------+

6、如果不希望直接使用列名作为列标题,则可以为数据列或表达式起一个别名,别名紧跟数据列,中间以空格隔开,或者使用as关键字隔开,表名同样也可以更改,规则和列一样。

select teacher_id + 5 MY_ID , teacher_name SB_name from  teacher_table t; 
+-------+-------------+
| MY_ID | SB_name     |
+-------+-------------+
|    16 | zhangsan    |
|    27 | lisi        |
|    38 | wulongjian  |
|    49 | cuichenchen |
|    60 | yuanlulu    |
|    71 | mihailong   |
+-------+-------------+

6,.2 如果需要选择多列,并为多列起别名,则列与咧之间以逗号隔开,但列和列别名用空格隔开

 select teacher_id + 5 MY_ID , teacher_name S_name from  teacher_table;
+-------+-------------+
| MY_ID | S_name     |
+-------+-------------+
|    16 | zhangsan    |
|    27 | lisi        |
|    38 | wulongjian  |
|    49 | cuichenchen |
|    60 | yuanlulu    |
|    71 | mihailong   |
+-------+-------------+

7、可以用关键字distinct从查询结果中清除重复行,student_table数据如下

 +------------+--------------+--------------+
| student_id | student_name | java_teacher |
+------------+--------------+--------------+
|          1 | one          |            1 |
|          2 | two          |            2 |
|          3 | three        |            3 |
|         11 | one          |            1 |
+------------+--------------+--------------+
 select distinct student_name,java_teacher from student_table;
+--------------+--------------+
| student_name | java_teacher |
+--------------+--------------+
| one          |            1 |
| two          |            2 |
| three        |            3 |
+--------------+--------------+
使用distinct去除重复行时,distinct紧跟select关键字

8、MySQL中判断两个值是否相等的比较运算符是单等号,判断不相等的运算符是<>;Sql中的赋值运算符是冒号等号 :=
8.1 Sql中还支持三个特殊的比较运算符
expr1 between expr2 and expr3 —要求expr1 >= expr2 && expr1<=expr3

 select * from student_table where student_id between 2 and 4;
+------------+--------------+--------------+
| student_id | student_name | java_teacher |
+------------+--------------+--------------+
|          2 | two          |            2 |
|          3 | three        |            3 |
+------------+--------------+--------------+

expr1 in (expr2,expr3,expr4,…) —要求expr1等于后面括号里的任意一个表达式的值

 select * from student_table where student_id in (2,4);
+------------+--------------+--------------+
| student_id | student_name | java_teacher |
+------------+--------------+--------------+
|          2 | two          |            2 |
+------------+--------------+--------------+

like — 主要用于进行模糊查询,使用两个通配符: 下划线_ 和 百分号%,其中下划线可以代表一个任意的字符,百分号可以代表多个任意的字符。在某些特殊的情况下,查询的条件里需要使用下划线或百分号,不希望Sql把下划线和百分号当成通配符使用,这就需要使用转义字符,MySQL使用*反斜线*作为转义字符。
9. 执行查询后的查询结果默认升序排列(asc),如果强制按降序排列,需要在列后使用desc关键字。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值