IT猫扑网:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置:首页数据库Oracle → Oracle常用命令

Oracle常用命令

时间:2015/6/28来源:IT猫扑网作者:网管联盟我要评论(0)

  oracle数据类型:

  Create table test1(name char(10),sex char(1));

  Insert into test1 values(‘tomcatt北京’,’f’);

  Create table test2(name nchar(10),sex nchar(1));

  Insert into test2 values(‘tomcatt北京’,’男’);

  删除表 drop table 表名;

  Create table test3(name varchar2(10),sex varchar2(2));

  Insert into test3 values(‘tomcatt北京’,’f’);//插入值过大

  Insert into test3 values(‘tomcat北京’,’f’);

  Create table test4(name varchar2(10),age number(3),salary number(8,2));

  Create table test5(name varchar2(10),birth date);

  Insert into test5 values(‘Tom’,’28-2月-08’);

  Insert into test5 values(‘Allen’,sysdate);

  DDL:

  创建表

  create table scott.test6(

  eid number(10),

  name varchar2(20),

  hiredate date default sysdate,

  salary number(8,2) default 0

  )

  插入数据时若没有指定hiredate,salary的话则会取默认值

  数据字典:

  Dba-所有方案包含的对象信息

  All-用户可以访问的对象信息

  User-用户方案的对象信息

  Select * from user_tables;

  Select * from all_tables;

  约束:

  域完整性约束:not null check

  实体完整性约束:unique primary key

  参照完整性约束:foreign key

  视图:

  Create or replace view v1(eid,name,salary) as select empno,ename,sal from emp where deptno = 30;

  序列:sequence

  Create sequence mysequence1 increment by 1 start with 1 nomaxvalue nocycle;

  Insert into test values(mysequence1.nextval,’tom’);

  Create sequence student_sequence start with 1 increment by 1;

  Insert into student values(student_sequence.nextval,’john’);

  表间数据拷贝:

  Insert into dept1(id,name) select deptno,dname from dept;

  实例(创建表 ID字段自增):

  --create table test2(id char(10) primary key not null, name char(10));

  --create sequence test2_sequence increment by 1 start with 1 nomaxvalue nocycle;

  --insert into test2 values(test2_sequence.nextval,'john');

  --insert into test2 values(test2_sequence.nextval,'allen');

  --insert into test2 values(test2_sequence.nextval,'candy');

  --insert into test2 values(test2_sequence.nextval,'aaaa');

  --insert into test2 values(test2_sequence.nextval,'bbbbb');

  --insert into test2 values(test2_sequence.nextval,'cccccc');

  --insert into test2 values(test2_sequence.nextval,'ddddd');

  --insert into test2 values(test2_sequence.nextval,'eeeee');

  --insert into test2 values(test2_sequence.nextval,'ggggg');

  --insert into test2 values(test2_sequence.nextval,'jowwwwhn');

  --insert into test2 values(test2_sequence.nextval,'aaaadd');

  --insert into test2 values(test2_sequence.nextval,'ggghhh');

  --insert into test2 values(test2_sequence.nextval,'eeettt');

  --insert into test2 values(test2_sequence.nextval,'wwwttt');

  select * from test2;

  查看表结构

  EDITDATA 表名;

  修改表字段:

  Alter table 表名 modify(字段名 类型 约束);

  alter table test modify (addd varchar2(10) null);

  alter table 表名 add(字段名 类型 约束);

  alter table test add(age varchar2(5));

  1.登陆系统用户

  sqlplus 然后输入系统用户名和密码

  登陆别的用户

  conn 用户名/密码;

  2.创建表空间

  create tablespace 空间名

  datafile 'c:\空间名' size 15M --表空间的存放路径,初始值为15M

  autoExtend on next 10M --空间的自动增长的值是10M

  permanent online; --永久使用

  3.创建用户

  create user shi --创建用户名为shi

  identified by scj --创建密码为scj

  default tablespace 表空间名 --默认表空间名

  temporary tablespace temp --临时表空间为temp

  profile default --受profile文件的限制

  quota unlimited on 表空间名; --在表空间下面建表不受限制

  4.创建角色

  create role 角色名 identified by 密码;

  5.给角色授权

  grant create session to 角色名;--给角色授予创建会话的权限

  grant 角色名 to 用户名; --把角色授予用户

  6.给用户授予权限

  grant connect,resource to shi;--给shi用户授予所有权限

  Grant dba to shi;-给shi 用户授予DBA权限

  grant create table to shi; --给shi用户授予创建表的权限

  7.select table_name from user_tables;   察看当前用户下的所有表

  8.select tablespace_name from user_tablespaces; 察看当前用户下的 表空间

  9.select username from dba_users;察看所有用户名称命令 必须用sys as sysdba登陆

  10.创建表

  create table 表名

  (

  id int not null,

  name varchar2(20) not null

  )tablespace 表空间名 --所属的表空间

  storage

  (

  initial 64K --表的初始值

  minextents 1 --最小扩展值

  maxextents unlimited --最大扩展值

  );

  11.--为usrs表添加主键和索引

  alter table users

  add constraint pk primary key (ID);

  12.为已经创建users表添加外键

  alter table users

  add constraint fk_roleid foreign key (roleid)

  references role(role_id) on delete cascad; --下边写主表的列

  on delete cascad是创建级联

  13.把两个列连接起来

  select concat(name,id) from 表名; --把name和id连接起来

  14.截取字符串

  select column(name,'李') from 表名; --把name中的‘李’去掉

  15.运行事务之前必须写

  set serveroutput on; --打开输入输出(不写的话,打印不出信息)

  16.while的应用

  declare --声明部分

  ccc number:=1; --复职

  a number:=0;

  begin --事务的开始

  while ccc<=100 loop --循环

  if((ccc mod 3)=0) then --条件

  dbms_output.put_line(ccc||',');    --打印显示

  a:=a+ccc;

  end if; --结束if

  ccc:=ccc+1;

  end loop; --结束循环

  dbms_output.put_line(a);

  end; --结束事务

  /

  17.select into 的用法 --只能处理一行结果集

  declare

  name varchar(30);

  begin

  select username into name

  from users

  where id=2;

  dbms_output.put_line('姓名为:'||name);

  end;

  /

  18.利用%rowtype属性可以在运行时方便的声明记录变量和其他结构

  Set serveroutput on;

  Declare

  utype users%rowtype;

  Begin

  Select * into utype from users where id=20;

  Dbms_output.put_line('姓名'|| utype.username);

  Dbms_output.put_line('生日'|| utype.brithday);

  end;

  / --%rowtype想当于复制一个表

  19.游标的定义和使用

  Declare

  Cursor ucur is select * from users; --声明游标

  Us users%rowtype;--定义与游标想匹配的变量

  Begin

  Open ucur;--打开游标

  Fetch ucur into us;

  While ucur %found loop --使用循环遍历游标的查询结果

  Dbms_output.put_line('姓名:'||us.username||'生日'||us.brithday);

  Fetch ucur into us;

  End loop;

  Close ucur; --关闭游标

  End;

  =======================================

  %found在前一条的fetch语句至少对应数据库的一行时,%found属性值为true,否则为false;

  % notfound 在前一条fetch语句没有对应的数据库行时,%notfo

关键词标签:Oracle

相关阅读

文章评论
发表评论

热门文章 Oracle中使用alter table来增加,删除,修改列Oracle中使用alter table来增加,删除,修改列oracle中使用SQL语句修改字段类型-oracle修oracle中使用SQL语句修改字段类型-oracle修使用低权限Oracle数据库账户得到管理员权限使用低权限Oracle数据库账户得到管理员权限Oracle对user的访问控制Oracle对user的访问控制

相关下载

人气排行 ORACLE SQL 判断字符串是否为数字的语句Oracle中使用alter table来增加,删除,修改列的语法ORACLE和SQL语法区别归纳(1)oracle grant 授权语句如何加速Oracle大批量数据处理Oracle删除表的几种方法ORACLE修改IP地址后如何能够使用Oracle 10g创建表空间和用户并指定权限