首页文章sql server decimal 截取小数点后两位并去掉多余的0 sql截取小数点后两位函数手机号查询机主姓名「sql server decimal 截取小数点后两位并去掉多余的0 sql截取小数点后两位函数」

sql server decimal 截取小数点后两位并去掉多余的0 sql截取小数点后两位函数手机号查询机主姓名「sql server decimal 截取小数点后两位并去掉多余的0 sql截取小数点后两位函数」

时间2025-01-17 03:43:58发布yu分类文章浏览153
导读:1、组合两个表表1: Person PersonId 是上表主键表2: Address AddressId 是上表主键编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:注意审题: 题目说:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息: FirstNa...


1、组合两个表

表1: Person


PersonId 是上表主键

表2: Address


AddressId 是上表主键

编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:

注意审题: 题目说:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息: FirstName, LastName, City, State 也就是说,地址信息(City, State)的查询结果是Null是OK的。但是,姓名(FirstName, LastName)必须有。 2) 为啥不用Where? 因为where的实质就是根据你给的条件(personID相等),选取两表的公共部分。但是,因为PERSON表不是所有人都有地址信息的,但是ADDRESS表只显示有地址信息的人,这样选取出来的就是有地址信息的人,漏掉了没有地址信息的人。所以大家注意,where的本质就是过滤。 3) 如何连接?应该用PERSON表左连接(left join)ADDRESS表,保留person表的所有信息

left join … on

结果:

2、查询重复

编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。

示例:

根据以上输入,你的查询应返回以下结果:

说明:所有电子邮箱都是小写字母。

一、查询

打开数据库

着重号 ` 用以标识字段,当关键字为字段时,以 着重号以区分.

意为表达 name 不是关键字,而是字段.

查询的 可以是 常量、表达式、函数

起别名
  • 关键字 as
  • 使用 空格
  • 如想取的别名中含有特殊符号(空格、¥、#等),需将别名加上双引号
去重

reader表

  • 关键字 DISTINCT
    可以多字段,但是就没有意义了

identity
学生
老师

identity

学生
学生
学生
学生
老师

加号"+"的作用
拼接函数 CONCAT

胡峰学生
包朦穗学生
王文革学生
高文丽学生
郭鹏老师

显示表结构

Field Type Null Key Default Extra

readerid char(10) NO PRI (NULL)
readername varchar(10) NO (NULL)
identity varchar(10) YES (NULL)
gender varchar(10) YES (NULL)
varchar(10) YES (NULL)
school
tel varchar(11) YES (NULL)

IFNULL
  • IFNULL(expr1,expr2)

判断expr1是否为空—> null, 如果为空,以 expr2 代替显示.

ifnull tel

暂未填写电话 (NULL)
1234 1234
暂未填写电话 (NULL)
暂未填写电话 (NULL)
暂未填写电话 (NULL)

ISNULL

判断如果为空,返回1,否则返回0.

iSnull tel

1 (NULL)
0 1234
1 (NULL)
1 (NULL)
0 110

二、条件查询

  • 基本语法
  • 条件运算符
  • 逻辑运算符

表示取到 年龄小于 18 或者 大于 60 的

三种表示方法:

模糊查询

关键字

  • like
  • 通配符 % 和 _

转义字符

当我想查询的字段名包括 下划线 _ 时,我不想让它成为 通配符.

或者 使用关键字 ESCAPE 达到同样效果 , $ 可替换任意字符

表示标识 $ 为转义字符

  • between and
  • in
    判断是否属于
    下面两句可达到相同效果.
    注意:列表中的值 类型需保持相同或兼容
  • is null
  • is not null
  • 安全等于 <=>
    同义

但是 与 where tel = null; 不同义

同义

但是不能写为 where tel is 10086; 语句报错.

Mysql服务的登录与退出

登录:

退出:

三、排序查询 ORDER BY

  • 升序asc
  • 降序desc
  • 默认升序 即 asc可省
  • 除limit子句外,order by都放在最后.
    按字段排序

按表达式排序 或别名

readerid readername identity gender
school tel 表达式排序

S1001 胡峰是的 学生 男 计算机学院 (NULL) 0
S1003 大王_ 学生 女 计算机学院 (NULL) 0
S1004 高文丽但是 学生 女 计算机学院 (NULL) 0
S1005 郭鹏 老师 男 信息学院 110 1100
S1002 包朦穗啊是的 学生 女 计算机学院 1234 12340

LENGTH()函数 获取长度

一个汉字3个字节,

按照名字长度排序

readerid readername identity gender
school tel 名字长度

S1005 郭鹏 老师 男 信息学院 110 6
S1003 大王_ 学生 女 计算机学院 (NULL) 7
S1001 胡峰是的 学生 男 计算机学院 (NULL) 12
S1004 高文丽但是 学生 女 计算机学院 (NULL) 15
S1002 包朦穗啊是的 学生 女 计算机学院 1234 18

多字段排序,先写先排序

length() 长度

作用:获取参数值得字节数

utf-8 字符集

一个汉字占用3个字节

一个字母占用一个字节

例:统计type字段的长度

concat() 拼接

作用:拼接字符串

upper、lower 大小写转换

作用:大小写转换

例:将bookId字段转换为小写

substr、substring 切片

substr只是substring的简写,

注意:SQL中索引从1开始

函数间可嵌套使用

instr 查索引

返回子串第一次出现的索引,找不到则返回 0

例:

trim 除空格

去除空格输出

去除前后指定字符,注意,中间的无法去除

lpad 左填充

填充在左边

rpad 右填充

replace 替换

注意:将所有出现的 都会 替换

round 四舍五入

ceil与floor 向上取整与向下取整

truncate 截取

mod 取余

mod(a,b) == a-a/b*b

now()

获取当前时间

curdate

curtime

year

只 获取年份

month / monthname

datediff 日期差

计算两个日期之间相差的天数, MAX() 减去 MIN(),交换将会得到负值

时间格式转换 str_to_date

作用:识别 年月份

不同格式的话,SQL并不知道哪个是年,哪个是月,哪个是日,需 使用 str_to_date标识

日期转为字符 date-format

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t0icwfqN-1640141208497)(…/python/笔记/img/image-20211103234209833.png)]

if
case

类似switch…case…

判断 number 字段的值与when 中是否相等,相等显示 对应then 中的值

多重if

基本功能:作统计使用

  • NULL都不参与
  • 都支持与distinct关键字
  • 和分组函数一同查询的字段有限制,group by

COUNT(字段) 计数

统计字段出现的次数,不会统计为 NULL 的

例:想查询出teble表 名字 中,带有 “王” 的,有多少个人


SUM(字段) 求和

合计字段之和,NULL不参与运算求和

例:薪资表中,想统计一共发了多少薪资(每个人薪资之和)

avg 平均

平均值会保留小数点后4位,NULL不参与运算求和

sum与avg一般只处理数值类型的

max / min

NULL不参与

基本语法

查询每个学院 number字段的和与平均值

having 关键字

添加分组后的筛选条件,—先查询,进行having 筛选

放在最后

查询每个学院 number字段的和与平均值,且和大于100的

where关键字

—> 查询时,根据条件筛选

分组前筛选—where-----在group by前

分组后筛选----having—在group by后

若where与having都可,优先where效更高

需求:隐藏那个手机号中间4位

隐藏 密码中间两位

图木舒克版权声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com

展开全文READ MORE
小数点截取
2021年最受欢迎的几款轻奢商务手机:外形霸气,价格真香!商务手机「2021年最受欢迎的几款轻奢商务手机:外形霸气,价格真香!」 【Androi】安卓发展历程详解2008年诺基亚收购的手机操作系统「【Androi】安卓发展历程详解」