Oracle笔记之二

 

-----创建表-------

Creat table student ( age int(3) ,  name varchar2(20) showdate date);

----加主键约束----

ALTER TABLE ADMIN.STUDENT

ADD CONSTRAINT STUDENT_PK  PRIMARY KEY(ID);

----非空设定---

ALTER TABLE ADMIN.STUDENT MODIFY(AGE  NOT NULL);

------------

Distinic 不重复

Nvl(sex,'0'

----序列----- sequence

CREATE SEQUENCE ADMIN.ID_SQU

START WITH 1

INCREMENT BY 1

MINVALUE 0

MAXVALUE 100

NOCACHE

NOCYCLE

NOORDER

---

----加一列----

ALTER TABLE YBL.XUANKE

 ADD (beiyong  VARCHAR2(20));

删除一列

ALTER TABLE ADMIN.DIANHUABEN DROP COLUMN ID;

给列修改名字

ALTER TABLE ADMIN.STUDENT

RENAME COLUMN CLASS_ID TO CLASSid;

修改表名

rename xiao2 to xiao

 

 

Set unused column

 

----------------------------------

清空数据  truncate table

 

 

 

create table person(id int not null ,name varchar2(40) not null,qq varchar2(9),phone varchar(20) not null,sex varchar2(10),group_id int)

 

两个表

select p.name, t.name from tel_group t,person p where t.id=p.group_id

 

insert into person (id,name,sex,qq,phone,group_id)

 

 

insert into tel_group(id,name)values (group_seq.nextval,'大学')

---------------限制条件----------

Set line  100 (默认是80)出现的最多的列数

Show feedback 显示查询时显示的行数

Set heading off 设置标题的开关

Set  arrayssize 10 一次显示 10 行,最多5000

Set page 24)一页出现的行数

Set long

把多个字符串连接起来

 distinct过滤到重复的

比较运算

大于>

小于 < 

不等于 = !<>

Between     and 

Not

Where age   [not]in(23,33,43)

Like '%aa%' '___a' 一个_表示一个字符

如果需要转义字符 /%表示 %

别名   select name as mynam 或者select name myname from student

排序 order by 1 desc 表示根据第一列排序

 

显示行号

              每个表都有一个虚列ROWNUM,它用来显示结果中记录的行号。我们在查询中也可以显示这个列。

SELECT rownum,ename FROM emp;

All

select * from emp where sal>all(1000,1500,2000);

Not exists

select '存在的雇员SMITH' from dual where exists(select * from emp where ename='SMITH')

---------- 缓寸区 ------

List  缓寸区 刚才输入的命令 执行: run  /  或者r 

1 select name,

2 age,phone

3 from student

2 定位到第2  a  bb  就把bb加到了第2

删除del 3 把第三行删除

修改一行 change 或者简写为c

先定位1 定位到第一行

Change /name/myname

 

生成脚本 save d:/a.sql

调用脚本Get d:/a.sql / 或者 直接 start d:/a.sql start可以用@替换

Ed回车可以编辑

 

spool d:/aa 保存自己的操作包括结果都保存到aa文件夹

 

spool off 停止保存

-------函数------

 

函数名称

   

 

 

ascii

获得字符的ASCII

Ascii('A')

65

chr

返回与ASCII码相应的字符

Chr(65)

A

lower

将字符串转换成小写

lower ('SQL Course')

sql course

upper

将字符串转换成大写

upper('SQL Course')

SQL COURSE

initcap

将字符串转换成每个单词以大写开头

initcap('SQL course')

Sql Course

concat

连接两个字符串

concat('SQL', ' Course')

SQL Course

substr

给出起始位置和长度,返回子字符串

substr('String',1,3)

Str

length

求字符串的长度

length('Wellcom')

7

instr

给出起始位置和出现的次数,求子字符串在字符串中出现的位置

instr('String', 'r',1,1)

3

lpad

用字符填充字符串左侧到指定长度

lpad('Hi',10,'-')

--------Hi

rpad

用字符填充字符串右侧到指定长度

rpad('Hi',10,'-')

Hi--------

trim

在一个字符串中去除另一个字符串

trim('S' FROM 'SSMITH')

MITH

replace

用一个字符串替换另一个字符串中的子字符串

replace('ABC', 'B', 'D')

ADC

 

 

 转换成小写select  lower(name) from student

转换成大写 upper

select * from dual;--虚的表格

Initcap 把首字母大写

 concat 连接字符串

Substr (name,m,n)namem n个截下来 Substr (name,m)

Select substr(''helloworld',2,5)

 Length 查询长度

Instr('helloworld',3,2) from dual

Trim 去掉两头的空格

 

 

 

Replace

select replace('hhhhlllhhh','h','a')from dual   ---aaaalllaaa

Round 四舍五入

select round(23.66644,1)from dual 精确到小数典后一位---23.7

select round(23.6664,2)from dual 精确到小数典后二位---  23.67

 

Trunc 直接截取  select trunc(23.66644,2)from dual 23.66

Mod (m,n)m/n取余

------时间的操作

 

系统时间sysdate

Select sysdate from dual

Month_between

To_date(sysdate,''yy-MM-dd)

---Select Month_between(''10-23-02','10-23-08') from dual

Add_month(月,日)

----------------------------

Varchar可以自动转换成number

Char Varchar----date

Number---Char Varchar-

Date ---Char Varchar-

To_char()

select to_char(sysdate,'YYYY-MM-DD HH:mm:ss') from dual

To_number()

To_date()

insert into classinfo values(4,'oracle','sys',to_date('2008-05-01','YYYY-MM-DD'))

 

 

 

 

 

[NOT] BETWEEN…AND…

用于测试是否在范围内

Select * from emp Where sal between 1000 and 2000

[NOT] IN (…)

用于测试是否在列表中

Select*from emp Where job in('CLERK', 'SALESMAN','ANYLYST')

[NOT] LIKE

用于进行模式匹配

Select * from emp Where ename like '%A%'

IS [NOT] NULL

用于测试是否为空值

Select * from emp Where comm is not null

ANY SOME

同列表或查询中的每一个值进行比较,测试是否有一个满足,前面必须使用的运算符包括=!=>=<=><

Select * from emp Where sal<any(select sal from emp where deptno=10)

 

 

0 前导0 $l 显示本地货币号

Mi 显示千位符号

 

 

-------空值处理-------

空值和任何数操作都是空

select name ,nvl(phone,0) from student;

NAME

NVL(PHONE,0)

tom

0

 

decode(

name,

'tom',age*2,

'张三',age*5,

Age*8

 

)意义:name tomage*2 name'张三的age*5, 其他的Age*8

 

Nvl2(name,a,b)name如果是空的就变成a不是空则为b

 

 

 分组函数

Count avg sum

Max mix

Select count(*) from student

Group by 不能用where 可以用having代替

Select class_id ,avg(age) from student group by class_id having avg(age)>20

 

Select s.name ,c.name from student  s,class_info  c where s.class_id=c.id order by c.id;

加号放在少的那边 就能把所有的都显示出来

-------链接----

Select a.id,b.name from student a left outer join class_info b on(a.id=b.id) 或者用加号

 left outer==左边加加号 左外连接

Right outer = 右边加号  右外连接

Full outer join

Select table_name from user_tables

 

建立表空间

CREATE TABLESPACE "MYSPACE1"

    LOGGING

    DATAFILE 'E:/ORACLE/ORADATA/ORA250/MYSPACE1.ora' SIZE 5M

    AUTOEXTEND

    ON NEXT  5M MAXSIZE  200M EXTENT MANAGEMENT LOCAL SEGMENT

    SPACE MANAGEMENT  AUTO

Create tablespace "xiaogang"  Datafile 'e:/oracle/admin/xiaogang.dbf' Size 15M  AUTOEXTEND ON NEXT  5M MAXSIZE  200M

显示用户下有多少表

Select * from user_tables

创建用户:aaa 密码 bbb

CREATE USER "AAA"  PROFILE "DEFAULT"

    IDENTIFIED BY "bbbb" DEFAULT TABLESPACE "USERS"

    ACCOUNT UNLOCK;

GRANT "CONNECT" TO "AAA" WITH ADMIN OPTION;

GRANT "DBA" TO "AAA" WITH ADMIN OPTION;  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值