oracle sql语句总结

来源:互联网 发布:淘宝童装棉衣 编辑:程序博客网 时间:2024/05/16 05:06

转载自:http://hi.baidu.com/8023caihaobin/item/c775b61112ea4c543a176ea9


在我的windows 7上面安装上了oracle 11g R2,可谓痛苦,开了oracle的服务电脑变得很慢,安装的时候也麻烦多多

为了做写笔记,这里我总结了一些现在我经常用到的sql语句,高手看了不要见怪,我是初学者,写这个笔记主要是在网上搜索的时候大多都是一样的,最关键是老是不行

 

我是用myeclipse连接到oracle数据库

 

以下是总结:

 

(1)查看oracle的版本:

         select version from Product_component_version where SUBSTR(PRODUCT,1,6)='Oracle';

(23)创建数据表:

         create table saiTest(userid number not null primary key,uName varchar2(50) not null,uPassword varchar2(50) not null);

(3)查看表字段:

         select column_name,data_type,data_length,nullable from user_tab_columns where table_name = upper('saiTest');

        网上很多都没有upper,所以之前总是查不到,在PLSQL和myeclipse都不行

        当然也可以全部查出来,根据需要筛选要看的字段

        select * from user_tab_columns where table_name = upper('saiTest');

(4)插入数据

        insert into saiTest values ('1','king','123456');

(5)修改数据

        update saiTest set uName = 'queen' where userId = 1; 

(6)增加列

        alter table saiTest add uImg varchar2(50);

        如果增加列的时候数据表已经有内容了,新增的列不能设置为非空,不然会报错

(7)修改列

         为了测试,先增加一列

         alter table saiTest add uMessage number;

         修改

         alter table saiTest modify uMessage varchar2(50);

(8)删除列

        alter table saiTest drop column uImg;

(9)添加/修改表的注释

         comment on table saiTest is '存放雇员信息';

         查看表的注释:

        select  *  from  user_tab_comments where table_name = upper('saiTest');

(10)为数据表的列添加注释:

           comment on column saiTest.userId is '用户id';

           comment on column saiTest.uName is '用户名';

           comment on column saiTest.uPassword is '用户密码';

           comment on column saiTest.uImg is '用户头像';

            select  *  from  user_col_comments where table_name = upper('saiTest');

(11)查看有哪那些表

           select table_name from user_tables;

(12)分页语句

            先在表中插入多几条数据

            SELECT * FROM (SELECT saiTest.*, ROWNUM RN FROM (SELECT * FROM saiTest ) saiTest WHERE ROWNUM <= 3 ) WHERE  RN >= 1

             把3和1换成自己需要的数字

(13)查出倒叙的第一条

            select * from (select * from saiTest order by userId desc) where rownum = 1;

(14)查出数据库的系统时间

           select sysdate from Saitest where rownum = 1;

(15)自动增长

           在mysql、sql server中可以设置列的值自动增长,然后将这个字段作为主键,但是oracle没有这个自动增长的功能,因此要用到sequence

           创建sequence:

           create sequence seq_test

           minvalue 1

           maxvalue 99999999999999999

            start with 1

            increment by 1

            cache 20

            nocycle

            order;

 

            minvalue 1:最小值为1

            maxvalue 99999999999999999:最大值为99999999999999999

            start with 1:从1开始

            increment by 1:每次加1

            cache:ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些

            nocycle:一直加下去

             

            先把saiTest得内容全部删除

            delete from saiTest;

             insert into saiTest values (seq_test.nextval,'auto','123456');

             insert into saiTest values (seq_test.nextval,'hehe','123456');

             seq_test:sequence的名字

 

(16)查看用户的sequence

           select * from user_sequences where sequence_name=upper('seq_test');

(17)查看当前用户拥有的权限           

          select * from user_role_privs;

(18)查看当前用户当前会话的权限

          select * from session_privs;

(19)修改表名

         rename saiTest to myTest;


原创粉丝点击