Oracle基础

---------------oracle 入门
 打开服务器
 net start oracleserviceORCL
 打开监听器
 lsnrctl start
 关闭服务器
 net stop oracleserviceORCL
 关闭监听器
 lsnrctl stop
-----------------------------
 1.创建表
 Create table 表名
 (字段名 数据类型)
 2.修改表中列的数据类型
 Alter table 表名
 modify(字段名 数据类型)
 提示:清空表后才能修改
 3.增加表字段
 Alter table 表名
 add(字段名 数据类型)
 4.删除表字段
 Alter table 表名
 drop(字段名 数据类型)
 5.创建表并复制另一张表结构和数据
 Create table 表名 as
 select * from table 表名
 6.插入另一张的数据到自己表中
 insert into 表名 (可选字段名)
 select * from 表名
 提示:插入表中字段要和查询表字段类型一致,*代表所有字段,如果只要部分字段,保证要插入表字段和查询字段个数,数据类型一致

------------------------------

创建表空间
 create tablespace stusys
  datafile 'd:/oracle/stusys.dbf'
 size 50m
 autoextend on;
创建用户
 create user wangwei identified by wangwei
 default tablespace stusys
 temporary tablespace temp;
授权
 grant connect to wangwei;
 grant resource to wangwei;
用新用户登录 
 conn wangwei/wangwei
创建表
 学生表中有一个外键关联班级表
 create table classlist(
 claid char(6) primary key,
 opdate date,
 manager char(8)
 );
 create table students(
 stuid int primary key,
 stuname char(8),
 claid char(8) references classlist
 );

------------------------------
oracle的数据类型
 数值型:number(<p>,<s>)
 字符型:char(size)、varchar2(size)、varchar()
 日期型:date
  查询当前时间select sysdate from dual;
  格式化当前时间alter session set nls_date_format='yyyy-mm-dd';
 大对象类型:blob、clob、bfile、raw、long
 空类型:null
  null不等于''空
 特殊类型:rowid urowid
 
 SQL中的字符

SQL查询语句
 数据定义语言ddl(create、drop、alter)
  drop table ##
  alter talbe student add(address varchar2(50));
  alter talbe student modify(address varchar2(60));
  alter talbe student drop(address);
 ----
 数据操作语言dml(select、insert、update、delete)
-------------------------------------------  ----------------------------------------------------------------
  create table emp
   (
   empno int primary key,
   ename varchar(10),
   job varchar(10),
   sal varchar(20),
   deptno varchar(10)
   );

 insert into emp values(222,'李四','22222,'22222','222222');
 insert into emp values(333,'王五','333','3333','111');

  create table dept
  (
   deptno int primary key,
   dname varchar(20),
  job varchar(10),
  sal varchar(20)
   );
 insert into dept values(111,'张三','软件开发','1000');
 
 内连接--两个表只要存在不匹配就不显示
 SQL> select empno,ename,emp.deptno,dname
   2  from emp join dept on emp.deptno = dept.deptno
   3  order by deptno;
 
      EMPNO ENAME      DEPTNO     DNAME
 ---------- ---------- ---------- --------------------
        333 王五       111        张三

 
 另一种方式
 SQL> select empno,ename,emp.deptno,dname
   2  from emp,dept where emp.deptno = dept.deptno
 3  order by deptno;

      EMPNO ENAME      DEPTNO     DNAME
 ---------- ---------- ---------------------------
        333 王五       111        张三 
 

 左连接--连接的两个表以左边为主,如果左表对右表存在空匹配会显示记录,空匹配字段为NULL,
  右表对左表存在空匹配,这样不显示记录
   SQL> select empno,ename,d.deptno,dname
   2  from emp e left join dept d
   3  on e.deptno = d.deptno;

      EMPNO ENAME          DEPTNO DNAME
 ---------- ---------- ---------- --------------------
        222 lisi
        333 王五              111 张三

 右连接--连接的两个表以右表为主,和左连接相反
   SQL> select empno,ename,d.deptno,dname
   2  from emp e right join dept d
   3  on e.deptno = d.deptno;
 
      EMPNO ENAME          DEPTNO DNAME
 ---------- ---------- ---------- --------------------
        333 王五              111 张三


 全连接--下面两个是一样的
 SQL> select * from emp full join dept
   2  on emp.deptno = dept.deptno;

 ------
 SQL> select * from emp full outer join dept
   2  on emp.deptno = dept.deptno;


      EMPNO ENAME      JOB        SAL                  DEPTNO         DEPTNO DNAME      
 ---------- ---------- ---------- -------------------- ---------- ---------- ---------
        222 lisi       .net开发   200                  20000
        333 王五       333        3333                 111               111 张三       

 -------------------------------------
 连接查询
  笛卡儿连接
  相等连接
  不等连接
  自我连接

 ----------------------------------------
 数据控制语言dcl
  grant 系统权限 to 用户名
  connect基本连接、resource资源使用、dba数据库管理
  grant 对象权限名||all on  对象名 to 用户名(把所有权限赋给用户)

  revoke回收权限
  revoke 对象权限名 on 对象名 to 用户名
 ---
 事务控制语言(tcl)
  原子性、一致性、隔离性、持久性(ACID)
  commit、rollback、savepoint
  savepoint p2;
  savepoint p3;
  rollback to p2;
  commit;
 ---
 伪表及伪列
  DUL表 伪表
  ROWID 记录每个数据行在硬盘上位置的唯一标识
  ROWNUM 标识查询结果集中记录序号
  LEVEL 查询数据所对应的层次
  select rowid,rownum,level from 表名 where
 ---
 集合运算
  并集 UNION select * from a union select * from b;
  有重复记录的并集   UNION ALL
  交集 intersect
  剪集/割集 minus

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值