Oracle学习笔记

  |   0 评论   |   1,317 浏览

    一、安装时将,杀毒,安全等软件退出

    二、备份注册表:regedit

    三、安装时,服务设置成手动启动

    四、安装完成,需要启动OracleServiceWY、OracleOraHome90TNSListener服务(其中WY为安装过程取的名字)

     

    五、打开编辑界面的方法:

    1、启动安装程序下的sqlplus程序,打开编辑界面

    2、运行:cmd——-sqlpus(dos界面)

    3、运行:sqlpus(dos界面)

    4、运行:sqlpusw(实际打开的也是sqlpus程序界面)

    5、启动OracleOraHome90HTTPServer服务,IE输入:http://127.0.0.1:8080显示正常说明Oracle没有问题

    然后IE输入:http://127.0.0.1/isqlplus

     

    六、用户名/密码:

    1、sys/changeoninstall 只能管理system帐号,相当于董事长

    2、system/manager 只能管理scott帐号,相当于经理(高级管理员)

    3、scott/tiger 普遍用户帐号,相当于员工,一般用此用户登录

     

    七、语句:

    1、登录scott帐号

    scott/tiger

    1、select * from tab ; 查scott下有多少表

    2、select * from emp ; 查scott下的emp表

    3、desc emp ; 查询emp下的所有字段

    3、show user 查当前用户 clear screen 清屏

     

    4、set LineSize 100 ; 设置查询时按100列显示

    5、set PageSize 5 ; 设置查询时每5行显示2行数据,总共有14/3+1=5个数据段 ,这里有5-3=2,即一行空格,一行字段,一行短横线,剩下的就是每行的记录,加起来满5行一个PageSize。

     

    6、创建用户,要去system用户下创建,和授权

    connect syetem/manager ;

    create user yangyong identified by “123” ; 用户名yangyong密码:123

    7、修改密码:可以在当前用户和system用户下修改

    connect yangyong/123

    alter user yangyong identified by yy ; 改为yy

    connect system/manager

    alter user yangyong identified by “123” ; 又改回123

    8、在system中赋相应权限:connect(连接用户)、resource(查询、新建、删除、修改(alter)表)

    connect system/manager

    grant connect to yangyong ;

    grant resource to yangyong ; 或是:grant connect,resource to yangyong ;

     

    9、某用户给某用户某张表的某些权限:如:scott给yangyong查询emp的权限

    connect scott/tiger

    grant select on emp to yangyong ;

    grant alter on emp to yangyong;

    某用户给某用户某张表的所有权限:

    connect scott/tiger

    grant all on emp to yangyong ; 将scott中emp表的所有权限给yangyong

    撤销所有权限:revoke

    revoke all on emp from yangyong ; 从yangyong那撤销scott中emp表的所有权限

    revoke all on emp from yangyong ;

     

    10、复制某用户下的某张表,需要此用户给他select权限,如:yangyong要复制scott下的emp表

    connect scott/tiger

    grant select on emp to yangyong ; 给yangyong权限查询scott.emp的权限

    connect yangyong/123

    create table emp as select * from scott.emp ; 然后在yangyong下创建emp表

     

    11、在system下删除用户yangyong:(cascade强制删除)

    connect system/manager

    drop user yangyong cascade ;

     

    八、表

    1、创建表

    create table student (

    xh number(4) ,

    xm varchar2(10) , –Oracle中都是varchar2,varchar会自动转换成varchar2

    sex char(2) ,

    birthday date ,

    money number(5 , 2) –表示小数前三位,小数后两位

    )

    create table class(

    id number(4) primary key ,

    cname varchar2(10) not null

    );

    create table student (

    xh number(4) primary key ,

    xm varchar2(10) not null , –Oracle中都是varchar2,varchar会自动转换成varchar2

    age number(2) check(age between 10 and 90 ) ,

    sex char(2) check(sex in (‘男’ , ‘女’)) ,

    shengfenzheng number(18) unique ,

    classid number(4) references class(id) ,

    money number(5 , 2)

    ) ;

     

     

    2、添加数据和SQL2000一样如:insert into student values(002 , ‘李四’ , ‘女’ , ‘01-6月-08’ , 100) ;

    Oracle中时间date类型为:月-日-年:mm-nn-yyyy

    修改时间date类型为:年-月-日:yyyy-mm-nn

    alter session set nlsdateformat = yyyy-mm-nn ;

    alter session set nlsdateformat = mm-nn-yyyy ;

     

    3、修改表

    给表重命名:rename student to stu ;

    增加字段:alter table student add(classid number(4)) ;

    修改字段长度(同一类型):alter table student modify(xm varchar2(12)) ;

     

    修改字段类型:先要删除这个字段中的所有值(保证这个字段为空,字段还在),再修改类型。

    删除一列的值:delete table student ?

     

    删除一列:alter table student drop column money ; (此列字段和值都没了)

     

    删除一行:delete from student where xh = 5 ;

    删除所有行:truncate table student ;(在日志文件中不会记录,对于大表速度快,表的字段还在。而delete会记录在日志中)

     

    九、函数:

    concat|| :连接字符

    select deptno,dname||‘—-’||loc from dept ; 用—–连接dname和loc字段

    select concat(deptno,dname) as abc from dept ; 将deptno,dname连接以abc命名,否则以concat(deptno,dname)命名

    –注意:||null||连接符相当于sqlserver中的+连接符

     

    initcap:首字母大写

    select ename,initcap(ename) from emp ;

     

    lower:将字符串转换成小写

    select ename,lower(ename) from emp ;

     

    upper:将字符串转换成大写

    select ename,upper(ename) from emp ;

     

    lpad:对齐右边,将左边空格填充为指定的符号

    select deptno,lpad(dname,10,‘*’),loc from dept ;

    rpad:对齐左边,将右边空格填充为指定的符号

    select deptno,rpad(dname,10,''),loc from dept ;

     

    ltrim:去掉左边的空格

    select LTRIM(’ ccc ’) from dual ; –dual哑元表:临时的存在内存中

    rtrim:去掉右边的空格

    select LTRIM(’ ccc ’) from dual ;

    trim:去掉两边的空格

    select LTRIM(’ ccc ’) from dual ;

     

    replace:转换

    select ename,replace(ename,‘S’,‘s’) from emp ;

    translate:替换

    select ename,translate(ename,‘S’,‘a’) from emp ;

     

    ascii:

    select ascii(‘A’) from dual ;

    chr:

    select chr(97) from dual ;

     

    select ‘Hello’||chr(9)||‘World’ from dual ; –chr(9)表示空格

     

    substr:

    select ename,substr(ename,1,3) from emp ;–取前3个字符

    select ename,substr(ename,4) from emp ;–取第4以后的字符

     

    instr:

    select ename,instr(ename,‘S’) from emp ; –查S字符有多少个

    select ename,instr(ename,‘T’,1,2) from emp ; –查第一个T后有多少个T

     

    length:字符长度

    select ename ,length(ename) from emp ;

     

    十、修改表

    update

    update dept set loc=lower(loc) ; –将loc列变成小写

    评论

    发表评论

    validate