oracle基本语法

发布 2021-05-11 09:30:28 阅读 3617

忘了密码后。

1.若名登录到oralce编缉环境:sqlplus /nolog

2.集成登录到oracle 数据库:conn /as sysdba

3.修改 oracle 用户的密码:alter user 用户名 identified by 密码;

建表空间。create tablespace 表空间名。

datafile 'e:\'

size 1m(大小) autoextend on;

新建用户。create user 用户名。

identified by 33

default tablespace 默认表空间名。

temporary tablespace 临时表空间名(temp)

用户授权。给用户一个连接数据库授权。

grant connect to 用户名。

给用户一个使用数据库中的空间。

grant resource to 表户名。

给用户一个建序列的权限。

grant create requence to 用户名。

给用户一个访问scott用户下的一个emp表的权限。

1.要先登录到scott用户模式下。

2.授权:grant select on emp to 用户 ||grant all on emp to 用户。

修改用户的口令。

alter user 用户名 identified by 密码。

删除用户。drop user 用户名 cascade (其中的cascade表式用户模式对象)

登录到远程服务器。

用户名/密码@网络服务名(其中的网络服务名自己配置所要连接的主机)

得到表中数据行的行地址rowid,行号rownum

select rowid,rownum from emp where empno='7902';

创建数据表。

table 表名。

列名类型约束。

2.利用现有的表创建新表(新表名中的结构和表名的结构一样,且记录也一样,查询建表)

例 table 新表名。

asselect * from 表名;

例 table 新表名

asselect 列名1,列名2 from 表名;

例 table 新表名。

asselect * from 表名1

集合操作符(如union,union all)

select * from 表名2;

修改表结构。

添加列:alter table 表名 add (列名类型);

删除列:alter table 表名 drop column 列名;

修改列:alter table 表名 modify (列名要改的类型)

!!!注意,在修改的列必须要根据该列中的数据修改(如:该中有一条记录为10个宽度,但你要修改为6个宽度,会报错)

删除数据表。

drop table 表名 cascade constraints;(删除表,cascade表对象,constraints约束);

插入来自其他表中的数据。

insert into 表名(列名1,列名2...select 列名1,列名2...from 表名 where 条件

查看表结构。

desc 表名;

查看表中某一列的数据。

select 列名 from 表名。

如果这一个列的数据有重复,又想要无重复的行,用distinct

select distinct 列名 form 表名。

查询排序。select * from 表名 where 条件 order by 列名1,列名2 desc(降序)||asc(升,默认)

分组查询。select * from 表名 where 条件 group by 列名。

h**ing 条件(可以使用聚合函数)

注:where ,group by, h**ing, order by顺序不能倒

事务控制。sql>s**epoint mark1;

sql>delete ,insert ,update数据操纵语言(dml);

sql>s**epoint mark2;

sql>rollback to s**epoint mark1(回滚到mark1)

sql>commit;

授予权限。grant 权限 on 表名 to 用户名;

grant 权限 on 表名 to 用户名 with grant option;

注:with grant option表示该用户可以把这种权限授予其他用户。

收回权限 revoke 权限 on 表名 from 用户名;

算术操作符。

select 列名1*100,列名2-列名3 from 表名。

比较操作符。

in的使用(用来列表中任何一个相匹配的,where 条件都成立)

select * from 表名 where 列名1 in ('aaa','bbb');

like的使用(%表示后接任意长度任何字符,_表示后接一个长度任何字符)

select * from 表名 where 列名1 like 's%';

between...and...使用。

select * from 表名 where 列名1 between 5 and 100;

not in ,not like ,not between ..and...同上反之即为。

集合操作符。

union(联合):两个查询所有而不重复的行(类型匹配)

select 列名1 from 表1 union select 列名1 from 表2;

select 列名1,列名2 from 表1

union

select 列名2,列名1 from 表名2 order by 2;

两个列的列名不同,但要用第2列来排序,可以使用列的索引号来代替列名(是第2列,为2)

union all(联合所有):两个查询所有的行,两个列名不必相同,类型必须匹配

select 列名1 from 表1 union all select 列名2 from 表名2;

intersect(两个查询的交集)

select 列名1 from 表1 intersect select 列1 from 表2

minus (减集)第一个查询有,但第二个查询的结果没有的数据。

select 列1 from 表1 minus select 列1 from 表2

连接操作符'||

select ('a'||是一个字符')字符 from dual;

输出:字符。

a是一个字符。

操作符的优先级。

算术》连接》比较》not逻辑操作符》and逻辑》or逻辑。

单行函数据。

1日期函数(d,表示日期)

add_months: 在指定的格式上加上指定的月数后的日期值。

select add_months(sysdate,2) from dual;

months_between(d1,d2):返两个日期之间的月数,d1晚d2为正,否为负,相等为0,若d1,d2为某月中的同一于或最后一天,为正。

months_between('10-11月-06','1-11月-06')为正。

last_day(d) 返回指定日期的当月的最后一天。

last_day('10-11月-06')为'30-11月-06'

round(d,'格式'):返回日期的四舍五入为格式模型指定的单位。

如:round('06-5月-06','year'),返回为:01-1月-06,因为5月小于一年的一半,四舍五入。

next_day(d,day):day表示星期几, 返回下一个星期的这个星期几的日期。

如:next_day('10-11月-06','星期三'),得出下一星期三的日期,由于'10-11月-06'这一天是星期五,所以返回下一星期三的是日期:'15-11月-06'

trunc(d,'格式'):以指定的格式模型截断日期。

如:trunc('10-11月-06','year')以年的格式截断后变成:'1-1月-06'

extract(格式(fmt) from 日期(d)):提取日期中特定的部分。

如:extract(year from to_date('10-11月-06'))反回2006(字符串需要格式化成日期);

2字符函数。

initcap():首字母大写。

lower():转换成小写。

upper():转换成大写。

ltrim('abzhb','ab'):左剪裁,在左边把ab 剪裁。

rtrim('zhbab','ab'):右剪裁,在右边把ab 剪裁。

translate('zhblq','ahdhzb','123450'):按字母翻译,输出为:520lq (其中z,表示5,以此类推)

replace('zhbzhb','h','520'):字符串替换,输出为:z520bz520b

instr('zhb','h'):查找字符串的位置,输出为:2(注意,不是从0开始)

substr('zhblq',4,2):取字符串,输出:lq(注意:第4个字符为l,了取两个字符)

concat('zhb','lq') 连接字符串:输出为:zhblq

3数字函数

abs(-15):取绝对值输出:15

ceil(44.778):向上取数输出:45

sin(1.571):正弦输出:.9999999

cos(0):余弦输出:1

sign(-32):取符号输出:-1

floor(100.2):向下取整输出:100

power(4,2):4的2次幂输出:16

mod(10,3):取余数输出:1

round(100.269,2(表示精度)):四舍五入, 输出:100.27

trunc(100.269,2(表示截断后小数点位数)):截断,输出:100.26

sqrt(4):平方根,输出2

oracle基本语法

定义游标。declare cursor aa is select names,num from test beginfor bb in aa loopif oracle then end if end loop end 速度优化,前一语句不后一语句的速度快几十倍。select names,dates...

oracle常用语法

zt oracle initialization or shutdown in progress 3 zt ora 01033 oracle initialization or shutdown in progress的解决 8 zt 解决ora 01033 oracle initializatio...

英语基本语法

语法。一 词类。1 名词 noun n.表示人或事物的名称 名词不能随便跑出来 如pen apple dog等。2 冠词 article art.用于名词前,帮助说明名词所指的人或事物,包括a an the.3 代词 pronoun pron.用于代替名词以及名词作用的短语 分句或句子等。如we t...