澳门美高梅游戏官方网站 > 澳门美高梅游戏 > 空值管理,SQL学习笔记五去重

原标题:空值管理,SQL学习笔记五去重

浏览次数:59 时间:2019-11-23

数字函数 ABS:舍入到最大整数。 FLOO君越:四舍五入 ROUNDA是要拍卖的数,B是纯正到小数点后第三位LEN、UPPE君越:字符串侧边包车型大巴空格去掉 RTPRADOIM():字符串侧边的空格去掉 SUBSTQashqaiING(string,start_position,length) string是待管理字符串,start_position是开端截的个数,length是截取的最大尺寸 日期函数 GETDATE():取伏贴明天牛时间 DATEADD,计算增添后的日期 例:DATEADD计算日期date后3天的日子 DATEADD总结日期date前八个月的日子 DATEDIFF(datepart,startdate,enddate):总计八个日子之间的差额。 DATEPART:重返八个日子的一定部分 类型转变函数 CAST(expression AS data_空值管理,SQL学习笔记五去重。type) CONVERT 空值处理函数 尽管查询结果是空,则为第一个参数。假设不为空,则是第八个参数 select isnull as 姓名from T_Employee CASE函数用法 单值决断,约等于switch case CASE expression WHEN value1 THEN returnvalue1 WHEN value2 THEN returnvalue2 WHEN value3 THEN returnvalue3 ELSE defaultreturnvalue END

一同结果集 新建临工数据表 复制代码 代码如下: CREATE TABLE T_TempEmployee (FIdCardNumber VARCHAR,FAge int,PRIMARY KEY; INSERT INTO T_TempEmployee(FIdCardNumber,FName,FAge) VALUES('1234567890121','Sarani',33); INSERT INTO T_TempEmployee(FIdCardNumber,FName,FAge) VALUES('1234567890122','Tom',26); INSERT INTO T_TempEmployee(FIdCardNumber,FName,FAge) VALUES('1234567890123','Yalaha',38); INSERT INTO T_TempEmployee(FIdCardNumber,FName,FAge) VALUES('1234567890124','Tina',26); INSERT INTO T_TempEmployee(FIdCardNumber,FName,FAge) VALUES('1234567890125','Konkaya',29); INSERT INTO T_TempEmployee(FIdCardNumber,FName,FAge) VALUES('1234567890126','Fotifa',46); Union联合 复制代码 代码如下: select FNumber,FAge from T_Employee union select FIdCardNumber,FAge from T_TempEmployee union上下的询问个数和项目必得呼应意气风发致 复制代码 代码如下: select FNumber,FAge,FDepartment from T_Employee union select FIdCardNumber,FAge ,'临时工,无部门' from T_TempEmployee union默许将重新数据去掉。假使不让他去掉,则用union all 复制代码 代码如下: select FName from T_Employee union all select FName from T_TempEmployee

去掉数据再一次 扩大三个字段 alter TABLE T_Employee Add FSubCompany VARchar; ALTER TABLE T_Employee ADD FDepartment VARCHAR; 给新加的字段赋值 UPDATE T_Employee SET FSubCompany='Beijing',FDepartment='Development' where FNumber='DEV001'; UPDATE T_Employee SET FSubCompany='ShenZhen',FDepartment='Development' where FNumber='DEV002'; UPDATE T_Employee SET FSubCompany='Beijing',FDepartment='HumanResource' where FNumber='HR001'; UPDATE T_Employee SET FSubCompany='Beijing',FDepartment='HumanResource' where FNumber='HR002'; UPDATE T_Employee SET FSubCompany='Beijing',FDepartment='InfoTech' where FNumber='IT001'; UPDATE T_Employee SET FSubCompany='ShenZhen',FDepartment='InfoTech' where FNumber='IT002'; UPDATE T_Employee SET FSubCompany='Beijing',FDepartment='Sales' where FNumber='SALES001'; UPDATE T_Employee SET FSubCompany='Beijing',FDepartment='Sales' where FNumber='SALES002'; UPDATE T_Employee SET FSubCompany='ShenZhen',FDepartment='Sales' where FNumber='SALES003'; 查询并去重 select distinct FDepartment from T_Employee select distinct FDepartment,FSubCompany from T_Employee

聚合函数 count,max,min,avg,sum... select count from T_Employee select Max from T_Employee 排序 ASC升序 DESC降序 select * from T_Employee order by Fage 先按年龄降序排列。借使年龄雷同,则按薪酬升序排列 select * from T_Employee order by FAge DESC,FSalary ASC order by 要放在 where 子句之后 通配符过滤 通配符过滤用like 单字符通配符‘_' 多字符通配符‘%' select * from T_Employee where FName like '_erry' NULL 是不了然的意思,并不是未有 用SQL语句询问NULL的数目不可能用=或<> 而用is NULL或许is not NULL select * from T_Employee where FName is NULL in同期包容八个值。相当于 23 or 25 between 20 and 30 匹配介于20到30以内的数 group by分组 select FAge, count from T_Employee Group by Fage 先把相通的Fage分风度翩翩组,再计算每意气风发组的个数 group by子句要放在where子句之后。假使想取有些年龄段人数大于1的,不能用where count > 1 ,因为聚合函数不可能放在where子句之后。要用having子句 Having是对分组后的列举办过滤,能用的列和select中的相似。如下例中则不可能用having Fsalary>2003 只好用where Fsalary>2003 select FAge, count from T_Employee Group by FAge having count > 1; 限定结果集的界定 select Top 3 * from T_Employee order by FSalary DESC 从第六名开端选3个.2006后能够用Row_Number函数 select Top 3 * from T_Employee where FNumber not in(select TOP 5 FNumber from T_Employee order by FSalary DESC) order by FSalary DESC

复制代码 代码如下:Select * from T_Employee select FName,FAge from T_Employee select FName from T_Employee where FSalary < 5000 select FName as 姓名,FAge as 年龄,FSalary as 月薪from T_Employee where FSalary < 5000 select FName as 姓名,FAge as 年龄,FSalary as 月收入,getdate() as 当前时光from T_Employee 3.3.1 SELECT命令的格式与基本接纳Ø数据查询是数据库中最遍布的操作。 ØSQL语言提供SELECT语句,通过询问操作可获得所需的音信。 ØSELECT语句的貌似格式为: SELECT〈列名〉[{,〈列名〉}] FROM〈表名或视图名〉[{,〈表名或视图名〉}] [WHERE〈检索条件〉] [GROUP BY [HAVING ]] [ORDER BY [ASC|DESC]]; ØØ查询的结果是仍然为三个表。 ØSELECT语句的推行进程是: Ø依照WHERE子句的物色条件,从FROM子句钦定的基本表或视图中筛选满意条件的元组,再依据SELECT子句中钦命的列,投影获得结果表。 Ø即使有GROUP子句,则将查询结果依照相通的值实行分组。 Ø要是GROUP子句后有HAVING短语,则只输出满足HAVING条件的元组。 Ø假诺有OLX570DETucson子句,查询结果还要依照的值举行排序。 Ø例3.21 查询全部学子的学号、姓名和年龄。 SELECT SNO, SN, AGE FROM S Ø例3.22 查询学子的黄金时代体新闻。 SELECT * FROM S Ø用‘ * '表示S表的万事列名,而不必逐个列出。 Ø例3.23 查询选修了学科的学子号。 SELECT DISTINCT SNO FROM SC Ø查询结果中的重复行被去掉 ØØ上述查询均为不接受WHERE子句的免费查询,也称作投影查询。 Ø其它,利用投影查询可调节列名的次第,并可透过点名别称更动查询结果的列题指标名字。 例3.24 查询全体学子的人名、学号和年龄。 SELECT SNAME NAME, SNO, AGE FROM S Ø个中,NAME为SNAME的小名 3.3.2 条件查询 Ø当要在表中寻觅满足某个条件的行时,则需接收WHERE子句钦定询问条件。 ØWHERE子句中,条件经常通过三片段来陈述: 1. 列名; 2. 比较运算符; 3. 列名、常数。 3.3.2.1 非常的大小 例3.25 查询选修课程号为‘C1'的学习者的学号和大成。 SELECT SNO,SCORE FROM SC WHERE CNO='C1'Ø例3.26 查询战表超越85分的学员的学号、课程号和实际业绩。 SELECT SNO,CNO,SCORE FROM SC WHERE SCORE>85 Ø3.3.2.2 多种规范查询 Ø当WHERE子句要求钦赐二个以上的询问条件时,则须要动用逻辑运算符AND、O奥德赛和NOT将其连结成复合的逻辑表明式。 Ø其事先级由高到低为:NOT、AND、O奥迪Q5,客商能够选用括号改正优先级。 Ø例3.27 查询选修C1或C2且分数大于等于85分学子的的学号、课程号和大成。 SELECT SNO,CNO,SCORE FROM SC WHERE AND SCORE>=85 3.3.2.3 明确约束 例3.28 查询薪俸在1000至1500之内的助教的教授号、姓名及职务名称。 SELECT TNO,TN,PROF FROM T WHERE SAL BETWEEN 1000 AND 1500 Ø等价于 SELECT TNO,TN,PROF FROM T WHERE SAL>=1000 AND SAL<=1500 Ø例3.29 查询薪金不在1000至1500里边的少校的教授号、姓名及职务任职资格。 SELECT TNO,TN,PROF FROM TWHERE SAL NOT BETWEEN 1000 AND 1500 3.2.2.4 鲜明群集Ø利用“IN”操作能够查询属性值归于钦点集结的元组。 例3.30 查询选修C1或C2的学子的学号、课程号和成绩。 SELECT SNO, CNO, SCORE FROM SC WHERE CNO IN Ø此语句也能够应用逻辑运算符“ORAV4”完成。 SELECT SNO, CNO, SCORE FROM SC WHERE CNO=‘C1' O宝马X3 CNO= ‘C2'Ø利用“NOT IN”能够查询钦定集结外的元组。 例3.31 查询未有选修C1,也从未选修C2的学员的学号、课程号和实际绩效。 SELECT SNO, CNO, SCORE FROM SC WHERE CNO NOT IN Ø等价于: SELECT SNO, CNO, SCORE FROM SC WHERE CNO!=‘C1' AND CNO!= ‘C2'Ø 3.3.2.5 部分相称查询 Ø上例均归于完全同盟查询,当不知晓完全标准的値时,客商还是可以利用LIKE或NOT LIKE实行局地相称查询。 ØLIKE定义的日常格式为: LIKE Ø属性名必需为字符型,字符串常量的字符能够包罗如下八个特殊符号: Ø%:表示猖狂知长度的字符串; Ø_:表示放肆单个字符。 例3.32 查询全数姓张的名师的教师号和人名。 SELECT TNO, TN FROM T WHERE TN LIKE ‘张%' 例3.33 查询姓名中第三个汉字是“力”的助教号和人名。 SELECT TNO, TN FROM T WHERE TN LIKE ‘_ _力%'Ø注:贰当中中原人民共和国字占八个字符。 3.3.2.6 空值查询 Ø有些字段未有值称之为具有空值。 Ø日常未有为叁个列输入值时,该列的值便是空值。 Ø空值不相同于零和空格,它不占任何存储空间。 Ø比方,有些学子选课后并未有加入考试,有选课记录,但未曾考试战表,考试战表为空值,这与出席考试,成绩为零分的两样。 例3.34 查询未有考试战绩的上学的儿童的学号和对应的课程号。 SELECT SNO, CNO FROM SC WHERE SCORE IS NULL Ø注意:这里的空值条件为IS NULL,不可能写成SCORE=NULL。

本文由澳门美高梅游戏官方网站发布于澳门美高梅游戏,转载请注明出处:空值管理,SQL学习笔记五去重

关键词:

上一篇:字段sql语句_MsSql_脚本之家,多行中的列合併为黄

下一篇:消弭后面的0的sql语句_MsSql_脚本之家,多库查询