资源预览内容
第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
第9页 / 共23页
第10页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
sql知识点归纳总结sql知识点归纳总结ICase的使用Case具有两种格式,简单Case函数和Case搜索函数1)Casesexwhen lthen 男When2then 女Else 其他end2)Casewhensex二 lt hen 男Whensex二 2 then 女Else 其他end注:1)只返回第一个符合条件的值,剩下的Case部分将会被自动忽略2union/unionall 的使用1)select*fromtable1unionallselect*fromtable22)select*fromtable1unionselect*fromtable2注:1)不合并重复的行,2)会合并重复的行3数据表的连接1)、内连接(自然连接):只有两个表相匹配的行才能在结果集中出现2)、外连接:包括(1)左外连接(左边的表不加限制)(2)右外连接(右边的表不加限制)(3)全外连接(左右两表都不加限制)3)、自连接(连接发生在一张基表内)selecta.studentno,a.studentname,b.classnamefromstudentsa,class esbwherea.classid(+)二b.classid;STUDENTNOSTUDENTNAMCLASSNAME1周虎一年级一班2周林 一年级二班一年级三班以上语句是右连接:即(+)所在位置的另一侧为连接的方向,右连接说明等号右侧的所有 记录均会被显示,无论其在左侧是否得到匹配。也就是说上例中,无论会不 会出现某个班级没有一个学生的情况,这个班级的名字都会在查询结构中出 现。反之:selecta.studentno,a.studentname,b.classnamefromstudentsa,class esbwherea.classid二b.classid(+);STUDENTNOSTUDENTNAMCLASSNAME1周虎一年级一班2周林 一年级二班3钟林达则是左连接,无论这个学生有没有一个能在一个班级中得到匹配的部门 号,这个学生的记录都会被显示。selecta.studentno,a.studentname,b.classnamefromstudentsa,class esbwherea.classid二b.classid;这个则是通常用到的内连接,显示两表都符合条件的记录总之,左连接显示左边全部的和右边与左边相同的右连接显示右边全部的和左 边与右边相同的内连接是只显示满足条件的!4Dis tine t(去重)5 组函数:如 sum(),avg(),count()1数据类型数字:number(n)数字number(n,m)浮点字符串:char(n)定 长,方便查询,varchar(n)变长,节省空间,varchar2(n)oracle自定义变长 日期:date创建表crea tet able表名(列名列类型,)插入数据inser tin to表 名values(列值,)注:数据库中字符用单引号表示,数字不用Commit;查询select*from表名删除表droptabledept_xxx查询“|”符号表示 两个数据串接起来Distinct只能跟在select后边如: selectdistinetjobfromemp_xxxWhere 条件查询注:sql 语句大小写不敏 感,但数据大小写敏感女口: select*fromemp_xxxwherejob二Analyst 如果数据上 analyst 就 查不出来Be tween低值and髙值In(列表)女口:select*fromemp_xxxwherejob二Managerorjob二AnalystSelec t*fromemp_xxxwherejobin(Manager,Analys t)模糊匹配 like% ”表示0至多个字符,跟like配合使用“_”下划线表示一个字符女口: select*fromemp_xxxwherejoblikesale_查询哪些员工没有奖 金 Select*fromemp_ningwherebonusisnull;注:这里用的是 is 而不是二否定形式:isnotnull,notbetweenand.,notinCommit提交数据,rollback数据回滚数字函数Round(数字,小数点后 的位数)用于数字的四舍五入Trunc(数字,小数点后的位数)用于截取注:如果没有延续二个参数,默认是0转换函数To_date()将字符串数据按指定 格式,转换为日期数据To_char()将日期数据按指定格式转换为字符串数据 To_char(日期数据,格式):把日期数据转换为字符数据Selectto_char(sysdate,yyyymmddhh24:mi:ss)fromdual;日期格式:To_date按指定时间格式插入数据Insertintoemp_xxx(empno,ename,hiredate)values(1012,any,to_date (202*T0T0,yyyy-mm-dd)Case语句,decode函数函数的嵌套:f3(f2(f1(p1,p2),p3),p4)查询结果排序orderby*desc,asc注:排序可以用列名,列别名,表 达式,函数,甚至可以用数字,表示按第几列排序组函数 Count(*),avg(),sum(),max(),min();注:组函数:count/avg/sum/max/min如果函数中写列名,默认忽略空值Avg/sum针对数 字的操作Max/min对所有数据类型都可以操作分组查询groupby*Groupby列名:表示按指定列分组查询例:每个部 门的薪水总和和平均薪水Selectdeptno,sum(salary)sum_s,avg(nvl(salary,0)avg_sfromemp_xxxGr oupbydeptno;Having子名用于对分组后的数据进行过滤注:区别where是对表中数据的过滤,having是对分组得到的结果数 据进一步过滤如:平均薪水大于5000无的部门数据,没有部门的不算在内Selectdeptno,avg(nvl(salary,0)avg_sfromemp_xxxwheredetnoisnot nullgroupbydeptnohavingavg(nvl(salary,0)5000子查询查询最髙薪水的是谁Selectenamefromemp_xxxwheresalary=(selectmax(salary)fromemp_xxx)总结:查询语句的基本格式:Select字段1,字段2,字段3,表达 式,函数,。From表名Where条件Groupby列名Having带组函数的条 件Orderby 列名组 函数:count/avg/sum/max/min 单行函数Trim,replace,lengthTo_number子查询:单行比较运算符=6000表关联,主键(primarykey,pk)主键要求不重复,不能是空值外键 (Foreignkeyfk)外键参照主键的数据3内连接,匹配表,驱动表Rownum关键字是Oracle数据库提供的,代表秸民更新数据Update表名set列名二新列值,列名二新的列值注:更新(update)数据表时,注意条件,如果不加条件,修改的是全 部表记录删除数据Deletefrom表名where条件Drop删除表(删除结构和全部的表数据)Drop table表名操作将删除数 据存储到临时空间中,不直接删除,可以回退Truncate保留表结构,删除表中所有数据Truncatetable表名;在功能上等同于Delete+commit,直接删除,不占 用临时空间,不能回退扩展阅读:SQL SERVER重要知识点归纳1, 数据模型:由数据结构、数据操作和数据的完整性约束组成。2, 在E-R概念模型中,信息由实体型、实体属性和实体间联系3种概 念单元来表示。3, 第一范式(1NF):设R是一个关系模式,如果R中的每个属性都是 不可分解的,则称R是第一范式;第二范式(2NF):如果关系模式R是第 一范式,且每个非码属性都完全依赖于码属性,则称R是第二范式;第三范 式(3NF):如果关系模式是R第二范式,且没有一个非码属性传递依赖于 码,则称R是第三范式。4, Transact-SQL语句的分类如下所示:1变量声明Transact-SQL语言可以使用两类变量,局部变量和全局变 量。O2数据定义语言(DataDefinitionLanguage,DDL),用来建立数据库及数 据库对象,绝大部分O以 Create 开头,如 CreateTable 等3数据控制语言(DataControlLanguage,DCL),用来控制数据库组件的 存取访问、权限等命O令,如 GRANT、 REVOKE 等4数据操纵语言(DataManipulationLanguage, DML),用来操纵数据库 中数据的命令,如OSELECT、 UPDATE 等5流程控制语言(FlowControlLanguage,FCL),用于控制应用程序流程 的语句,如IF、CASEO等。5, 数据类型:整数型:bigint(8 个字节,-263263T),int(4 个字节,-231231-1),smallint(2 个字节,-215215-1), tingyint(1 个字节,0255);小数数据类型:decimal(p,s)p精度:指定小数点左边和右边可以存储的十进制数 字的最大个数。138s小数位数:0p之间的值;numeric(p,s)近似数 值型:float(n)n: 153 取值范围:T.793081.79308real 取值范围: 3.40383.4038字符型(字符常量必须包含在单引号或双引号中):char(n):长度为n个字节的固定长度且非Unicode的字符数据,存 储大小为n个字节。n必须是一个介于1和8000之间的数值。varchar(n):长度为n个字节的可变长度且非Unicode的字符数据。n必须是一个介于1和8000之间的数值。存储大小为输入数据的字节的实 际长度,而不是n个字节,所输入的数据字符长度可以为0t ex t:用来声明变长的字符数据。在定义的过程中,不需要指定字符的 长度,最大长度为231-1 (2147483647)个字符。当服务器代码页使用双字 节字符时,存储量仍是2147483647字节。存储大小可能小于2147483647字 节(取决于字符串)逻辑数值型:bit:可以存储整数型数据1、0或NULL。如果输入0以外的其他值, SQLServer均将其作为1看待。货币型:money:可存储的货币数值介于-263263T之间,精确到货币单位的万 分之一,货币数据的存储精确度为4位小数,存储大小为8个字节;smallmoney:可存储的货币数据值介于-214748.3648214748.3647,货 币数据的存储精确度为4位小数,精确到货币单位的万分之一,存储大小为 4个字节。Unicode字符型:nvarchar:当列中各项所包含的Unicode字符数不同时(至多为4000)时使用;nchar:当列中各项为一固定长度时(至多为4000个 Unicode字符)时使用
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号