MySQL系列复习(6)select查询基础篇

目录

1、基本语法

2、查询常量

3、查询表达式

4、查询函数

5、查询指定的字段

6、查询所有列

7、列别名

8、表别名


环境:mysql5.7.30,cmd命令中进⾏演⽰。
DQL(Data QueryLanguage):数据查询语⾔,通俗点讲就是从数据库获取数据的,按照DQL的语法给数据库发送⼀条指令,数据库将按需求返回数据。

1、基本语法

select 查询的列 from 表名;
注意:
select语句中不区分⼤⼩写,SELECT和select、FROM和from效果⼀样。
查询的结果放在⼀个表格中,表格的第1⾏称为列头,第2⾏开始是数据,类属于⼀个⼆维数组。

2、查询常量

select 常量值1,常量值2,常量值3;
如:

mysql> select 1,'b';
+---+---+
| 1 | b |
+---+---+
| 1 | b |
+---+---+
1 row in set (0.00 sec)

mysql>

3、查询表达式

select 表达式;
如:

mysql> select 1+2,3*10,10/3;
+-----+------+--------+
| 1+2 | 3*10 | 10/3   |
+-----+------+--------+
|   3 |   30 | 3.3333 |
+-----+------+--------+
1 row in set (0.04 sec)

mysql>

4、查询函数

select 函数;
如:

mysql> select mod(10,4),isnull(null),ifnull(null,'第⼀个参数为空返回这个值'),ifnull(1,'第⼀个参数为空返回这个值,否知返 回第⼀个参数');
+-----------+--------------+-----------------------------------------------------+--------------------------------------------------------------------------------+
| mod(10,4) | isnull(null) | ifnull(null,'第⼀个参数为空返回这个值')             | ifnull(1,'第⼀个参数为空返回这个值, 否知返回第⼀个参数')                       |
+-----------+--------------+-----------------------------------------------------+--------------------------------------------------------------------------------+
|         2 |            1 | 第⼀个参数为空返回这个值                            | 1                                                                              |
+-----------+--------------+-----------------------------------------------------+--------------------------------------------------------------------------------+
1 row in set (0.04 sec)

mysql>

说明⼀下:

  • mod函数,对两个参数取模运算。
  • isnull函数,判断参数是否为空,若为空返回1,否则返回0。
  • ifnull函数,2个参数,判断第⼀个参数是否为空,如果为空返回第2个参数的值,否则返回第1个参数的值。

5、查询指定的字段

select 字段1,字段2,字段3 from 表名;
如:

mysql> drop table if exists test1;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> create table test1(
    ->   a int not null comment '字段a',
    ->   b varchar(10) not null default '' comment '字段b'
    -> );
Query OK, 0 rows affected (0.08 sec)

mysql> desc test1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| a     | int(11)     | NO   |     | NULL    |       |
| b     | varchar(10) | NO   |     |         |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.04 sec)

mysql> insert into test1 values(1,'a'),(2,'b'),(3,'c');
Query OK, 3 rows affected (0.03 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from test1;
+---+---+
| a | b |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |
+---+---+
3 rows in set (0.00 sec)

mysql>

说明:
test1表有两个字段a、b, select a,b from test1; ⽤于查询 test1 中两个字段的数据。

6、查询所有列

select * from 表名

说明:
表示返回表中所有字段。

mysql> select * from test1;
+---+---+
| a | b |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |
+---+---+
3 rows in set (0.00 sec)

mysql>

7、列别名

在创建数据表时,⼀般都会使⽤英⽂单词或英⽂单词缩写来设置字段名,在查询时列名都会以英⽂的形式显⽰,这样会给⽤户查看数据带来不便,这种情况可以使⽤别名来代替英⽂列名,增强阅读性。
语法:
select 列 [as] 别名 from 表;
1)使⽤双引号创建别名:

mysql> select a "列1",b "列2" from test1;
+------+------+
| 列1  | 列2  |
+------+------+
|    1 | a    |
|    2 | b    |
|    3 | c    |
+------+------+
3 rows in set (0.00 sec)

mysql>

2)使⽤单引号创建别名:

mysql> select a '列1',b '列2' from test1;
+------+------+
| 列1  | 列2  |
+------+------+
|    1 | a    |
|    2 | b    |
|    3 | c    |
+------+------+
3 rows in set (0.00 sec)

mysql>

3)不⽤引号创建别名:

mysql> select a 列1,b 列2 from test1;
+------+------+
| 列1  | 列2  |
+------+------+
|    1 | a    |
|    2 | b    |
|    3 | c    |
+------+------+
3 rows in set (0.00 sec)

mysql>

4)使⽤as创建别名:

mysql> select a as 列1,b as 列 2 from test1;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2 from test1' at line 1
mysql> select a as 列1,b as '列 2' from test1;
+------+-------+
| 列1  | 列 2  |
+------+-------+
|    1 | a     |
|    2 | b     |
|    3 | c     |
+------+-------+
3 rows in set (0.00 sec)

mysql>

懵逼⽰例,看效果:

mysql> select 'a' 'b';
+----+
| a  |
+----+
| ab |
+----+
1 row in set (0.00 sec)

mysql> select 'a' b;
+---+
| b |
+---+
| a |
+---+
1 row in set (0.00 sec)

mysql> select 'a' "b";
+----+
| a  |
+----+
| ab |
+----+
1 row in set (0.00 sec)

mysql> select 'a' as "b";
+---+
| b |
+---+
| a |
+---+
1 row in set (0.00 sec)

mysql>

认真看⼀下第1个和第3个返回的结果(列头和数据),是不是懵逼状态,建议这种的最好使⽤as,as后⾯跟上别名。

8、表别名

select 别名.字段,别名.* from 表名 [as] 别名;
如:

mysql> select t.a,t.b from test1 as t;
+---+---+
| a | b |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |
+---+---+
3 rows in set (0.00 sec)

mysql> select t.a as '列1',t.b as '列2' from test1 as t;
+------+------+
| 列1  | 列2  |
+------+------+
|    1 | a    |
|    2 | b    |
|    3 | c    |
+------+------+
3 rows in set (0.00 sec)

mysql> select t.* from test1 as t;
+---+---+
| a | b |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |
+---+---+
3 rows in set (0.00 sec)

mysql> select * from test1 as t;
+---+---+
| a | b |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |
+---+---+
3 rows in set (0.00 sec)

mysql>

总结

  • 建议别名前⾯跟上as关键字
  • 查询数据的时候,避免使⽤select *,建议需要什么字段写什么字段

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值