1.sql plus
1,SQL plus的定义 sql plus是用来和oracle进行交互的工具。可电脑端使用,也可以在服务器上使用 2,启动SQLplus 在cmd界面直接输入SQLplus就可进入 3,常用命令 show 显示SQL plus中的信息 connect (缩写conn) 先无条件断开数据库用户的链接,再次输入可再次建立链接 disconnect (缩写desc) 断开当前连接 注意:desc 为描述命令,只能在命令窗口执行 语法:desc 表名 查询表的表头名字及类 set 设置SQLplus中的相关信息 help 获取SQLplus命令帮助 clear scree 清屏 exit或quit 退出 4,创建用户 第一部分:创建一个普通用户 语法:create user 用户名 identified by 密码; 第二部分:授权此用户 授权角色在oracle中有3个 DBA 系统管理权限 connect 创建会话链接权限 resource 操作数据库对象的权限 语法:grant 权限,权限..to 用户名; 修改密码:alert user 用户名 identified 新密码; 删除用户:drop user 用户名; 账户解锁:alert user 用户名 account unlock; 最后导入SQL脚本:第一,把脚本内容复制黏贴到SQLplus; 第二,@文件路径 文件名.后缀名
2.sql查询语句
1,SQL条件查询 where字句用来过滤查询的数据,它对字面量大小写是敏感 语法: select 列名1,列名2... from 表名 where 筛选的条件; 2. --select后面是*,代表查列表的所有的内容 select * from 表名;
3.SQL运算符
a.比较运算符 >, <, =, <=, >=, !=(^=,<>) --不等于 --查询在41部门的员工名字,工资 select first_name,salary --(此处布局为select语句的书写格式) from s_emp where dept_id=41; --找出工资大于1200的员工的全名、工资、职位(把两个名字连起来用||' '|| 在引号中间可放符号 汉字等根据客户需要) select first_name||' '||last_name 全名,salary 工资,title 职位 --汉字代表前面的别名(salary显示出来的列名是工资) from s_emp where salary >1200; b.逻辑运算符 and ,or --and优先级高于or --查出41部门中工资高于1200的员工名字,工资; select first_name, salary ,dept_id from s_emp where dept_id = 41 and salary > 1200; --查出41,50,42部门的员工名字,薪水; select first_name,salary from s_emp where dept_id=41 or dept_id=42 or dept_id=50; c.其它运算符 1.in() 相当于or 。 取多个数值,多个值之间使用逗号隔开 not in() 相当于and。 显示出来的意思为不包含括号里面的内容 例:deot_id in(41,42,50)相当于dept_id=41 or dept_id=42 or dept_id=50; --查出在41,42,50部门的员工名字,薪水; select first_name,salary from s_emp where dept_id in(41,42,50); 例:dept_id between 2 and 6 在指定的范围之内,是全闭空间;相当于dept_id>=2 and dept_id<=6 dept_id>2 and dept_id<6 非全闭空间 --找出工资在1200到1500之间的员工名字;(全闭和不全闭) 全闭: select first_name,salary from s_emp where salary between 1200 and 1500; 非全闭: select first_name,salary from s_emp where salary >1200 and salary <1500; 2.is null
is not null 注意:查询数据时条件是否为null,我们使用关键字is null 或者is not null ,千万不能使 用=(即等号) --找出工资大于1500并且没有提成的员工; select * from s_emp where salary > 1500 and commission_pct is null; 3.模糊查询:like '' not like '' 引号里面用通配符: _ 英语状态下的下划线,代表任意单个字符 % 代表任意多个字符 --查询名字是以M打头的员工; select * from s_emp where first_name like 'M%'; --查出姓名中第三个字母是e的员工; select * from s_emp where first_name like '__e%'; --查出姓名不带a的员工; select * from s_emp where first_name not like'%a%';
4.order by排序
排序字句: select 列名1,列名2... from 表名 where 查询条件 order by 列名 asc(升序,默认可以不写)|desc(降序) --找出查询职位是Stock Clerk的员工全名、工资,并按照工资的降序排序 select first_name||' '||last_name 全名,salary 工资 from s_emp where title = 'Stock Clerk' order by salary desc; --查询职位中带vp(大写)的员工名字,工资,并按照工资降序排序; select first_name,salary,title from s_emp where title like '%VP%' order by salary desc; --查询出年薪(包含提成)低于25000的员工名称,职位,年薪,并按照年薪升序排序; select first_name 名字,title 职务,salary 薪资,salary*12*(1+nvl(commission_pct/100,0)) 年薪 from s_emp where salary*12*(1+nvl(commission_pct/100,0))<25000 order by salary*12 asc;