记录一下oracle使用过程,转载附上链接!
安装oracle教程:Linux下安装oracle数据库
安装oracle客户端以及使用OCI连接:Linux下使用OCILIB连接oracle数据库
oracle常用系统表释义:oracle常用系统表
(1)开启监听
lsnrctl start
(2)停止监听
lsnrctl stop
如果安装了rlwrap(使用光标上下左右移动功能),使用管理员登陆
rlwrap sqlplus sys/0 as sysdba
未安装
sqlplus sys/0 as sysdba
开启数据库
startup
create user test1 identified by 0
test1——用户名
0——用户密码
drop user test1;
test1——用户名
grant resource,connect,dba to test1
resource——只可以创建实体但是没有创建数据结构的权限
connect——可以登录Oracle,不可以创建实体,不可以创建数据库结构
dba——拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构
test1——用户名
除此之外还有
grant create session to 用户名
这个是给用户赋予登录的权限。
grant create table to 用户名
给用户赋予表操作的权限
grant unlimited tablespace to 用户名
给用户赋予表空间操作的权限
grant select any table to 用户名
给该用户赋予访问任务表的权限 同理可以赋予update 和delete
alter User 用户 identified by 口令
show user
select username from dba_users
select * from dba_ustats
conn username/passwd
select file_name from dba_data_files;
显示如下
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/szxndb/users01.dbf
/home/oracle/app/oracle/oradata/szxndb/undotbs01.dbf
/home/oracle/app/oracle/oradata/szxndb/sysaux01.dbf
/home/oracle/app/oracle/oradata/szxndb/system01.dbf
/home/oracle/app/oracle/oradata/szxndb/test.dbf
/home/oracle/app/oracle/oradata/szxndb/TLMES.dbf
create tablespace test1 logging datafile
'/home/oracle/app/oracle/oradata/szxndb/test1.dbf'
size 100m autoextend on next 50m maxsize 1000m extent management local;
select FILE_NAME from dba_temp_files
create temporary tablespace test1_temp tempfile datafile
'/home/oracle/app/oracle/oradata/szxndb/test1_temp.dbf'
size 100m autoextend on next 50m maxsize 1000m extent management local;
drop tablespace tablespace_name including contents and datafiles;
(1)创建时指定
create user username identified by password
default tablespace user_data
temporary tablespace user_temp;
(2)修改用户表空间
alter user username default tablespace userspace;
(3)修改用户临时表空间
alter user username temporary tablespace userspace;
select default_tablespace from dba_users where username='AARON';
这里注意的是用户名要大写,除非开了大小写都可的权限!
select username,default_tablespace from user_users;
select tablespace_name,contents,status,status,block_size from dba_tablespaces;
select file_name,tablespace_name,autoextensible,bytes from dba_data_files;
create tablespace test1 logging datafile
'/home/oracle/app/oracle/oradata/szxndb/test1.dbf'
size 100m autoextend on next 50m maxsize 1000m extent management local;
create temporary tablespace——创建表空间
test1——表空间名
logging——声明这个表空间上所有的用户对象的日志属性(缺省是logging)
datafile——指出表空间包含什么空间文件
size——设置表空间大小
100m——设置表空间大小为100M
autoextend on——设置表空间是否自动扩增 off是关闭
next 50m——扩增一次为50M
maxsize 1000m——设置表空间最大1000M,可替换为maxsize unlimited设置表空间无限增长
extent management local/dictionary:表示表空间管理的方式,local表示本地的管理模式,dictionary表示数据字典管理模式,默认都是本地管理方式
如上设置是默认表空间为启用状态,如果不启用则修改表空间为offline
alter tablespace …offline
create table "student1"("id" int not null, "name" varchar(50) not null);
这里值得注意的是,表名,子段名如果不加 “ ”,则实际表名,子段名为大写!
select * from "student1";
记得表名加“ ”。
CREATE TABLE "studeng3" ("id" INTEGER NOT NULL, "name" VARCHAR(50) NOT NULL,"gold" FLOAT, constraint student3 primary key ("id"));
constraint student3 primary key (“id”)——创建主键为id, pk为primary key
主键约束(primary key)
外键约束(foreign key)
唯一性约束(unique)
非空约束(not null)
检查约束(check)
CREATE sequence student_autoinc minvalue 1 maxvalue 99999999 start with 1 increment by 1 nocache;
sequence ——序号
minvalue ——最小
maxvalue ——最大
start with——开始
increment by——每次增长
nocache——不缓存,相反cache缓存。开启缓存,效率高,只是如果数据库宕机了,缓存丢失,会出现序列跳号情况
INSERT into "studeng3" ("id", "name", "gold") VALUES(student_autoinc.NEXTVAL,'hliuliu',19.0);
创建触发器,在 插入前找到id大小,并插入id的下一个值
CREATE
OR REPLACE TRIGGER student_autoinc_tri before INSERT ON student_autoinc FOR each ROW
BEGIN
SELECT
student_autoinc.nextval INTO :new."id"
FROM
dual;
END;
:new."id"中间无空格,如果使用navicat美化,会在里面加空格报错
插入语句
INSERT into "studeng3" ("id", "name", "gold") VALUES(NULL,'hliuliu',19.0);
SELECT COUNT(*) FROM STUDENT