文档介绍:Day_01:
导入需要用到的数据:
set nls_lang=
sqlplus scott/tiger ***@
SQL语言包含4个部分:
数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。
数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。
数据查询语言(DQL),例如:SELECT语句。
数据控制语言(DCL),例如:GRANT、MIT、ROLLBACK等语句。
建立新用户,并且为它分配表空间
create table sd0912 identified by sd0912
default tablespace users;
授权
grant connect , resource to sd0912 (resource角色,包含了很多权限)
环境变量:
cd &ORACLE_HOME (oracle软件的安装路径)
用户加锁和解锁命令:
解锁用户:alter user test account unlock
锁住用户:alter user test account lock
/etc/passwd:存放用户信息
表是数据库中存储数据的基本单位
show user:显示当前用户
desc:查看表的结构(sqlplus的命令)
select ename,job from emp;
处理一条select语句
*分析语句;
*绑定变量--给变量赋值;
*执行语句;
*获取数据--将数据返回给用户进程;
select 语句就功能而言,大小写不敏感,就性能而言,大小写敏感;
select ename,sal*12 from emp:求出所有员工的年薪
给列名起别名的方式,加双引号,如:
双引号:select ename,sal*12"kathes" from emp
别名中包含空格,特殊字符或者希望大小写可以使用双引号将列名扩起来
select ename,sal*12*(1+m,0)/100) comm from emp:处理空值使用NVL函数,这里将null转换成0进行处理
Oracle中列的拼接:使用||
select ename||' '||job employee from emp
select ename||' is in department'||deptno||'.' from emp
消除重复行:select distinct job,deptno from emp;(两个字段联合起来唯一)
查询工资大于1500的员工工资:select ename,sal from emp where sal>1500
查询部门号为20的员工信息:select ename,sal from emp where deptno=20
查询工资大于1500的员工的年薪:select ename,sal*12 from emp where sal>1500
查询年薪大于12000的员工的年薪:select ename,sal*12"year" from emp where sal*12>12000;
Where子句后面不能跟别名,如果sal上有索引,以上的方式用不上
字符串必须用单引号扩起来,字符串的大小写敏感
查询SCOTT的工资
select ename,sal from emp where ename='SCOTT'
查询职位是CLERK的员工的姓名
select ename from emp where job='CLERK'
查询工资在[1550,2000]之间的员工的姓名和工资:
select ename,job,sal from emp where sal>=1550 and sal<=2000
select ename,job,sal from emp where sal between 1550 and 2000
Between...and...查询出来的东西是闭区间
逻辑运算符:AND,OR
查询部门号为10或者20的员工的姓名:select ename,deptno from emp where deptno=20 or deptno=10
和上面效果相同:select ename,deptno from emp where deptno in(10,20)
Oracle中的所有表都是以大写字母来存储的
查询表名以E开头的表:select table_name from user_tables where table_name like'E%';
若查找%