资源预览内容
第1页 / 共36页
第2页 / 共36页
第3页 / 共36页
第4页 / 共36页
第5页 / 共36页
第6页 / 共36页
第7页 / 共36页
第8页 / 共36页
第9页 / 共36页
第10页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
SQLdesc 表名SQLdesc s_emp脚本 sql.txt sql.sql 1.上传脚本2.运行脚本 绝对路径/文件名 文件名(关注语言环境)select userenv(lang) from dual; USERENV(LANG)-USUSERENV(LANG)-ZHSdesc 一张表Name Null? Type- - -ID 员工id NOT NULL NUMBER(7)LAST_NAME 姓 NOT NULL VARCHAR2(25)FIRST_NAME 名 VARCHAR2(25)USERID 员工描述 VARCHAR2(8)START_DATE 入职日期 DATECOM MENTS 备注 VARCHAR2(255)MANAGER_ID 领导的员工id NUMBER(7)TITLE 职位 VARCHAR2(25)DEPT_ID 部门id NUMBER(7)SALARY 月薪 NUMBER(11,2)COMMISSION_PCT 提成 NUMBER(4,2)sql语句的分类:数据检索 select数据操作 insert delete update数据定义 create drop alter事务控制 commit rollback savepoint数据控制 grant revoke选择 投影 连接查询语句:A from 子句 1.查询出任意一个字段 select 字段名 from 表名; select salary from s_emp; 2.查询多个字段 (用逗号分割) select first_name,salary from s_emp; 3.* 号可以替代所有的字段 select * from s_emp; 4.表头的原样显示 -使用双引号 select first_name,salary sal from s_emp; select first_name,salary sal from s_emp; 可以让别名中包含空格 select first_name,salary emP sal from s_emp; 5.字段的数学运算 求每个人的年薪 select salary*12 yearsal from s_emp; 换一种年薪计算方式 考虑提成 select salary*12*(1+commission_pct/100) yearsal from s_emp; select salary*12*(1+commission_pct/100) yearsal from s_emp; nvl 空值处理函数 nvl(值/字段,如果是空要得到的值) 第一个参数是NULL 就返回第二个参数 如果第一个参数不是NULL 返回第一个参数 select nvl(salary*12*(1+commission_pct/100),0) yearsal from s_emp;/logic error 空值要尽早处理 空值和任何值做运算 都是NULL select salary*12*(1+nvl(commission_pct,0)/100) yearsal from s_emp; 6.想把姓名显示出来 select first_name,last_name from s_emp; 字符串连接 | select first_name|last_name from s_emp; 字符串的表达 hello _ select first_name|_|last_name from s_emp; thiss select first_name|last_name from s_emp; 7.排重显示 -distinct select salary from s_emp; select distinct salary from s_emp; 补充:联合排重 select distinct salary,id from s_emp; clear screen !clear B 条件子句 where where 字段表达式 表达式 找出工资大于1400的 first_name,salary select first_name,salary from s_emp where 1=1;/全部显示 select first_name,salary from s_emp where 1=2;/无显示 select first_name,salary from s_emp where salary1400; where 条件 限制行的返回 符合条件返回 不符合过滤掉 字段表达式中可以使用的比较运算符 = 一个等号判断相等 找出first_name ,manager_id 是Carmen 的工资 select first_name,salary,manager_id from s_emp where first_name=Carmen; 数字类型可以直接用等号判断相等 字符串不要忘记单引号 oracle sql 大小写不敏感 单字符串的值大小写敏感 = != = between and not between and in not in like not like is null is not null oracle(sql) 也提供了一些运算符 字段 between a and b 表达一个闭区间a,b 工资 salary 在800,1400 select first_name,salary from s_emp where salary between 800 and 1400; 字段 in (list) list用逗号隔开的一组值 查询一下 部门号 在 41 42 50 人first_name,salary select first_name,salary,dept_id from s_emp where dept_id in (41,42,50); 顺序对最终结果没有影响 但对效率可能产生影响 字段 is null 判断一个字段是不是NULL id 是1的人manager_id 是不是NULL select id,first_name from s_emp where manager_id is null; like -模糊查询 成龙配套 成龙 李小龙 龙飞凤舞 first_name 中带a字符的 统配符: % 代表n个任意字符 _ 一个任意字符 %a% %a a% _a% %a_ select first_name from s_emp where first_name like %a%; 找出第二个字符是a select first_name from s_emp where first_name like _a%; user_tables-数据字典表,存储了数据库中所有表的信息 desc user_tables TABLE_NAME 表名 select table_name from user_tables; s_emp s_dept s 找出所有s_开头的表名 select table_name from user_tables where table_name like s_%; user_tables 数据字典表-默认处理成大写 select table_name from user_tables where table_name like S_%; select table_name from user_tables where table_name like S_%;/logic error 转义 select table_name from user_tables where table_name like S_% escape ; select table_name from user_tables where table_name like S|_|%;/logic 逻辑连接符号 and or ! 工资 salary 在800,1400 select first_name,salary from s_emp where salary between 800 and 1400 ; select first_name,salary from s_emp where salary
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号