Oracle11g 64位现在地址:
http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_1of2.zip
http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_2of2.zip
Oracle分为两个文件,下载完之后需要解压到同一个目录下面
123
系统用户
- sys、system
- sysman
- scott 密码:tiger
使用系统用户登录
[username/password][@server][as sysdba|sysoper]
* system 登录
1.system/123
2.connect sys/123 as sysdba
密码是123
sql语句必须用;结尾
启用scott用户
alter user username account unlock
alter user scott account unlock
connect scott/tiger
show user
表空间
- 永久表空间
- 临时表空间
- UNDO表空间
desc dba_tablespaces
-- 查看表空间
select tablespace_name from dba_tablespaces;
Oracle 是基于对象的关系型数据库。
sqlplus/nolog 启动SQL*Plus
select tablespace_name from dba_tablespaces;
-- oracle用户的话,每个人只能有一个默认的database,不会出现一对多的现象,因此不需要指定。
-- orcale创建表和约束
CREATE TABLE Infos
(
stuid VARCHAR2(7) NOT NULL,
stuname VARCHAR2(10) NOT NULL,
gender VARCHAR2(2) NOT NULL,
age NUMBER(2) NOT NULL,
seat NUMBER(2) NOT NULL,
enrolldate DATE,
classno VARCHAR2(4) NOT NULL,
studentaddress VARCHAR2(50) DEFAULT'地址不详' NOT NULL
);
DROP TABLE INFOS;
SELECT * from INFOS
/
-- z执行缓存区中的语句
ALTER TABLE INFOS ADD constraint pk_infos primary key(stuid)
/
ALTER TABLE INFOS add constraint ck_infos_gender
CHECK(gender = '男' or gender = '女')
INSERT INTO INFOS VALUES(
'S102322','XIAO','男',26,3,SYSDATE,'1001',default
)
INSERT INTO INFOS VALUES(
'S102312','mxx','女',26,3,SYSDATE,'1001',default
)
select sum(age) from INFOS
select AVG(age) from INFOS
select COUNT(age) from INFOS
-- OR REPLACE 如果试图存在,则替换旧视图。
CREATE OR REPLACE VIEW view1
AS
SELECT * FROM INFOS
SELECT * from view1
CREATE TABLE Infos2
(
stuid VARCHAR2(7) NOT NULL,
stuname VARCHAR2(10) NOT NULL,
gender VARCHAR2(2) NOT NULL,
age NUMBER(2) NOT NULL,
seat NUMBER(2) NOT NULL,
enrolldate DATE,
classno VARCHAR2(4) NOT NULL,
studentaddress VARCHAR2(50) DEFAULT'地址不详' NOT NULL
);
-- 索引
CREATE UNIQUE INDEX st_name_idx ON INFOS2(stuname);
--如果存在主见,那他就是该表的唯一索引,那就给这个表加不了索引了。
-- 表空间 Oracle 可以存放海量数据
-- oracle PL/SQL (procedural language/SQL) 存储过程 批处理能力
DECLARE
sname VARCHAR2(20):='123';
BEGIN
sname:= sname||' and tom';
-- || 字符串连接操作符
dbms_output.put_line(sname);
END;
-- DBMS导出 就是控制台显示结果。
DECLARE
pi constant NUMBER:=3.14;
r NUMBER DEFAULT 3;
area NUMBER;
BEGIN
area:=pi*r*r;
dbms_output.put_line(area);
END;
DECLARE stud INFOS.AGE%TYPE;
SELECT * FROM INFOS
SELECT AGE FROM INFOS WHERE stuname='mxx';
-- 错误
SELECT INFOS.AGE INTO stud23 FROM INFOS WHERE stuname='mxx';
SELECT * FROM stud23
-- 异常 错误--
DECLARE
n_salary EXCEPTION;
PRAGMA EXCEPTION_INIT(n_salary, -20101);
BEGIN
DECLARE
stud INFOS.AGE%TYPE;
BEGIN
SELECT AGE INTO stud FROM INFOS
IF stud IS NULL THEN
RAISE_APPLICATION_ERROR(-20101, 'age is missing');
ELSE
dbms_output.put_line('有年龄');
END IF;
END;
-- 异常执行部分
EXCEPTION
WHEN n_salary THEN
dbms_output.put_line('没有age');
END;
-- 错误--
-- LOOP循环
DECLARE
counter number(3) := 0;
sumResult number := 0;
BEGIN
LOOP
counter:=counter+1;
sumResult:=sumResult+counter;
IF counter >= 100 THEN
EXIT;
END IF;
END LOOP;
dbms_output.put_line('result is:'||TO_CHAR(sumResult));
END;
代码记录