1、视图

视图中存放的是sql查询语句,使用视图时,运行视图中的sql语句创建出临时表。

创建视图:

create view 视图名称(<视图列名1>,<视图列名2>,……) as

<select 查询语句>;




sql server如何查询小数字段长度大于2的_sql 字符串替换


sql server如何查询小数字段长度大于2的_sql 余数_02


使用视图:在from字句中使用视图名称代替表名称。

视图数据会同步表数据,因为视图使用是执行sql语句。

删除视图:右键视图名称,选择删除。

为什么要使用视图:某一部分sql查询语句需要频繁使用,则可以保存为视图多次调用。

使用视图注意事项:

①、避免视图的基准上再创建视图,会降低使用性能和效率;

②、不能往视图里插入数据。

2、子查询——一次性的视图(select包含的其他子查询)

sql运行顺序:先运行子查询


sql server如何查询小数字段长度大于2的_sql 字符串截取_03


应用函数后的分组结果没有包括学号,所以查询结果的学号不是正确结果,需要运用子查询查出正确学号。


sql server如何查询小数字段长度大于2的_sql 字符串替换_04


用了老师的办法,但是因为语文的最低成绩和英语的非最低成绩重合了,所以查询出了错误的数据(最后一行)。


sql server如何查询小数字段长度大于2的_sql 字符串截取_05


子查询后再加一次分组,没有错误的数据了,但是把语文同为最低成绩的另一个学号抹掉了,暂时没有想到解决办法==

3、ANY(子查询)与ALL(子查询)

(1)any(子查询)与some(子查询)相同

用法:SELECT 列名1 FROM 表名1 WHERE 列名1>any(子查询);


sql server如何查询小数字段长度大于2的_sql 余数函数_06


sql server如何查询小数字段长度大于2的_sql 如何交换一个字符两侧字符的顺序_07


注意事项1:不能写成 a>3*all(b)

正确: a/3>all(b)

注意事项2:不要在子查询里嵌入子查询,不易读且会影响性能

注意事项3:注意备注子查询名称,方便事后回看或者其他人查看

SELECT……FROM……子查询 AS 子查询名称

4、标量子查询

什么是标量子查询?子查询结果返回一行一列,一个单一的值,就称为标量子查询。

可和比较运算符使用或in、any、all、between。


sql server如何查询小数字段长度大于2的_sql 余数_08


sql server如何查询小数字段长度大于2的_sql 如何交换一个字符两侧字符的顺序_09


sql server如何查询小数字段长度大于2的_sql 字符串替换_10


5、关联子查询 使用关联条件的子查询,需要在每个组里进行比较时使用


sql server如何查询小数字段长度大于2的_sql 余数函数_11


现学现用解决了2.2的问题


sql server如何查询小数字段长度大于2的_sql 如何交换一个字符两侧字符的顺序_12


注意事项:关联条件要写在子查询中

6、如何用SQL解决业务问题

①将问题用易于理解的语言描述出来

②将问题拆解

③用SQL语言实现

如何看懂SQL报错信息

分解查询语句进行逐一排查,如有子查询则分别运行检验。

7、各种函数

①汇总函数:count(列名)—求某列的行数

sum(列名)—对某列数据求和,只能对数值类型的列进行计算

avg(列名)—对某列数据求平均值,只能对数值类型的列进行计算

max(列名)—求某列数据的最大值

min(列名)—求某列数据的最小值

②算数函数

round(数值,保留小数的位数)—对数值进行指定位数的四舍五入

abs(数值)—求绝对值

mod(被除数,除数)—求余数,eg:mod(5,2)=1

③字符串函数

length('字符串')—求字符串长度

lower(‘字符串’)—大写转换为小写

upper(‘字符串’)—小写转换为大写

concat(‘字符串1’,‘字符串2’)—字符串拼接

replace(‘字符串’,‘被替换的字符串’,‘用什么字符串替换’)—字符串替换

substring(‘字符串’,截取的起始位置,截取的长度)—字符串截取

④日期函数

current_date——当前日期

current_time——当前时间

current_timestamp——当前日期和时间

year(日期)——获取日期的年份

month(日期)——获取日期的月份

day(日期)——获取日期的日期

dayname(日期)——日期对应星期几


sql server如何查询小数字段长度大于2的_sql 字符串截取_13


练习题


sql server如何查询小数字段长度大于2的_sql 如何交换一个字符两侧字符的顺序_14


sql server如何查询小数字段长度大于2的_sql 字符串替换_15


我对题目可能有什么误解==


sql server如何查询小数字段长度大于2的_sql 字符串替换_16


sql server如何查询小数字段长度大于2的_sql 如何交换一个字符两侧字符的顺序_17


sql server如何查询小数字段长度大于2的_sql 如何交换一个字符两侧字符的顺序_18


这里一开始想用BETWEEN,错误,包含太多行,BETWEEN是两边闭集。


sql server如何查询小数字段长度大于2的_sql 字符串截取_19


sql server如何查询小数字段长度大于2的_sql 字符串替换_20


sql server如何查询小数字段长度大于2的_sql 字符串替换_21


sql server如何查询小数字段长度大于2的_sql 字符串截取_22


sql server如何查询小数字段长度大于2的_sql 余数函数_23


sql server如何查询小数字段长度大于2的_sql 字符串截取_24


TEST 发布但是链接一直打不开,用文字结束试一下。