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

本文为项目中SQL处理的第二部分总结,涵盖了字符集转换、日期操作和系统信息查询等多个实用技巧,旨在提升数据库查询与管理的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

项目中常见的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 ALL
INTO sales
VALUES(product_id, customer_id,weekly_start_date,'P',
501,q_sun,sales_sun)
INTO sales
VALUES(product_id, customer_id,weekly_start_date+1,'P',
501,q_mon,sales_mon)
INTO sales
VALUES(product_id, customer_id,weekly_start_date+2,'P',
501,q_tue,sales_tue)
INTO sales
VALUES(product_id, customer_id,weekly_start_date+3,'P',
501,q_wed,sales_wed)
INTO sales
VALUES(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 null
connect by prior empno = mgr;
--4.在group by 中不能使用别名
select a1 a ,a2,count(*) from test group by a ,a2;
--5.如何访问远程数据库上的表
create database link dsmp
connect to imuse01 identified by imuse01
using 'dsmpdb';
select count(*) from basetab@dsmp
create 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 NORMAL
SQL> STARTUP;
--11.如果错误删除了某个数据库文件,数据库起不来如何办
SQL> startup
ORACLE instance started.
Total System Global Area 96393244 bytes
Fixed Size 75804 bytes Variable Size 56918016 bytes
Database Buffers 39321600 bytes Redo Buffers 77824 bytes
Database 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> ! Ls
Sql> ! Mv a.dat b.dat

--16.为什么数据库启动非常慢,关心你的服务器上以下目录是否存在
Admin/cdump
Admin/bdump
Admin/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;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值