当前位置:文档之家› oracle 9i数据库入门必看

oracle 9i数据库入门必看

打开
C:\oracle\ora92\network\admin\listener.ora

修改
HOST = a-1为HOST = 127.0.0.1
启动服务

运行CMD

lsnrctl start

用户名:system
密码:自定义 sa

打开:SQL Plus
输入用户名:system 密码:-- 主机字符串:数据库名(可不填写),如果没有填写在命令行:conn 用户名/密码@数据库名

1.创建表空间:
create tablespace shop_tablespace
datafile 'e:\shop.dbf'
size 100M; //单位要么是M,或者是MB,必须大写

分配用户权限--此处省略,可以到网上看看
--创建表master

SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 4月 13 08:49:19 2011

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


连接到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

SQL> use shop;
SP2-0042: 未知命令"use shop" -- 其余行忽略。
SQL> show databases;
SP2-0158: 未知的SHOW选项"databases"
SQL> conn system/sa shop;
SP2-0306: 无效选项。
用法: CONN[ECT] [logon] [AS {SYSDBA|SYSOPER}]
其中 : : = [/][@] | /
SQL> conn system/sa@Shop
已连接。
SQL> create tablespace shop_tablespace
2 datafile 'e:\shop.dbf
3 size 100mb;
datafile 'e:\shop.dbf
*
ERROR 位于第 2 行:
ORA-01756: 括号内的字符串没有正确结束


SQL> create tablespace shop_tablespace
2 datafile 'e:\shop.dbf
3 size 100mb;
datafile 'e:\shop.dbf
*
ERROR 位于第 2 行:
ORA-01756: 括号内的字符串没有正确结束


SQL> create tablespace shop_tablespace
2 datafile 'e:\shop.dbf
3 size 100mb;
datafile 'e:\shop.dbf
*
ERROR 位于第 2 行:
ORA-01756: 括号内的字符串没有正确结束


SQL> create tablespace shop_tablespace
2 datafile 'e:\shop.dbf'
3 size 100mb;
size 100mb
*
ERROR 位于第 3 行:
ORA-02180: 无效的 CREATE TABLESPACE 选项


SQL> create tablespace shop_tablespace
2 datafile 'e:\shop.dbf'
3 size 100M;

表空间已创建。

SQL> create User user
2 IdenTIFIED BY PASSWORD
3 ;
create User user
*
ERROR 位于第 1 行:
ORA-01935: 缺少用户或角色名


SQL> CREATE USER user
2 IDENTIFIED BY sa
3 DEFAULT TABLESPACE shop_tablespace;
CREATE USER user
*
ERROR 位于第 1 行:
ORA-01935: 缺少用户或角色名


SQL> CREATE TABLE master(
2 id number(11,0) primary key,
3 loginid nvarchar2(50) not null,
4 password nvarchar(20) not nlll,
5 status char(1) default 1 not null;
password nvarchar(20) not nlll,
*
ERROR 位于第 4 行:
ORA-00907: 缺少右括号


SQL> CREATE TABLE master(
2 id number(11,0) primary key,
3 loginid nvarchar2(50) not null,
4 password nvarchar(20) not nlll,
5 status char(1) default 1 not null;
password nvarcha

r(20) not nlll,
*
ERROR 位于第 4 行:
ORA-00907: 缺少右括号


SQL> CREATE TABLE master(
2 id number(11,0) primary key,
3 loginid nvarchar2(50) not null,
4 password nvarchar2(20) not nlll,
5 status char(1) default 1 not null);
password nvarchar2(20) not nlll,
*
ERROR 位于第 4 行:
ORA-00905: 缺少关键字


SQL> CREATE TABLE master(
2 id number(11,0) primary key,
3 loginid nvarchar2(50) not null,
4 password nvarchar2(20) not null,
5 status char(1) default 1 not null);

表已创建。

SQL> create table type(
2 id number(11) not null,
3 name nvarchar2(50) not null,
4 status char(1) default 1 not null);

表已创建。

SQL> )alter table type Add constraint type_pk primary key(id);
SP2-0734: 未知的命令开头 ")alter tab..." - 忽略了剩余的行。--设置主键
SQL> ALTER TABLE type Add constraint type_pk primary key(id);

表已更改。
SQL> CREATE TABLE pet(
id number(11),
master_id number(11) not null,
name NVARCHAR2(50),
type_id NUMBER(11) NOT NULL,
health number(11) default 100 not null,
love number(11) default 100 not null,
adopt_time date not null,
status char(1) default 1 not null,
constraint pet_pk primary key(id),
constraint master_fk foreign key (master_id) references master(id),
constraint type_fk foreign key (type_id) references type(id)
);

表已创建。

SQL> drop table;
drop table
*
ERROR 位于第 1 行:
ORA-00903: 表名无效


SQL> drop table pet;

表已丢弃。重新创建

SQL> --创建注释,分别给表和表中列;
SQL> COMMENT ON TABLE pet IS '宠物';
SQL> COMMENT ON column https://www.doczj.com/doc/dc10708724.html, IS '宠物昵称';

同样我们也可以在Oracle的图像界面进行数据表的创建
注意:查询的时候表面要加双引号
eg:select * from "user"

--如何实现主键自增长?
--Oracle 中的Create sequence命令用于创建序列
create sequence seq_name
[START with start] --起始值
[INCREMENT BY increment] --增长量,如果死负数则为递减序列
[minvalue minvalue|nominvalue]--是否有最小值
[maxvalue maxvalue|nomaxvalue]--是否有最大值
[cycle|nocycle] --用来指明序列达到最大值或者最小值后
[cache cache|nocache] --用来指明是否在缓存中保存预分配的序列值。如果选中保存可以提高序列值的速度
[order|noorder] --选项保证序列值的唯一性和顺序性,noorder只能保证序列值的唯一性

例如:
create sequence master_seq
start with 1
increment by 1
nomaxvalue
cache 10;
--使用序列时,需要用到序列的两个伪列nextval和currval。前者返回序列的下一个值,后者返回当前值
--可以通过alter sequence语句对序列进行修改,如果修改序列的起始值,则必须先删除序列,再重新创建
eg:
alter seq

uence master_seq
increment by 5
maxvalue 100000
nocycle
nocache;

insert into master values(master_seq.nextval,'xhb','xho',2);
select master_seq.currval from dual; //查看序列的当前值
select master_seq.nextval from dual; //查看序列的下一个值

select * from master;
--删除序列
drop sequence master_seq;

在项目中使用Oracle数据库:
driverClassName="oracle.jdbc.driver.OracleDriver";
url="jdbc:oracle:thin:@主机IP:1521:数据库名"; 127.0.0.1或者localhost(本机)

ojdbc14.jar如果没有这个文件的话,可以在Oracle安装目录下的jdbc/lib文件下找到


一.日期处理函数:
1.select sysdate as now ,extract(YEAR from SYSDAtE)||'年'||EXTRACT(MONTH FROM SYSDATE) ||'月'|| extract(DAY FROM SYSDATE)||'日'FROM DUAL;
执行结果:
13-4月 -11
2011年4月13日
||的作用是进行字符串拼接
2.select sysdate,TO_CHAR(sysdate) from dual;
3.select sysdate,TO_CHAR(sysdate,'YYYY"年"MM"月"DD"日"HH"时"MI"分"SS"秒"') from dual; 十二进制
执行结果:
13-4月 -11 2011年04月13日02时28分45秒
3.select sysdate,TO_CHAR(sysdate,'YYYY"年"MM"月"DD"日"HH24"时"MI"分"SS"秒"') from dual; 二十四进制
执行结果:
13-4月 -11 2011年04月13日14时28分45秒
二.DECODE()函数
decode()函数就相当于多重的if_else_then
select name,health,status,decode(status,1,'正常',2,'禁用') as status_str from pet;
三.NVL()函数
用于将如果是null替换为指定的缺省值。适用于字符,数字,日期等类型数据
select id,nvl(name,'无名') as 姓名,love,nvl(adopt_time,sysdate) as 领养日期 from pet;
四:常有的字符函数:
功能 结果
INITCAP('hellp') Hello ----首字母大写
Lower('Hello') ----转换为小写
UPPER('') ----转换为大写
LTRIM('xyzabc','xyz') abc ----左裁剪
RTRIM('xyzabc','abc') xyz ----右裁剪
TRANSLATE('JACK','ABCD','1234') J13K ----按字符翻译
REPLACE('JACK AND JUE','J','BL') BLACK AND BLUE ---替换字符串
INSTR('WORLDWIDE','D') 5 ----字串位置
SUBSTR('ABCDEFGHIJKL',3,2) CD ----取子字符串
CONCAT('Hello','world') Helloworld ----连接字符串
五:常用的数字函数
ABS(-15) 15 取绝对值
CEIL(44.778) 45 向上取值
SIN(1.571) .999999979 正玄
COS(0) 1 余玄
sign(-21) -1 取符号
FLOOR(100.2) 100 向下取整
power(4,2) 16 4的2次幂
MOD(10,3) 1 取余数
ROUND(100.256,2) 100.26 四舍五入
TRUNC(100.256,2) 100.25 截断
SQRT(4) 2 平方根
六。常用德日期函数
七。常用的转换函数
TO_CHAR(1234.5.'$9999.9') $1234.5 (人民币¥)
TO_DATE('1991-11-12

','yyyy-mm-dd') 11-12 月-91
TO_NUMBER('1234.5') 1234.5
八。常用德其他函数:
nvl(null,'空') 字符替换,返回指定值
nvl(null,'空','不为空') 如果第一列值是null,则返回空,反之返回不为空
decode(....)前面有例子,自己看
九。常用德多行函数
sum()
avg()
count()
max()
min()

-----创建和删除索引,具体可以百度一下
语法:
create [unique|bitmap] index index_name
on table_name
(column_name1|expression1 asc|desc,column_name2|expression2 asc|desc,....)[REVERSE];

删除索引
drop index 索引名



补充:创建用户和给用户授权
create user zhangsan
identified by (密码)
[default tablespace tablespace] ---为用户指明表空间和临时表空间,可选项
[temporary tablespace tablespace]

--为用户分配权限和角色
connect:临时用户,为那些不需要创建表的用户
resource:更为可靠和正式的数据库用户可以授予该角色,可以创建表,触发器,过程等!
DBA:数据库管理员角色,可以撤销其他用户的DBA权限

grant dba to zhangsan;
撤销权限:
remove DBA from zhangsan;


使用imp和exp导入和导出数据:
cmd—>D:—>exp->zhangsan—>密码—>后面全是yes























相关主题
文本预览
相关文档 最新文档