--显示当前用户show user
--显示表结构desc sun1
--显示ORACLE数据库中所有的表select * from tabs
--显示表的所有列的属性select * from cols where table_name = 'SUN1'
--显示表的列总数SELECT COUNT(*) FROM USER_TAB_COLUMNS WHERE TABLE_NAME=UPPER('sun1')
--显示表的索引信息select * from user_indexes where table_name = upper( 'sun2' )
--找数据库表的主键字段的名称SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and table_name='TABLE_NAME';
--显示用户的权限select * from dba_sys_privs where grantee = upper( username );
--显示表注释select * from user_tab_comments where comments is not null and table_name = upper( 'sun2' );
--测试查询时间set timing on ;--再查询操作
-----------------------------------函数使用--------------------------------------------取随机数dbms_random.random
--10进制转换成16进制select to_char(125,'XXXXX') from dual--或者select to_char(125, 'xxxxx' ) from dual
--16进制转换成10进制select to_number( '7D', 'XX') from dual
--取本月最后一天的日期SELECT LAST_DAY(SYSDATE) FROM DUAL
---------------------------------建表-----------------------------------------------
--简单建表create table sun1( col1 varchar2(10), col2 varchar2(10 ) );
--非空,带CHECK,唯一值的建表create table student( sno int not null unique, sname varchar(20) unique check( sname <> '' ), ssex bit, sage int check( sage<150 and sage >=0 ), sdept varchar(20))
--带主键,带默认值的建表create table sun2( col1 number(10) primary key, col2 varchar(2) not null, col3 varchar(3) default '111' )
--主键有多列的建表create table sun2( col1 number(10) not null , col2 varchar(2) not null, col3 varchar(3) default '111', constraint pk_sun2 primary key( col1, col2 ) )
--通过一现有的表,建一个与之结构完全一样的表create table sun2 as select * from sun1 where rownum < 1
--建一与现有的表完全一样的表(数据也一样)create table sun2 as select * from sun1
--创建会话临时表create global temporary table tmp_sun( col1 number(10,1), col2 number(1))on commit preserve rows
--创建事务临时表create global temporary table tmp_sun( col1 number(10,1), col2 number(1))on commit delete rows
--创建同义词create synonym sunsun for sun1;
--为表加上注释comment on table sun2 is '测试用的表'
--为表中的某列加上注释comment on column sun2.col1 is '第一列'
--删除表的主键alter table sun2 drop constraint pk_sun2;
--增加表的主键alter table sun2 add constraint pk_sun2 primary key( col1 );
--给表增加外键 ALTER TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN KEY(列名) REFERENCES 被引用表名(被引用列名);
--建索引CREATE INDEX 索引名 ON 表名(列名1, 列名2);
--增加表的列alter table sun2 add( col1 number(10), col4 char )
--修改表的列alter table sun2 modify col1 char
--删除表的列alter table sun2 drop column col1;
--修改列名alter table sun2 rename column col1 to colNew
--修改表名alter table sun2 rename to sun8
---------------------------------查询数据-----------------------------------------------给查询到的数据加锁select * from sun1 for update
--取上个月的今天select nvl( add_months( sysdate, -1), null) from dual
---------------------------------插入数据-----------------------------------------------简单的插入数据insert into sun1( col1, col2 ) values( 'ab', 'ba' )--或者insert into sun1 values( 'ab', 'ba' )
--通过子查询向表中插入数据insert into sun1( select 'aa', 'bb' from dual union all select 'aa', 'bb' from dual)
--或者insert into sun1(col1, col2 )( select 'aa', 'bb' from dual union all select 'aa', 'bb' from dual)
---------------------------------删除数据-----------------------------------------------删除表中的所有数据delete from sun1--或者 truncate table sun1
--删除表中重复的行delete from sun1 where rowid not in ( select max( s.rowid ) from sun1 s group by col1,col2 )
---------------------------------更新数据-----------------------------------------------从一表中取多列数据来更新另一表中的多列数据update table1 aset (a.col3, a.col4) = ( select b.col3, b.col4 from table2 b where b.col1 = a.col1 and b.col2 = a.col2 )
---------------------------------删除表-------------------------------------------------
--删除一表drop table sun2
---------------------------------权限管理---------------------------------------------------系统权限--给用户授权CONNECT(基本的连接)grant connect to username
--给用户授权RESOURCE(程序开发)grant resource to username
--给用户授权DBA(数据库管理)grant dba to username
--给用户授权grant connect, resource to username
--数据对象权限GRANT SELECT ON sun1 TO username;
GRANT SELECT, INSERT, DELETE ON sun2 TO user1, user2
--REVOKE 回收权限
REVOKE CONNECT, RESOURCE FROM 用户名;
REVOKE SELECT ON 表名 FROM 用户名;
REVOKE SELECT, INSERT, DELETE ON 表名 FROM 用户名1, 用户名2;
---------------------------表空间等管理---------------------------创建一表空间
CREATE TABLESPACE 自定义的模块名a DATAFILE 'd:/database/ora/projet_info/d01.ora' SIZE 2M REUSE DEFAULT STORAGE ( INITIAL 50K NEXT 50K PCTINCREASE 0 MAXEXTENTS UNLIMITED ) ONLINE;