`
wyyl00
  • 浏览: 109111 次
  • 性别: Icon_minigender_1
  • 来自: 山旮瘩
社区版块
存档分类
最新评论

oracle学习笔记

    博客分类:
  • SQL
阅读更多

sqlplus /nolog
connect / as sysdba
sqlplus user/password as sysdba
sqlplus user/password

startup   启动实例,然后打开控制文件control file,最后打开数据文件database open
startup mount 启动实例时启动控制文件
startup nomount 时启动实例不启动控制文件
alter database mount;
alter database open;

net start oracleserviceygnb启动实例
lsnrctl start 启动监听

归档方式查看:
archive log list
ALTER database archivelog;修改数据库为归档模式
ALTER database noarchivelog;修改数据库为非归档模式


数据库关闭:
shutdown  用户连接断开后关闭
shutdown  immediate  执行完当前SQL关闭
shutdown  transactional 执行完当前事务后关闭
shutdown  abort 强行关闭,可能造成数据库损坏


SELECT &tt FROM dual;输入值处理
SQL> SELECT &tt FROM dual;
输入 tt 的值:  'hehe'
原值    1: SELECT &tt FROM dual
新值    1: SELECT 'hehe' FROM dual

'HEH
----
hehe

==========================================2009-12-12

数据定义语言:建表,修改表,删除表
CREATE,ALTER,DROP

ALTER TABLE table_name ADD col_name type;    增加表字段
ALTER TABLE table_name ADD (col_name type DEFAULT '');

ALTER TABLE table_name MODIFY col_name type; 修改表数据类型
ALTER TABLE table_name MODIFY (col_name type DEFAULT 'hebei');

ALTER TABLE table_name DROP COLUMN col_name; 删除表字段

ALTER TABLE table_name RENAME COLUMN old_col_name TO new_col_name; 给字段重命名
ALTER TABLE table_name MODIFY COLUMN NOT NULL;修改表某一列的限制

ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY(col_name) 增加主键
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(col_name)      唯一约束
ALTER TABLE table_name ADD CONSTRAINT constraint_name CHECK(col_name IS NOT NULL) NOT null约束
ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY(col_name) REFERENCES table_name(fk); 创建外键到表table_name的fk字段的外键col_name

ALTER TABLE table_name DROP PRIMARY KEY;                    删除表的主键
ALTER TABLE table_name DROP CONSTRAINT constraint_name;  删除表的约束
ALTER TABLE table_name disable CONSTRAINT constraint_name;使表的constraint_name约束失效

ALTER TABLE table_name move old_TABLEspace new_TABLEspace;更改表所在的表空间

 

RENAME old_table_name TO new_tabl_name 重命名表

CREATE user user_name identified by password; 
创建用户后要授予登陆的权限,否则登陆不进oracle GRANT connect TO user_name;

CREATE TABLE table_a AS SELECT col_a,col_b,.. from table_b where 表达式;

数据控制语言
GRANT,REVOKE

GRANT SELECT on table_name TO user_name;  给用户授予查询表的权限
REVOKE SELECT on table_name FROM user_name;从用户上收回该表的SELECT权限

数据操纵语言:增,删,改,查
SELECT,INSERT,DELETE,UPDATE

truncate TABLE table_name; 直接删除表中数据,不可回滚

INSERT INTO table_name(col_1,col_2,...) values (value_1,value_2,...);
UPDATE table_name SET col_1 = value_1 , col_2 = value_2 , ....;


常用系统函数
length(str);  返回str字符串的长度,一个中文字符长度被认为是1
lengthb(str); 返回str字符串的字节长度,一个中文字符长度被认为是2

ltrim(str);   截取掉str左边的空字符串
rtrim(str);   截取掉str右边的空字符串
trim(str);    截取掉str左右的空字符串

substr(str,2,3); 从str的下标2开始,截取3个字符串(下标从1开始)

SELECT sysdate FROM dual;系统当前日期
SELECT currentt_date FROM dual;当前日期

可以修改日期格式,如下所示
SQL> ALTER session SET nls_date_format='dd-mon-yyyy hh:mi:ss';

会话已更改。

SQL> SELECT current_date FROM dual;

CURRENT_DATE
-------------------------
12-12月-2009 01:55:41

next_day(date,'星期三');得到当前日期的下一个星期几是几月几号
SQL> SELECT next_day(sysdate,'星期三') FROM dual;

NEXT_DAY(SYSDATE,'星期三'
-------------------------
16-12月-2009 01:57:38

to_char(sysdate,'yyyy-mm-dd');将日期格式化输出

to_date(str);将字符型转换成日期型
to_date(str,fomat);将特定格式的日期字符串转换成date对象

to_number(str); 将字符串转换成数值类型

max(col_name); 求出该列的最大值
min(col_name); 求出该列最小值
sum(col_name;  求出该列总和
avg(col_name); 平均值
count(col_name);求出该字段的行数
count(*);       返回表的行数  表的行数大于或者等于列的行数

decode(col_name,value,value_true,value_false); 当字段col_name的值为value的时候,该函数返回value_true否则返回value_false;

nvl(col_name,value); 如果col_name字段为空,则返回value值


表的连接查询 FROM join_table join_type join_table [ON (join_condition)]

1.内连接:
FROM table_a JOIN table_b ON table_a.id = table_b.id 一一对应
FROM table_a , table_b WHERE table_a.id = table_b.id
FROM table_a INNER JOIN table_b ON table_a.id = table_b.id

2.外连接

 2.1左连接:右边表的列值能匹配的匹配,不匹配的用NULL来代替
 FROM table_a , table_b WHERE table_a.id = table_b.id(+);

 2.2右连接:左边表的列值能匹配的匹配,不匹配的用NULL来代替
 FROM table_a , table_b WHERE table_a.id(+) = table_b.id;

3交叉连接:相当于笛卡尔积
SELECT col_name1,col_name2 FROM table_a CROSS JOIN table_b;

4.全连接:FULL JOIN 或 FULL OUTER JOIN。

IN和EXISTS
SELECT * FROM student WHERE sid IN (SELECT sid from test);
 
 

 

 

分享到:
评论

相关推荐

    Oracle学习笔记精华版

    Oracle学习笔记精华版是针对数据库管理系统Oracle的一份重要学习资源,涵盖了从基础概念到高级特性的全面知识。Oracle,作为全球广泛使用的大型企业级数据库系统,对于IT专业人员尤其是数据库管理员(DBA)来说,是...

    Oracle学习笔记 PDF

    ### Oracle学习笔记知识点详解 #### 一、Oracle简介 Oracle是一家知名的软件公司,以其数据库管理系统闻名全球。该公司成立于1977年,总部位于美国加利福尼亚州。Oracle不仅提供数据库解决方案,还涉及中间件、...

    Oracle学习笔记

    Oracle学习笔记 Oracle学习笔记是李兴华老师编写的Oracle从入门到精通的学习笔记,涵盖了 Oracle 的多表查询、连接、组函数和分组统计等知识点。在本篇笔记中,李兴华老师详细介绍了多表查询的基本语法、左右连接...

    Oracle学习笔记.pdf

    在Oracle学习笔记中,对安装卸载和配置的详尽讲解,不仅为学习者提供了操作指导,而且还涉及到了数据库管理的一些基础知识点。这些内容对于数据库管理员和开发人员来说都是十分重要的,因为它们是操作Oracle数据库的...

    Oracle学习笔记.doc

    Oracle学习笔记 以下是我这一周学习oracle整理的笔记,包括课堂的内容和自己看额外看的视频补充的一些内容,基本上囊括了所有oracle的基本知识。主要的形式是例子代码加代码解释加运行结果,我个人认为对于没有学习...

Global site tag (gtag.js) - Google Analytics