本文共 3425 字,大约阅读时间需要 11 分钟。
概念:结构化语言,
作用:操作数据,管理用户,管理事务。 使用:使用system登录plsql,登录身份sysdba。
-- 这两个杠是注解的意思-- 创建用户-- create user 用户名 identified by 密码create user scott identified by 1234;-- 给用户授予权限--赋予数据库登录连接权限grant connect to scott;--赋予数据库操作资源的权限grant resource to scott;
-- 单表查询-- 查询表中所有数据--select * from 表名select * from emp;-- 查询表中的某个字段-- select 字段名,字段名 from 表名;select empno,ename from emp;-- 查询结果中的字段使用别名--select 字段名 as "别名" from 表名;--as关键字可以省略,若别名中无特殊的字符,双引号也可以省略;select empno 员工编号,ename "员工姓名",job as 工作,mgr as "员工工资" from emp;
-- 连接符 --||作为sql语句连接符, -- 连接符的格式:字段名 || ‘字符集’|| 字段名 -- 一个拼接好的连接在结果集中作为一个新的字段来显示的,可以使用别名来优化显示 select * from emp; select empno || '的名字是'||ename as "信息" from emp; -- 去除重复 --当是多行的时候,多行相同时进行去除 select distinct empno,ename from emp; select distinct mgr from emp; --单字段排序 asc升序,desc降序 -- select * from 表名 order by 字段 asc; -- select * from 表名 order by 字段;默认asc升序 -- select * from 表名 order by 字段名 desc; select * from emp order by empno desc; --多字段排序 --select * from 表名 order by 字段1,字段2 desc; -- select * from 表名 order by 字段1,字段2 ; -- select * from 表名 order by 字段1,字段2 asc; -- 先按照字段1进行排序,若字段1的字段名相同,则按照字段2进行排序。 select * from emp order by empno,ename; select * from emp order by empno desc,ename asc; -- 字段的逻辑运算 --字段时数值类型的时候,可以进行四则运算,也可以同数值类型的字段进行四则运算 select mgr+1000,mgr+comm from emp;
--使用where子查询 --单条件查询 --模式 select * from emp where 字段名 筛选条件; -- 筛选条件是:= ,<,>,<=,>=,<>(这是不等于,标准写法),后面的是不标准的写法,!= -- 字符用单引号括起来,数值可以不用,用了最好,--查询用户名SMITH的用户信息,逻辑运算符=select * from emp where ename = 'SMITH';-- 查询员工工资大于1000的员工信息,逻辑运算符>select * from emp where sal>1000;--查询员工工资不等于3000的员工信息select * from emp where sal <> 3000;--练习--查看工资等于1250的员工信息select * from emp where sal = '1250'--查看工作等于CLERk的员工信息select * from emp where job='CLERK'--查看工资大于等于2000的员工信息select * from emp where sal > 1250--查看工资大于1250的员工姓名和工作select ename,job from emp where sal > 1250--查看工资不等于1500的员工信息select * from emp where sal<>1500--查看入职日期在81年之后的员工信息-- 日期的格式为日-月-年,实例:'03-1月-1981';select * from emp where hiredate > '01-1月-1981'--where的多条件查询--(and,between and,or ,in,is null,is not null,escape,like,)-- 查询有津贴的员工信息-- is null 表示的是数据为空,is not null 表示的数据不为空(比如0.0也是不为空)--多条件使用and关键字进行连接,筛选出所有符合条件的数据 select * from emp where comm is not null and comm >0--查询姓名中包含s,以s开头,以s结尾,第二个字符是‘a’的-- 模糊查询中%表示任意多个任意字符,_表示一个字符,--查询姓名包含的s的用户信息select * from emp where ename like '%S%'--查询姓名以S开头的用户信息 select * from emp where ename like 'S%' --查询姓名以S开结尾的用户信息 select * from emp where ename like '%S' --查询第二字符是A的用户信息 --_表示一个任意字符 select * from emp where ename like '_A%' -- 这里面的_是特殊字符,它本身就是个下划线,但在这里它有了新的含义,但就是使用它本身的意思 --就需要使用escape,escape将普通字符转换成转义字符,转移字符将特殊字符转换成普通字符。 -- select * from 表名 where 字段名 like '字符1字符二' escape '字符1'; select * from emp where ename like '/_' escape '/' -- 查询工作为SALESMAH,ANALYST,MANAGER的员工信息 --使用or关键字,进行或条件的筛选 select * from emp where job='SALESMAH' or job='ANSLYST' or job='MANAGER' --使用in关键字进行筛选,但是in关键字的只能是一个字段名中的,而or可以是不同的字段名 select * from emp where job in ('SALESMAH','ANSLYST','MANAGER') --查询工资在2000到3000之间的员工的信息 --使用and关键字,多条件同时成立进行筛选 select * from emp where sal > 2000 and sal < 3000 --使用between and进行条件的筛选,这个是包含两头的。 select * from emp where sal between 2000 and 3000
转载地址:http://mzwki.baihongyu.com/