前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >产品经理从0开始学SQL(二)

产品经理从0开始学SQL(二)

作者头像
产品的技术小课
发布2021-11-02 14:06:04
4530
发布2021-11-02 14:06:04
举报

这是从0开始学SQL的第二课:单表查询。单表查询是指只从一张表中查找数据,不需要关联多张表的查询。

SQL查询的基本结构由三个子句构成:select、from和where。

查询模版如下:

代码语言:javascript
复制
select 字段1,字段2,字段3 from 表名 where 条件

1、select命令后面跟着要查询的字段名,如果想查询表的所有字段名,可以用*表示。需要注意的是select 如果有多个字段,字段之间需要用英文逗号分隔。

2、from 命令跟着的是表名

3、where 后面跟着的是查询条件,查询条件可以很简单,也可以嵌套。后面系列文章会讲解。

举个例子来看下查询语句该怎么写。假如有这样一张学生信息的表:t_user

id

name

sex

age

major

tuition

1

张三

18

会计

5000

2

李四

19

软件工程

8000

3

陈红

17

软件工程

8000

1、找出所有学生的姓名。学生的姓名字段是name,因此我们应该把name字段放在select 中,表名是t_user,语句:

代码语言:javascript
复制
select name from t_user

查询结果:

name

张三

李四

陈红

2、找出性别是女性的所有学生信息。所有学生信息需要展示所有的字段,可以使用*号代替,查询条件是性别女,语句:

代码语言:javascript
复制
select * from t_user where sex='女'

查询结果:

id

name

sex

age

major

tuition

3

陈红

17

软件工程

8000

3、找出所有的专业名。因为一个专业有多名学生,所以查询出的专业名称不止一个。为了去除重复,我们可以在select后面加上关键词 distinct。这样就可以去除重复的记录了。

语句:

代码语言:javascript
复制
select distinct major from t_user

查询结果:

major

会计

软件工程

4、select 子句还可以带有+、-、*、/ 运算符的算术表达式。运算对象可以是常数或字段名。比如找出学费增长1.1倍后的学费结果。语句:

代码语言:javascript
复制
select name,tuition*1.1  from t_user

5、where 子句允许使用逻辑连词and 、or、not。比如找出专业是软件工程且性别是女性的学生信息。

语句:

代码语言:javascript
复制
select * from t_user where major='软件工程' and sex='女'

查询结果:

id

name

sex

age

major

tuition

3

陈红

17

软件工程

8000

6、where 子句还支持比较运算符 < 、>、<=、>=、=。比如找出年龄小于19岁的学生。

语句:

代码语言:javascript
复制
select * from t_user where age<19

查询结果:

id

name

sex

age

major

tuition

1

张三

18

会计

5000

3

陈红

17

软件工程

8000

7、更名运算。

select 的字段名可以更改,这样在查询结果中显示的就是更改后的属性名。

表名也可以更改,更改表名在多表查询时非常有用。

语法:

old-name as new-name。

比如:

代码语言:javascript
复制
select name as "姓名" from t_user。

查询结果:

姓名

张三

李四

陈红

8、字符串运算。sql使用一对英文单引号或双引号来表示字符串。比如name="张三"。字符串是大小写敏感的,比如"Comp" 和 "comp"是不相等的。字符串还可以使用like关键字来模糊匹配。

语法:

代码语言:javascript
复制
name like '张%' 表示以张开头的姓名
代码语言:javascript
复制
name like '%张' 表示以张结尾的姓名
代码语言:javascript
复制
name like '%张%' 表示字符串中存在张字的姓名

9、排序。sql提供了order by 关键字来排序。order by 语句是默认使用升序。

语法:

代码语言:javascript
复制
select * from t_user order by age 表示按照年龄升序
select * from t_user order by age asc 表示按照年龄升序
select * from t_user order by age desc 表示按照年龄降序
select * from t_user order by age desc,name asc。表示按照年龄降序且按姓名升序。排到前面的字段,优先级越高。

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 产品的技术小课 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档