项目中常见的SQL处理总结【二】

来源:互联网 发布:mysql密码字典 编辑:程序博客网 时间:2024/06/05 14:18

******************************************************

项目中常见的SQL处理总结【二】

******************************************************

-- 1.如何查询表中的某一行记录查数据库中表的任n行的记录:select * from ( select rownum x ,tab.* from tab) where x in (2,3);查询出数据库中表大于1000的记录:select * from ( select rownum x ,tab.* from tab) where x>1000
-- 2.使用一条sql可以insert到多个表中INSERT ALLINTO salesVALUES(product_id, customer_id,weekly_start_date,'P',501,q_sun,sales_sun)INTO salesVALUES(product_id, customer_id,weekly_start_date+1,'P',501,q_mon,sales_mon)INTO salesVALUES(product_id, customer_id,weekly_start_date+2,'P',501,q_tue,sales_tue)INTO salesVALUES(product_id, customer_id,weekly_start_date+3,'P',501,q_wed,sales_wed)INTO salesVALUES(product_id, customer_id,weekly_start_date+4,'P',501,q_thu,sales_thu)SELECT *FROM sales_input_table;
--3.层次查询select level, empno, ename, mgr  from emp start with mgr is nullconnect by prior empno = mgr;
--4.在group by 中不能使用别名select a1 a ,a2,count(*) from test group by a ,a2;
--5.如何访问远程数据库上的表create database link dsmpconnect to imuse01 identified by imuse01using 'dsmpdb';select count(*) from basetab@dsmpcreate synonym basetab for basetab@dsmp;select count(*) from basetab;
--6如何插入'字SQL> select '''' from dual;SQL> select ascii('''') from dual;SQL> select chr(39) from dual;
--7.如何删除表中的重记录select * from test a where rowid>( select min(rowid) from test b where a.a1=b.a1 and a.a2=b.a2);--8.如何把表中的记录横放Sql>select sum(decode(re,1,va,0)) a1,sum(decode(re,2,va,0)) a2,sum(decode(re,3,va,0)) a3 from wd
--9.如何查询表空间中剩余的空间select TABLESPACE_NAME, sum(bytes) / 1024 / 1024, sum(blocks)  from dba_free_space group by tablespace_name;
--10.1如何知道数据库使用的字符集select value  from nls_database_parameters Where PARAMETER = 'NLS_CHARACTERSET';--10.2如何修改数据库中的字符集以sysdba用户的权限登陆数据库sqlplus “ / as sysdba”SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP MOUNT;SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;SQL> ALTER DATABASE OPEN;SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;SQL> SHUTDOWN IMMEDIATE; -- or NORMALSQL> STARTUP;
--11.如果错误删除了某个数据库文件,数据库起不来如何办SQL> startupORACLE instance started.Total System Global Area 96393244 bytesFixed Size 75804 bytes Variable Size 56918016 bytesDatabase Buffers 39321600 bytes Redo Buffers 77824 bytesDatabase mounted.ORA-01157: cannot identify/lock data file 10 - see DBWR trace file ORA- 01110: data file 10: 'D:\TEST.DBF'SQL> alter database datafile 'd: \test.dbf' offline drop;Database altered.SQL > alter database open;
--12.为何数据库不能显示中文与数据库的字符集有关。 一般在安装数据库时选择的字符集为zhs16gbk。 在客户端的字符集的选择是在注册表中(对于windows的机器),如果在UNIX中 则要设置环境变量。 服务器与客户端的字符集一定要一样。 如果在更换字符集则要重安数据库,但可以用 alter database set character 命令将字符集设为超集
--13.如何知道当前用户操作权限select * from session_roles;--14.如果kill掉一个数据库中的用户Select sid,serial# from v$session where sid>6;Alter system kill session '13,23'; --15.如何在sqlplus中执行一个操作系统命令使用!可以执行操作系统中的命令Sql> ! LsSql> ! Mv a.dat b.dat

--16.为什么数据库启动非常慢,关心你的服务器上以下目录是否存在Admin/cdumpAdmin/bdumpAdmin/udump--17.为什么listener启动非常慢,请关注以下文件:$ORACLE_HOME/network/admin/listener.ora/etc/hosts--18.如何把表从一个表空间移到另一个表空间Alter table emp move tablespace others;--19.在移动之后要重新rebuild索引 如何rebuild索引Alter index index_name rebuild tablespace inx;


原创粉丝点击