文档库 最新最全的文档下载
当前位置:文档库 › oracle常用SQL

oracle常用SQL

oracle常用经典SQL查询

常用SQL查询:

1、查看表空间的名称及大小

select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size

from dba_tablespaces t, dba_data_files d

where t.tablespace_name = d.tablespace_name

group by t.tablespace_name;

2、查看表空间物理文件的名称及大小

select tablespace_name, file_id, file_name,

round(bytes/(1024*1024),0) total_space

from dba_data_files

order by tablespace_name;

3、查看回滚段名称及大小

select segment_name, tablespace_name, r.status,

(initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,

max_extents, v.curext CurExtent

From dba_rollback_segs r, v$rollstat v

Where r.segment_id = https://www.wendangku.net/doc/9812787290.html,n(+)

order by segment_name;

4、查看控制文件

select name from v$controlfile;

5、查看日志文件

select member from v$logfile;

6、查看表空间的使用情况

select sum(bytes)/(1024*1024) as free_space,tablespace_name

from dba_free_space

group by tablespace_name;

SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE, (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"

FROM SYS.SM$TS_A V AIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C

WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;

7、查看数据库库对象

select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;

8、查看数据库的版本

Select version FROM Product_component_version

Where SUBSTR(PRODUCT,1,6)='Oracle';

9、查看数据库的创建日期和归档方式

Select Created, Log_Mode, Log_Mode From V$Database;

10、捕捉运行很久的SQL

column username format a12

column opname format a16

column progress format a8

select username,sid,opname,

round(sofar*100 / totalwork,0) || '%' as progress,

time_remaining,sql_text

from v$session_longops , v$sql

where time_remaining <> 0

and sql_address = address

and sql_hash_value = hash_value

/

11。查看数据表的参数信息

SELECT partition_name, high_value, high_value_length, tablespace_name,

pct_free, pct_used, ini_trans, max_trans, initial_extent,

next_extent, min_extent, max_extent, pct_increase, FREELISTS,

freelist_groups, LOGGING, BUFFER_POOL, num_rows, blocks,

empty_blocks, avg_space, chain_cnt, avg_row_len, sample_size,

last_analyzed

FROM dba_tab_partitions

--WHERE table_name = :tname AND table_owner = :towner

ORDER BY partition_position

12.查看还没提交的事务

select * from v$locked_object;

select * from v$transaction;

13。查找object为哪些进程所用

select

p.spid,

s.sid,

s.serial# serial_num,

https://www.wendangku.net/doc/9812787290.html,ername user_name,

a.type object_type,

s.osuser os_user_name,

a.owner,

a.object object_name,

decode(sign(48 - command),

1,

to_char(command), 'Action Code #' || to_char(command) ) action,

p.program oracle_process,

s.terminal terminal,

s.program program,

s.status session_status

from v$session s, v$access a, v$process p

where s.paddr = p.addr and

s.type = 'USER' and

a.sid = s.sid and

a.object='SUBSCRIBER_A TTR'

order by https://www.wendangku.net/doc/9812787290.html,ername, s.osuser

14。回滚段查看

select rownum, sys.dba_rollback_segs.segment_name Name, v$rollstat.extents

Extents, v$rollstat.rssize Size_in_Bytes, v$rollstat.xacts XActs,

v$rollstat.gets Gets, v$rollstat.waits Waits, v$rollstat.writes Writes,

sys.dba_rollback_segs.status status from v$rollstat, sys.dba_rollback_segs,

v$rollname where v$https://www.wendangku.net/doc/9812787290.html,(+) = sys.dba_rollback_segs.segment_name and

v$https://www.wendangku.net/doc/9812787290.html,n (+) = v$https://www.wendangku.net/doc/9812787290.html,n order by rownum

15。耗资源的进程(top session)

select s.schemaname schema_name, decode(sign(48 - command), 1,

to_char(command), 'Action Code #' || to_char(command) ) action, status

session_status, s.osuser os_user_name, s.sid, p.spid , s.serial# serial_num,

nvl(https://www.wendangku.net/doc/9812787290.html,ername, '[Oracle process]') user_name, s.terminal terminal,

s.program program, st.value criteria_value from v$sesstat st, v$session s , v$process p where st.sid = s.sid and st.statistic# = to_number('38') and ('ALL' = 'ALL'

or s.status = 'ALL') and p.addr = s.paddr order by st.value desc, p.spid asc, https://www.wendangku.net/doc/9812787290.html,ername asc, s.osuser asc

16。查看锁(lock)情况

select /*+ RULE */ ls.osuser os_user_name, https://www.wendangku.net/doc/9812787290.html,ername user_name,

decode(ls.type, 'RW', 'Row wait enqueue lock', 'TM', 'DML enqueue lock', 'TX',

'Transaction enqueue lock', 'UL', 'User supplied lock') lock_type,

o.object_name object, decode(ls.lmode, 1, null, 2, 'Row Share', 3,

'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive', null)

lock_mode, o.owner, ls.sid, ls.serial# serial_num, ls.id1, ls.id2

from sys.dba_objects o, ( select s.osuser, https://www.wendangku.net/doc/9812787290.html,ername, l.type,

l.lmode, s.sid, s.serial#, l.id1, l.id2 from v$session s,

v$lock l where s.sid = l.sid ) ls where o.object_id = ls.id1 and o.owner

<> 'SYS' order by o.owner, o.object_name

17。查看等待(wait)情况

SELECT v$waitstat.class, v$waitstat.count count, SUM(v$sysstat.value) sum_value

FROM v$waitstat, v$sysstat WHERE v$https://www.wendangku.net/doc/9812787290.html, IN ('db block gets',

'consistent gets') group by v$waitstat.class, v$waitstat.count

18。查看sga情况

SELECT NAME, BYTES FROM SYS.V_$SGASTAT ORDER BY NAME ASC

19。查看catched object

SELECT owner, name, db_link, namespace, type, sharable_mem, loads, executions,

locks, pins, kept FROM v$db_object_cache

20。查看V$SQLAREA

SELECT SQL_TEXT, SHARABLE_MEM, PERSISTENT_MEM, RUNTIME_MEM, SORTS, VERSION_COUNT, LOADED_VERSIONS, OPEN_VERSIONS, USERS_OPENING, EXECUTIONS,

USERS_EXECUTING, LOADS, FIRST_LOAD_TIME, INV ALIDATIONS, PARSE_CALLS, DISK_READS,

BUFFER_GETS, ROWS_PROCESSED FROM V$SQLAREA

21。查看object分类数量

select decode (o.type#,1,'INDEX' , 2,'TABLE' , 3 , 'CLUSTER' , 4, 'VIEW' , 5 ,

'SYNONYM' , 6 , 'SEQUENCE' , 'OTHER' ) object_type , count(*) quantity from

sys.obj$ o where o.type# > 1 group by decode (o.type#,1,'INDEX' , 2,'TABLE' , 3

, 'CLUSTER' , 4, 'VIEW' , 5 , 'SYNONYM' , 6 , 'SEQUENCE' , 'OTHER' ) union select

'COLUMN' , count(*) from sys.col$ union select 'DB LINK' , count(*) from

22。按用户查看object种类

select https://www.wendangku.net/doc/9812787290.html, schema, sum(decode(o.type#, 1, 1, NULL)) indexes,

sum(decode(o.type#, 2, 1, NULL)) tables, sum(decode(o.type#, 3, 1, NULL)) clusters, sum(decode(o.type#, 4, 1, NULL)) views, sum(decode(o.type#, 5, 1, NULL)) synonyms, sum(decode(o.type#, 6, 1, NULL)) sequences,

sum(decode(o.type#, 1, NULL, 2, NULL, 3, NULL, 4, NULL, 5, NULL, 6, NULL, 1)) others from sys.obj$ o, https://www.wendangku.net/doc/9812787290.html,er$ u where o.type# >= 1 and https://www.wendangku.net/doc/9812787290.html,er# =

o.owner# and https://www.wendangku.net/doc/9812787290.html, <> 'PUBLIC' group by https://www.wendangku.net/doc/9812787290.html, order by

sys.link$ union select 'CONSTRAINT' , count(*) from sys.con$

23。有关connection的相关信息

1)查看有哪些用户连接

select s.osuser os_user_name, decode(sign(48 - command), 1, to_char(command), 'Action Code #' || to_char(command) ) action, p.program oracle_process,

status session_status, s.terminal terminal, s.program program,

https://www.wendangku.net/doc/9812787290.html,ername user_name, s.fixed_table_sequence activity_meter, '' query,

0 memory, 0 max_memory, 0 cpu_usage, s.sid, s.serial# serial_num from v$session s, v$process p where s.paddr=p.addr and s.type = 'USER' order by https://www.wendangku.net/doc/9812787290.html,ername, s.osuser

2)根据v.sid查看对应连接的资源占用等情况

select https://www.wendangku.net/doc/9812787290.html,,

v.value,

n.class,

n.statistic#

from v$statname n,

v$sesstat v

where v.sid = 71 and

v.statistic# = n.statistic#

order by n.class, n.statistic#

3)根据sid查看对应连接正在运行的sql

select /*+ PUSH_SUBQ */

command_type,

sql_text,

sharable_mem,

persistent_mem,

runtime_mem,

sorts,

version_count,

loaded_versions,

open_versions,

users_opening,

executions,

users_executing,

loads,

first_load_time,

invalidations,

parse_calls,

disk_reads,

buffer_gets,

rows_processed,

sysdate start_time,

sysdate finish_time,

'>' || address sql_address,

'N' status

from v$sqlarea

where address = (select sql_address from v$session where sid = 71)

24.查询表空间使用情况

select a.tablespace_name "表空间名称",

100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) "占用率(%)",

round(a.bytes_alloc/1024/1024,2) "容量(M)",

round(nvl(b.bytes_free,0)/1024/1024,2) "空闲(M)",

round((a.bytes_alloc-nvl(b.bytes_free,0))/1024/1024,2) "使用(M)",

Largest "最大扩展段(M)",

to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') "采样时间"

from (select f.tablespace_name,

sum(f.bytes) bytes_alloc,

sum(decode(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytes

from dba_data_files f

group by tablespace_name) a,

(select f.tablespace_name,

sum(f.bytes) bytes_free

from dba_free_space f

group by tablespace_name) b,

(select round(max(ff.length)*16/1024,2) Largest,

https://www.wendangku.net/doc/9812787290.html, tablespace_name

from sys.fet$ ff, sys.file$ tf,sys.ts$ ts

where ts.ts#=ff.ts# and ff.file#=tf.relfile# and ts.ts#=tf.ts#

group by https://www.wendangku.net/doc/9812787290.html,, tf.blocks) c

where a.tablespace_name = b.tablespace_name and a.tablespace_name = c.tablespace_name

25. 查询表空间的碎片程度

select tablespace_name,count(tablespace_name) from dba_free_space group by tablespace_name having count(tablespace_name)>10;

alter tablespace name coalesce;

alter table name deallocate unused;

create or replace view ts_blocks_v as

select tablespace_name,block_id,bytes,blocks,'free space' segment_name from dba_free_space union all

select tablespace_name,block_id,bytes,blocks,segment_name from dba_extents;

select * from ts_blocks_v;

select tablespace_name,sum(bytes),max(bytes),count(block_id) from dba_free_space

group by tablespace_name;

26。查询有哪些数据库实例在运行

select inst_name from v$active_instances;

===========================================================

######### 创建数据库----look $ORACLE_HOME/rdbms/admin/buildall.sql #############

create database db01

maxlogfiles 10

maxdatafiles 1024

maxinstances 2

logfile

GROUP 1 ('/u01/oradata/db01/log_01_db01.rdo') SIZE 15M,

GROUP 2 ('/u01/oradata/db01/log_02_db01.rdo') SIZE 15M,

GROUP 3 ('/u01/oradata/db01/log_03_db01.rdo') SIZE 15M,

datafile 'u01/oradata/db01/system_01_db01.dbf') SIZE 100M,

undo tablespace UNDO

datafile '/u01/oradata/db01/undo_01_db01.dbf' SIZE 40M

default temporary tablespace TEMP

tempfile '/u01/oradata/db01/temp_01_db01.dbf' SIZE 20M

extent management local uniform size 128k

character set AL32UTE8

national character set AL16UTF16

set time_zone='America/New_York';

############### 数据字典##########

set wrap off

select * from v$dba_users;

grant select on table_name to user/rule;

select * from user_tables;

select * from dba_tables;

revoke dba from user_name;

shutdown immediate

startup nomount

select * from v$instance;

select * from v$sga;

select * from v$tablespace;

alter session set nls_language=american; alter database mount;

select * from v$database;

alter database open;

desc dictionary

select * from dict;

desc v$fixed_table;

select * from v$fixed_table;

set oracle_sid=foxconn

select * from dba_objects;

set serveroutput on

execute dbms_output.put_line('sfasd');

############# 控制文件########### select * from v$database;

select * from v$logfile;

select * from v$log;

select * from v$backup;

/*备份用户表空间*/

alter tablespace users begin backup;

select * from v$archived_log;

select * from v$controlfile;

alter system set control_files='$ORACLE_HOME/oradata/u01/ctrl01.ctl',

'$ORACLE_HOME/oradata/u01/ctrl02.ctl' scope=spfile;

cp $ORACLE_HOME/oradata/u01/ctrl01.ctl $ORACLE_HOME/oradata/u01/ctrl02.ctl startup pfile='../initSID.ora'

select * from v$parameter where name like 'control%' ;

show parameter control;

select * from v$controlfile_record_section;

select * from v$tempfile;

/*备份控制文件*/

alter database backup controlfile to '../filepath/control.bak';

/*备份控制文件,并将二进制控制文件变为了asc 的文本文件*/

alter database backup controlfile to trace;

24.查询表空间使用情况

select a.tablespace_name "表空间名称",

100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) "占用率(%)",

round(a.bytes_alloc/1024/1024,2) "容量(M)",

round(nvl(b.bytes_free,0)/1024/1024,2) "空闲(M)",

round((a.bytes_alloc-nvl(b.bytes_free,0))/1024/1024,2) "使用(M)",

Largest "最大扩展段(M)",

to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') "采样时间"

from (select f.tablespace_name,

sum(f.bytes) bytes_alloc,

sum(decode(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytes

from dba_data_files f

group by tablespace_name) a,

(select f.tablespace_name,

sum(f.bytes) bytes_free

from dba_free_space f

group by tablespace_name) b,

(select round(max(ff.length)*16/1024,2) Largest,

https://www.wendangku.net/doc/9812787290.html, tablespace_name

from sys.fet$ ff, sys.file$ tf,sys.ts$ ts

where ts.ts#=ff.ts# and ff.file#=tf.relfile# and ts.ts#=tf.ts#

group by https://www.wendangku.net/doc/9812787290.html,, tf.blocks) c

where a.tablespace_name = b.tablespace_name and a.tablespace_name = c.tablespace_name

25. 查询表空间的碎片程度

select tablespace_name,count(tablespace_name) from dba_free_space group by tablespace_name having count(tablespace_name)>10;

alter tablespace name coalesce;

alter table name deallocate unused;

create or replace view ts_blocks_v as

select tablespace_name,block_id,bytes,blocks,'free space' segment_name from dba_free_space union all

select tablespace_name,block_id,bytes,blocks,segment_name from dba_extents;

select * from ts_blocks_v;

select tablespace_name,sum(bytes),max(bytes),count(block_id) from dba_free_space

group by tablespace_name;

26。查询有哪些数据库实例在运行

select inst_name from v$active_instances;

===========================================================

######### 创建数据库----look $ORACLE_HOME/rdbms/admin/buildall.sql #############

create database db01

maxlogfiles 10

maxdatafiles 1024

maxinstances 2

logfile

GROUP 1 ('/u01/oradata/db01/log_01_db01.rdo') SIZE 15M, GROUP 2 ('/u01/oradata/db01/log_02_db01.rdo') SIZE 15M, GROUP 3 ('/u01/oradata/db01/log_03_db01.rdo') SIZE 15M, datafile 'u01/oradata/db01/system_01_db01.dbf') SIZE 100M, undo tablespace UNDO

datafile '/u01/oradata/db01/undo_01_db01.dbf' SIZE 40M default temporary tablespace TEMP

tempfile '/u01/oradata/db01/temp_01_db01.dbf' SIZE 20M extent management local uniform size 128k

character set AL32UTE8

national character set AL16UTF16

set time_zone='America/New_York';

############### 数据字典##########

set wrap off

select * from v$dba_users;

grant select on table_name to user/rule;

select * from user_tables;

select * from all_tables;

select * from dba_tables;

revoke dba from user_name;

shutdown immediate

startup nomount

select * from v$instance;

select * from v$sga;

select * from v$tablespace;

alter session set nls_language=american;

alter database mount;

select * from v$database;

alter database open;

desc dictionary

select * from dict;

desc v$fixed_table;

select * from v$fixed_table;

set oracle_sid=foxconn

select * from dba_objects;

set serveroutput on

execute dbms_output.put_line('sfasd');

############# 控制文件###########

select * from v$database;

select * from v$tablespace;

select * from v$logfile;

select * from v$log;

select * from v$backup;

/*备份用户表空间*/

alter tablespace users begin backup;

select * from v$archived_log;

select * from v$controlfile;

alter system set control_files='$ORACLE_HOME/oradata/u01/ctrl01.ctl', '$ORACLE_HOME/oradata/u01/ctrl02.ctl' scope=spfile;

cp $ORACLE_HOME/oradata/u01/ctrl01.ctl $ORACLE_HOME/oradata/u01/ctrl02.ctl

startup pfile='../initSID.ora'

select * from v$parameter where name like 'control%' ;

show parameter control;

select * from v$controlfile_record_section;

select * from v$tempfile;

/*备份控制文件*/

alter database backup controlfile to '../filepath/control.bak';

/*备份控制文件,并将二进制控制文件变为了asc 的文本文件*/

alter database backup controlfile to trace;

############### redo log ##############

archive log list;

alter system archive log start;--启动自动存档

alter system switch logfile;--强行进行一次日志switch

alter system checkpoint;--强制进行一次checkpoint

alter tablspace users begin backup;

alter tablespace offline;

/*checkpoint 同步频率参数FAST_START_MTTR_TARGET,同步频率越高,系统恢复所需时间越短*/

show parameter fast;

show parameter log_checkpoint;

/*加入一个日志组*/

alter database add logfile group 3 ('/$ORACLE_HOME/oracle/ora_log_file6.rdo' size 10M);

/*加入日志组的一个成员*/

alter database add logfile member '/$ORACLE_HOME/oracle/ora_log_file6.rdo' to group 3;

/*删除日志组:当前日志组不能删;活动的日志组不能删;非归档的日志组不能删*/

alter database drop logfile group 3;

/*删除日志组中的某个成员,但每个组的最后一个成员不能被删除*/

alter databse drop logfile member '$ORACLE_HOME/oracle/ora_log_file6.rdo';

/*清除在线日志*/

alter database clear logfile '$ORACLE_HOME/oracle/ora_log_file6.rdo';

alter database clear logfile group 3;

/*清除非归档日志*/

alter database clear unarchived logfile group 3;

/*重命名日志文件*/

alter database rename file '$ORACLE_HOME/oracle/ora_log_file6.rdo' to '$ORACLE_HOME/oracle/ora_log_file6a.rdo';

show parameter db_create;

alter system set db_create_online_log_dest_1='path_name';

select * from v$log;

select * from v$logfile;

/*数据库归档模式到非归档模式的互换,要启动到mount状态下才能改变;startup mount;然后再打开数据库.*/

alter database noarchivelog/archivelog;

achive log start;---启动自动归档

alter system archive all;--手工归档所有日志文件

select * from v$archived_log;

show parameter log_archive;

###### 分析日志文件logmnr ##############

1) 在init.ora中set utl_file_dir 参数

2) 重新启动oracle

3) create 目录文件

desc dbms_logmnr_d;

dbms_logmnr_d.build;

4) 加入日志文件add/remove log file

dhms_logmnr.add_logfile

dbms_logmnr.removefile

5) start logmnr

dbms_logmnr.start_logmnr

6) 分析出来的内容查询v$logmnr_content --sqlredo/sqlundo

实践:

desc dbms_logmnr_d;

/*对数据表做一些操作,为恢复操作做准备*/

update 表set qty=10 where stor_id=6380;

delete 表where stor_id=7066;

/***********************************/

utl_file_dir的路径

execute dbms_logmnr_d.build('foxdict.ora','$ORACLE_HOME/oracle/admin/fox/cdump');

execute

dbms_logmnr.add_logfile('$ORACLE_HOME/oracle/ora_log_file6.log',dbms_logmnr.newfile);

execute

dbms_logmnr.start_logmnr(dictfilename=>'$ORACLE_HOME/oracle/admin/fox/cdump/foxdict.o ra');

######### tablespace ##############

select * form v$tablespace;

select * from v$datafile;

/*表空间和数据文件的对应关系*/

select https://www.wendangku.net/doc/9812787290.html,,https://www.wendangku.net/doc/9812787290.html, from v$tablespace t1,v$datafile t2 where t1.ts#=t2.ts#;

alter tablespace users add datafile 'path' size 10M;

select * from dba_rollback_segs;

/*限制用户在某表空间的使用限额*/

alter user user_name quota 10m on tablespace_name;

create tablespace xxx [datafile 'path_name/datafile_name'] [size xxx] [extent management local/dictionary] [default storage(xxx)];

exmple: create tablespace userdata datafile '$ORACLE_HOME/oradata/userdata01.dbf' size 100M AUTOEXTEND ON NEXT 5M MAXSIZE 200M;

create tablespace userdata datafile '$ORACLE_HOME/oradata/userdata01.dbf' size 100M extent management dictionary default storage(initial 100k next 100k pctincrease 10) offline;

/*9i以后,oracle建议使用local管理,而不使用dictionary管理,因为local采用bitmap管理表空间,不会产生系统表空间的自愿争用;*/

create tablespace userdata datafile '$ORACLE_HOME/oradata/userdata01.dbf' size 100M extent management local uniform size 1m;

create tablespace userdata datafile '$ORACLE_HOME/oradata/userdata01.dbf' size 100M extent management local autoallocate;

/*在创建表空间时,设置表空间内的段空间管理模式,这里用的是自动管理*/

create tablespace userdata datafile '$ORACLE_HOME/oradata/userdata01.dbf' size 100M extent management local uniform size 1m segment space management auto;

alter tablespace userdata mininum extent 10;

alter tablespace userdata default storage(initial 1m next 1m pctincrease 20);

/*undo tablespace(不能被用在字典管理模下) */

create undo tablespace undo1 datafile '$ORACLE_HOME/oradata/undo101.dbf' size 40M extent management local;

show parameter undo;

/*temporary tablespace*/

create temporary tablespace userdata tempfile '$ORACLE_HOME/oradata/undo101.dbf' size 10m extent management local;

/*设置数据库缺省的临时表空间*/

alter database default temporary tablespace tablespace_name;

/*系统/临时/在线的undo表空间不能被offline*/

alter tablespace tablespace_name offline/online;

alter tablespace tablespace_name read only;

/*重命名用户表空间*/

alter tablespace tablespace_name rename datafile '$ORACLE_HOME/oradata/undo101.dbf' to '$ORACLE_HOME/oradata/undo102.dbf';

/*重命名系统表空间,但在重命名前必须将数据库shutdown,并重启到mount状态*/

alter database rename file '$ORACLE_HOME/oradata/system01.dbf' to '$ORACLE_HOME/oradata/system02.dbf';

drop tablespace userdata including contents and datafiles;---drop tablespce

/*resize tablespace,autoextend datafile space*/

alter database datafile '$ORACLE_HOME/oradata/undo102.dbf' autoextend on next 10m maxsize 500M;

/*resize datafile*/

alter database datafile '$ORACLE_HOME/oradata/undo102.dbf' resize 50m;

/*给表空间扩展空间*/

alter tablespace userdata add datafile '$ORACLE_HOME/oradata/undo102.dbf' size 10m;

/*将表空间设置成OMF状态*/

alter system set db_create_file_dest='$ORACLE_HOME/oradata';

create tablespace userdata;---use OMF status to create tablespace;

drop tablespace userdata;---user OMF status to drop tablespace;

select * from dba_tablespace/v$tablespace/dba_data_files;

/*将表的某分区移动到另一个表空间*/

alter table table_name move partition partition_name tablespace tablespace_name;

###### ORACLE storage structure and relationships #########

/*手工分配表空间段的分区(extend)大小*/

alter table kong.test12 allocate extent(size 1m datafile '$ORACLE_HOME/oradata/undo102.dbf');

alter table kong.test12 deallocate unused; ---释放表中没有用到的分区

show parameter db;

alter system set db_8k_cache_size=10m; ---配置8k块的内存空间块参数

select * from dba_extents/dba_segments/data_tablespace;

select * from dba_free_space/dba_data_file/data_tablespace;

/*数据对象所占用的字节数*/

select sum(bytes) from dba_extents where onwer='kong' and segment_name ='table_name';

############ UNDO Data ################

show parameter undo;

alter tablespace users offline normal;

alter tablespace users offline immediate;

recover datafile '$ORACLE_HOME/oradata/undo102.dbf';

alter tablespace users online ;

select * from dba_rollback_segs;

alter system set undo_tablespace=undotbs1;

/*忽略回滚段的错误提示*/

alter system set undo_suppress_errors=true;

/*在自动管理模式下,不会真正建立rbs1;在手工管理模式则可以建立,且是私有回滚段*/ create rollback segment rbs1 tablespace undotbs;

desc dbms_flashback;

/*在提交了修改的数据后,9i提供了旧数据的回闪操作,将修改前的数据只读给用户看,但这部分数据不会又恢复在表中,而是旧数据的一个映射*/

execute dbms_flashback.enable_at_time('26-JAN-04:12:17:00 pm');

execute dbms_flashback.disable;

/*回滚段的统计信息*/

select end_time,begin_time,undoblks from v$undostat;

/*undo表空间的大小计算公式: UndoSpace=[UR * (UPS * DBS)] + (DBS * 24)

UR :UNDO_RETENTION 保留的时间(秒)

UPS :每秒的回滚数据块

DBS:系统EXTENT和FILE SIZE(也就是db_block_size)*/

select * from dba_rollback_segs/v$rollname/v$rollstat/v$undostat/v$session/v$transaction;

show parameter transactions;

show parameter rollback;

/*在手工管理模式下,建立公共的回滚段*/

create public rollback segment prbs1 tablespace undotbs;

alter rollback segment rbs1 online;----在手工管理模式

/*在手工管理模式中,initSID.ora中指定undo_management=manual 、rollback_segment=('rbs1','rbs2',...)、

transactions=100 、transactions_per_rollback_segment=10

然后shutdown immediate ,startup pfile=....\???.ora */

########## Managing Tables ###########

/*char type maxlen=2000;varchar2 type maxlen=4000 bytes

rowid 是18位的64进制字符串(10个bytes 80 bits)

rowid组成: object#(对象号)--32bits,6位

rfile#(相对文件号)--10bits,3位

block#(块号)--22bits,6位

row#(行号)--16bits,3位

64进制: A-Z,a-z,0-9,/,+ 共64个符号

dbms_rowid 包中的函数可以提供对rowid的解释*/

select rowid,dbms_rowid.rowid_block_number(rowid),dbms_rowid.rowid_row_number(rowid) from table_name;

create table test2

(

id int,

lname varchar2(20) not null,

fname varchar2(20) constraint ck_1 check(fname like 'k%'),

empdate date default sysdate)

) tablespace tablespace_name;

create global temporary table test2 on commit delete/preserve rows as select * from kong.authors;

create table user.table(...) tablespace tablespace_name storage(...) pctfree10 pctused 40;

alter table user.tablename pctfree 20 pctused 50 storage(...);---changing table storage

/*手工分配分区,分配的数据文件必须是表所在表空间内的数据文件*/

alter table user.table_name allocate extent(size 500k datafile '...');

/*释放表中没有用到的空间*/

alter table table_name deallocate unused;

alter table table_name deallocate unused keep 8k;

/*将非分区表的表空间搬到新的表空间,在移动表空间后,原表中的索引对象将会不可用,必须重建*/

alter table user.table_name move tablespace new_tablespace_name;

create index index_name on user.table_name(column_name) tablespace users;

alter index index_name rebuild;

drop table table_name [CASCADE CONSTRAINTS];

alter table user.table_name drop column col_name [CASCADE CONSTRAINTS CHECKPOINT 1000];---drop column

/*给表中不用的列做标记*/

alter table user.table_name set unused column comments CASCADE CONSTRAINTS;

/*drop表中不用的做了标记列*/

alter table user.table_name drop unused columns checkpoint 1000;

/*当在drop col是出现异常,使用CONTINUE,防止重删前面的column*/

ALTER TABLE USER.TABLE_NAME DROP COLUMNS CONTINUE CHECKPOINT 1000;

select * from dba_tables/dba_objects;

######## managing indexes ##########

/*create index*/

example:

/*创建一般索引*/

create index index_name on table_name(column_name) tablespace tablespace_name;

/*创建位图索引*/

create bitmap index index_name on table_name(column_name1,column_name2) tablespace tablespace_name;

/*索引中不能用pctused*/

SQL学习总结

SQL学习 2.1 SQL 简介 当面对一个陌生的数据库是,通常需要一种方式与它进行交换,以完成用户所需要的各种工作,这个时候,就要用到SQL语言了,由于SQL 语言的标准化,所以大多数关系型数据库系统都支持SQL语言,它已经发展成多种平台进行交互操作的底层会话语言。 2.2 SQL 使用入门 2.2.1 SQL分类 SQL 语句主要可以划分为以下3个类别 1)、DDL (Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括create、drop、alter等。 2)、DML(Data Manipulation Languagr)语句:数据操作语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括insert、delete、update和select等。 3)、DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别、主要的语句关键字包括grant、revoke等。 2.2.2 DDL 语句 DDL是数据定义语言的缩写,是对数据库内部的对象进行创建(create)、删除(drop)、修改(alter)的操作语言,它和DML语句的最大区别是DML只是对表内部数据的操作,而不涉及表定义,结构的修改,更不会涉及其它的对象,DDL语句更多地被数据库管理员(DBA)所使用,一般开发人员很少使用。 下面通过一些例子来介绍MySQL中常用的DDL语句的使用方法。 1、创建数据库 因为所有的数据都存储在数据库中,因此需要学习的第一个命令是创建数据库,语法如下:

(Oracle数据库管理)玩转实战教程学习笔记最全版

(O管理)玩转实战教程(韩顺平)学习笔记

韩顺平—玩转oracle视频教程笔记 一:Oracle认证,与其它数据库比较,安装 oracle的卸载 1.停止所有与ORACLE相关的服务。 2. 使用OUI(Oracle Universal Installer)卸载Oracle软件。 “开始”->“程序”->“Oracle-OraDb110g_home1|Oracle installation product|Universal installer. 3.删除注册表内容。运行regedit命令,删除下面内容:HKEY_LOCAL_MACHINE|SOFTWARE|ORACLE注册表键,删除此键。 HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services,删除Services键下所有以oracle为首的键。 HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services|Eventlog|Application,删除此键下所有以oracle为首的键。 HKEY_CLASSES_ROOT,删除此键下所有以Ora,Oracle,Orcl,EnumOra 为前缀的键。 HKEY_CURRENT_USER|Software| Microsoft|Windows|CurrentVersion|Explorer|MenuOrder|Start Menu|Programs,删除此键下所有以oracle为首的键。 HKEY_LOCAL_MACHINE|SOFTWARE|ODBC|ODBCINST.INI注册表键,删除了

SQL常用命令汇总

SQL常用命令汇总 SQL是结果化查询语言(Structured Query Language)的缩写,其功能包括数据查询、数据定义、数据操纵和数据控制四个部分。SQL简洁、功能齐全,已成为目前应用最广的关系数据库语言。 一、SQL的发展及标准化 1.SQL的发展 SQL是当前最为成功、应用最为广泛的关系数据库语言,其发展主要经历了以下几个阶段; (1)1974年,由Chamberlin和Boyce提出,当时称为SEQUEL(Structured English Query Language); (2)1976年,IBM公司对SEQUEL进行了修改,并将其用于本公司的SYSTEM R关系数据库系统中; (3)1981年,推出了商用关系数据库SQL/DS,并将其名字改为SQL,由于SQL功能强大,简洁易用,因此得到了广泛的应用; (4)今天,SQL广泛应用于各种大型数据库,如Sybase,INFORMIX,SQL Server,Oracle,DB2,INGRES等,也用于各种小型数据库,如FoxPro,Access等。 2.SQL标准化 随着关系数据库系统和日益广泛,SQL的标准化工作也在紧张地进行着,二十多年来已制订了多个SQL标准:SQL-86,SQL-89,SQLL2和SQL-99。 二、SQL的基本概念 1.基本表——一个关系对应一个表。基本表是独立存在的表,不是由其他的表导出的 表。 2.视图——是一个或几个基本表导出的表,是一个虚拟的表。它本身不独立存在于数 据中,数据库中只存放视图对应的数据,这些数据仍存放在导出视图的基本表中。 当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变。 三、SQL的主要特点 SQL有如下几个特点。 (1)SQL是类似于英语的自然语言,简洁易用。 (2)SQL是一种非过程语言。 (3)SQL是一种面向集合的语言。 (4)SQL既是自含式语言,又是嵌入式语言;可独立使用,也可以嵌入到宿主语言中。 (5)SQL是数据库查询(Query)、数据定义(Definition)、数据操纵(Manipulation)和数据控制(Control)四种功能。 创建数据表 语法格式:CREA TE TABLE<表名>(<列定义>[{,<列定义>|<表约束>}]) 例:create table s(xingm c(8),xueh c(8),chengj c(3)) 结果:

oracle笔记(3)

1.用insert语句进行行数据的迁移 Insert into 表名(列,列) select 列,列from emp where 条件 2.用update更新数据(使用子查询):希望员工scott的岗位,工资,补助与smith员工一样? update emp set (job,sal,comm)=(select job,sal,comm. From emp where ename=?SMITH?) where ename=?SCOTT?; 3.事务 (1)锁 (2)提交事务 (3)回退事务(一开始就做保存点(savepoint)) (4)事务的几个重要操作 1)设置保存点:savepoint a 2)取消部分事务:rollback to a 3)取消全部事务:rollback (5)只读事务:set transaction read only(当前用户能看到之前的操作,若其他用户进行更 新,该用户之后的操作都不能看到更新) (6)字符函数 (1)lower(char):将字符串转化为小写的格式 (2)upper(char): 将字符串转化为大写的格式 (3)length(char):返回字符串的长度 (4)substr(char,m,n):取字符串的子串,从m开始取,取n个 (5)例:以首字符大写的方式显示所有的员工的姓名: (1)完成首字母大写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母小写:select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并:select upper(substr(ename,1,1)) || lower(substr(ename,2,length(ename)-1)) from emp; (6)replace(char1,search_string,replace_string) (7)instr(char1,char2,[,n[,m]])—取子串在字符串的位置 (8)例:显示所有员工的姓名,用”我是A”替换所有”A”:select replace(ename,?A?,? 我是A?) from emp; (7)数学函数 (1)round(n,[m]):用于四舍五入 (2)trunc(n,[m]):用于截取数字 (3)mod(m,n):取模 (4)floor(n):返回<=n的最大整数 (5)ceil(n):返回>=n的最小整数 (6)例:显示在一个月为30天的情况所有员工的日薪金,忽略余数:select floor(sal/30),ename from emp; (8)日期函数 (1)sysdate (2)add_months(d,n) (3)last_day(d):返回指定日期所在月份的最后一天 例:返回在八个月前雇佣的员工(已经入职8个月多的员工):select * from emp where sysdate>add_months(hiredate,300); 例:对于每个员工,显示其加入公司的天数:select trunk(sysdate-hiredate) “入职天

ORACLE笔记

1.Oracle 工具:sqlplus Sqlplus / as sysdba Shutdown immediate(关闭数据库) Startup(启动数据库) 注意:数据库开启才可以进行操作 Select username,account_status from dba_users;(查询数据库中所有的用户名称与用户状态) Alter user scott identified by tiger account unlock;(scott用户解锁) Sqlplus scott/tiger(使用SCOTT 密码为tiger登陆ORACLE数据库) Connect scott/tiger (在SQL>中直接使用SCOTT用户连接数据库) Show all;(看所有变量) Set sqlprompt “_user>”(设置sqlplus环境下面的提示符用自身用户显示) 注意:如要变量下次重启生效必须把变量写入 /u01/app/oracle/product/10.2.0/db_1/sqlplus/admin/glogin.sql中 Host(回到系统) Help index(查看所有命令) Help+命令(类似于LINUX中的MAN,查看命令的格式与用法) Disconnect(关闭SQLPLUS工具但是不离开数据库) Describe emp(查看EMP表) Define(定义变量,常用与写脚本用) 如:DEFINE _EDITOR =”vi” (CHAR) (定义VI编辑器用于保存最后一条执行的SQL语句) Save /u01/app/oracle/aa.sql (保存SQL语句) Get /u01/app/oracle/aa.sql (调用保存的SQL语句) 2.select(select 查询语句是ORACLE中最常用的语句) DML语句包括(insert 写入,update改变,delect删除,merge两张表同步) 注意:merge常用在ETL(数据仓库)底下 DDL数据定义语句包括(create创建对象,alter修改,drop删除对象,rename改名,truncate 删除整个表) TCL事务处理语句(commit提交立刻生效,rollback回滚,savepoint保存点,savepoint(保存点) DCL权限语句(grant赋予权限,revoke(收回权限) ORACLE的表称之为堆表(keep table) SELECT (1) writing basic SQL select statemanes 1. selecting all columns SCOTT>select * from dept; SCOTT>select dname,deptno,loc from dept; Basic SELECT Statement SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;

sql,心得体会

sql,心得体会 篇一:数据库SQL2000实验总结与心得体会 《数据库系统概论(第四版)》 体 会 学号:姓名:班级:教师: 学 期实验总结与心得 【实验名称】数据库的创建【实验内容】1、新建SQL注册表。2、新建数据库。主数据文件:逻辑文件名为Student_data,物理文件名为Student.mdf, 初始大小为10mB,最大尺寸为无限大,增长速度为10%; 数据库的日志文件:逻辑名称为Student_log,物理文件名为Student.ldf,初始大小为1mB,最大尺寸为5mB,增长速度为 1mB 3、修改已注册的SQLServer属性为使用SQLserver身份验证。 【实验名称】数据库的附加、分离、导入导出及分离【实验内容】 1.数据库文件的附加与分离 2.数据库文件的导入和导出 3..数据库的删除

4.修改数据库 【实验名称】数据库的创建(书中作业)【实验内容】 1.在数据库STUdEnT中创建一个学生基本信息表 1.用企业管理其创建表 2.用查询分析器创建表 2.SQLServer20XX的系统数据类型分为哪几类?常用的数据类型有哪些? 答:字符串类型、整型、长整型、短整型、浮点数类型、定点数类型、日期、时间。常用的数据类型有:字符串类型、整型、长整型、短整型、浮点数类型、定点数类型、日期、时间 3.在数据库STUdEnT中创建一个名为t_couse(课程信息表) 1.用企业管理其创建t_course表 2.用查询分析器创建t_course 4.在数据库STUdEnT中创建一个名为t_score(学生成绩)的表 5.SQLServer20XX中有多少种约束?其作用分别是什么 答:非空约束,作用指定某一列不允许空值有助于维护数据的完整性,因为这样可以确保行中的列永远保护数据。 主键约束,作用可以保证实体的完整性,是最重要的一种约束。 唯一约束,作用指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值。 检查约束,作用对输入列或者整个表中的值设置检查条件,以限制输入值,保证数据库数据的完整性。

学习oracle数据库的总结(图文整理)

1、在开发环境中连接到数据库,进行基本的select查询操作; 2、熟悉plsql的使用; 3、熟悉sqlplus相关命令(登录、查询、导入导出等) 登录sqlplus: 第一:使用dos窗口登录sqlplus Sqlplus 用户名/密码@数据库实例名 Sqlplus system/密码@数据库实例名as sysdba 第二:使用oracle自带的一个sqlplus登录,提供界面,显得更简单一些。 显示当前用户名:show user; 创建一个用户:create user 用户名identified by 密码; 给用户赋予登录的权限:grant connect to 用户名;(此时才可以使用这个用户来登录这个数据库。)给其赋予dba的权限。 修改用户的密码:alter user 用户名identified by 新密码; 查询: Select * from t_user; Select id from t_user; Select name from t_user; Select birthday from t_user; Select id,name from t_user; 导入导出: 导出表: (注意,导出表的exp命令不是在sqlplus下使用的,是在dos窗口下使用的命令。) exp userid=test/sa@test tables=(qx) file=d:\e1223.dmp exp userid=test/sa@test tables=(t_user,qx) file=f:\test.dmp 导出方案: Exp userid=test/sa@test owner=test file=f:\test2.dmp 导出数据库: Exp userid=test/sa@test full=y inctype=complete file=f:\all.dmp 导入表: 下面以一个例子来说明: 看下面的图,我的用户名test,密码sa,数据库实例名test,所有的表都在这里 现在我执行导出表JD的操作:exp userid=test/sa@test tables=(jd) file=f:\jd.dmp 在我的f盘下就出现了这么一个.dmp文件

ACCESS数据库中常见的SQL语句汇总教程

ACCESS数据库的SQL语句教学 1、查询所有记录:Select *通常用于快速查看表中的记录。当对表的结构无法确切记忆时,或要快速查看表中的记录时,使用Select *是很方便的。 use 企业销售管理系统 Select * from 职工 2、投影查询:很多时候并不需要将所有列的数据都显示出来。投影查询就是允许用户显示所需要的列。假设显示职工表中职工号、姓名、工资信息,具体操作方法如下。 Select 职工号,姓名,工资 from 职工 在Select查询中,还可以按照实际的需要或自己的喜好安排显示列的顺序,如果要把姓名放到第一列,则代码如下: Select 姓名, 职工号,工资 from 职工 3、条件查询:显示wh1或wh2仓库、性别不为女、工资在1300~2100之间的职工信息。具体操作如下: Select * from 职工号 where(仓库号='wh1' or 仓库号='wh2') And not 性别='女' and 工资>=1300 and 工资<=2100 在这里一定要注意,(仓库号='wh1' or仓库号='wh2')一定要加括号,否则就不是原题的意思。 4、谓词In查询:在查找特定条件的数据时,如果条件较多,就需要用到多个Or运算符,以查找满足其中任一条的记录。但使用多个Or运算符,将使Where子句变得过于冗长,这时使用In就非常清楚。另外,在后面讲解的嵌套查询中,也必须使用In查询。下面以显示zg1、zg2、zg11、zg15的订购单信息为例具体讲解一下。

使用Or运算符 Select * from 订购单 where 职工号='zg1' or 职工号='zg2' Or 职工号='zg11' or 职工号='zg15' 使用谓词In Use 企业销售管理系统 Select * from 订购单 where 职工号 in('zg1', 'zg2', 'zg11', 'zg15') 在Select语句中,还支持In与Not结合使用。假设显示职工号不为zg1, zg2, zg11, zg15的订购单信息,具体代码如下: 使用Or运算符 Select * from 订购单 where 职工号!='zg1' or 职工号!='zg2' Or 职工号!='zg11' or 职工号!='zg15' 使用谓词In Use 企业销售管理系统 Select * from 订购单 where 职工号 not in('zg1', 'zg2', 'zg11', 'zg15') 5、模糊Like查询:有的时候,我们不清楚所要查询的信息,如显示职工信息,但不能确定该职工的姓名,只知道他姓名中含有“王”字,那该如何查找呢?SQL中提供了Like关键字,使用Like进行了查询时,还要指定通配符。 通配符及其含义

oracle学习笔记

●PLSQL控制台输出语句 SET serveroutput ON; --打开控制台输出服务 dbms_output.put_line('values2='||var_val); --输出语句 ●PLSQL动态变量 var_str := '&input'; ●创建表空间和用户 --创建表空间 CREATE TABLESPACE "BCPBS" LOGGING DATAFILE 'D:\app\E430\oradata\orcl\BCPBS_01.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED, 'D:\app\E430\oradata\orcl\BCPBS_02.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ; --建立用户 CREATE USER "BCPBS" PROFILE "DEFAULT" IDENTIFIED BY "bcpbs123" DEFAULT TABLESPACE "BCPBS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; GRANT "CONNECT" TO "BCPBS"; GRANT "DBA" TO "BCPBS"; GRANT "RESOURCE" TO "BCPBS"; ●删除表空间和用户 drop user bcpbs cascade ; drop tablespace BCPBS including contents and datafiles cascade constraints ; ●自定义函数 CREATE OR REPLACE FUNCTION fun_level_value(level_value number) RETURN number IS return_value number:=null; BEGIN CASE level_value WHEN 0 THEN return_value:='0'; WHEN 1 THEN return_value:='1'; WHEN 2 THEN return_value:='2'; WHEN 3 THEN return_value:='3'; WHEN 6 THEN return_value:='8'; ELSE

oracle学习心得体会

oracle学习心得 一、sqlserver的理解 sqlserver服务器就像一栋大楼,大楼里的机房就像服务器的数据库,机房里的电脑如同数据库里的表 1、登录用户可以登录服务器——可以进大楼 2、登录用户成为数据库用户才能进指定的数据库——进入大楼的人给了某个机房的钥匙 才能进入机房 3、登录用户有权限使用表——进入机房的人有电脑的密码才能使用电脑 二、oracle的理解 oracle服务器(全局数据库)就像一个商场,商场的每一家公司是表空间,公司的业务是表 1、数据库由多个表空间组成——商场里有多家公司组成 2、表空间由段组成——公司要有自己的经营业务,可以只有一个业务,就是一个表空 间中只有一个段,可以有多个业务,就是一个表空间有多个段 3、段由区组成——单个业务的细分类别。例如有家公司经营三个业务,卖书,卖家电,

卖衣服,则每个业务就是一个段。而每个业务又有细分,比如卖书的话要进行分类了。计算机区,人文区,小说区等,每一区都要放上书架存放书籍,则书架就是oracle块,存放数据的 三、数据库,表空间,用户(指定默认表空间),表统统由管理员管理 四、在oem中管理数据库的步骤 1、创建 1)存储——表空间——创建表空间(tomspace)(类似于在sql中创建数据库, 通常可以省略,使用默认表空间为users,,临时表空间为temp) 2)首先展开安全性——创建新用户(tom,指定表空间)(类似于在sql中指定 数据库用户) 3)创建表——指定方案(用户)和表空间(列名不要带<>) 4)设置约束 5)输入信息:方案——用户名——表——右击——查看/编辑目录… 2、修改 1)方案——用户名——表 2)修改表结构,添加约束

Oracle学习笔记

Oracle的四个主要用户 1.超级管理员sys/change_on_install 2.普通管理员system/manager 3.普通用户scott/tiger 4.大数据用户sh/sh 简单查询 1.查询表结构 DESC 表名 2.简单查询SELECT [DISTINCT] *|[字段 [别名]] [,字段 [别名]] … FROM 表名 [别名] (1)查询时也可以使用四则运算,如:SELECT (字段*x)+y FROM 表名 (2)可以使用“||”连接字段与字符串,如: select '工作与工资:' || job || sal 工作工资 from emp 执行结果: 3.限定查询SELECT [DISTINCT] *|[字段 [别名]] [,字段 [别名]] … FROM 表名 [别名] [WHERE 条件(s)] (1)Where字句后可以增加多个条件,最常见的条件就是最基本关系运算:>、<、>=、<=、!=(<>)、BE TWEEN…AND、LIKE、IN(指定范围)、IS NULL(为空)、AND(且)、OR(或)、NOT(非)。 (2)多个条件可以使用AND与OR连接。 例如:select * from emp where sal>1300 and sal<4000 (3)范围判断BE TWEEN…AND:BETWEEN 最小值 AND 最大值(大于等于最小值,小于等于最大值),BE TWEEN…AND 对数字、日期都可以使用!!! 例如:select * from emp where sal between 1300 and 4000 例如:select * from emp where hiredate between '01-1月-1981' and '31-12月-1981' (4)判断为空IS (NOT) NULL 例如:select * from emp where comm is null 例如:select * from emp where comm is not null 例如:select * from emp where not comm is null (5)指定范围的判断(NOT) IN 例如:select * from emp where empno in(7369,7566,7799)

SQL学习总结

1、With ties :查出与返回数据的最后一行的相同的数据 2、用法:select top(5) with ties 字段名FROM 表名 3、Over的使用 Over称为窗口函数 用法:sum(valus) over() 其是指对搜索出来的数据进行求和,不需要在进行分组,如果需要有限定条件则sum(valus) over(partition by字段名) 4、数据的计算 在进行数据与字段的乘除的时候,数字后面加一个点,(110.),这样就可以把整数字段隐式的装换为十进制数据进行乘除,否则则会使正式除法,回省略小数5、In 、like 、between的用法 In主要是指在多个数据中选择一个,进字段名的值在in之内 Like主要进行迷糊查询,例:like ‘ %as’ Between 主要是指字段值在两个值之间 6、N 的用法 N 表示国际化(national)用于表示字符串Unicode(nchar、nvarchar) 数据类型numeric是指实数例:numeric(12,2)(12指数据长度,2指小数位数)7、数据的优先级 1、() 2、x 、/、% 3、+ 、-、 4、 5、NOT 6、and 7、between 、in、like、or 8、= 8、case表达式的使用 Select 字段一,case 字段二 When‘条件’then 结果 When ‘条件’then 结果

End as 字段名from 表名 Case 与end是成对出现的 Case与case表达式的区别是,case表达式可以添加条件,但是case不可以While 语句的使用:进行1+2+3+…….+100 declare@sum int set@sum=0 declare@I int SET@I=0 WHILE@I<100 BEGIN SELECT@SUM=@SUM+@I SELECT@I=@I+1 END SELECT (@sum) 求得日期的月份 select MESBUSINESS20.dbo.fun_GetRealYYYYMMByDate(SubmitDat e) 其中fun是函数 9、数据类型 Varchar 和char nvarchar 和nchar 前者是一个字节来保存一个字符,语言只能限定于英语,后者是用两个字节来保存一个字符,不进行语言限制 在进行查询时如果把null值当做空字符串进行连接时,则可以通过一个CONCAT_NULL_YIELDS_NULL 保持OFF状态 语法:SET CONCAT_NULL_YIELDS_NULL OFF 同时也可以使用COALESEC 函数进行转变COALESEC(字段) Nvarchar 和varvhar的区别: Nvarchar在分配内存是可以根结自身的大小进行调整,nvarchar(100),其中一百是自己的最大地址,varchar(100)不会根据自身大小进行调整,100就是其占用的内存,不会改变

Oracle数据库期末复习知识点整理

基础知识 表3.2 Oracle数据类型

表3.3 XSB的表结构

操作表 创建表 CREATE TABLE [schema.] table_name ( column_namedatatype [DEFAULT expression] [column_constraint][,…n] [,…n] ) [PCTFREE integer] [PCTUSED integer] [INITRANS integer] [MAXTRANS integer] [TABLESPACE tablespace_name] [STORGE storage_clause] [CLUSTER cluster_name(cluster_column,…n)] [ENABLE | DISABLE ] [AS subquery] 【例】使用CRETE TABLE命令为XSCJ数据库建立表XSB,表结构参照表3.3。 打开SQL*Plus工具,以system方案连接数据库,输入以下语句: CREATE TABLE XSB ( XH char(6) NOT NULL PRIMARY KEY, XM char(8) NOT NULL, XB char(2) DEFAULT '1' NOT NULL, CSSJ date NOT NULL, ZY char(12) NULL, ZXF number(2) NULL, BZ varchar2(200) NULL ); 修改表 ALTER TABLE [schema.] table_name [ ADD(column_namedatatype [DEFAULT expression][column_constraint],…n) ] /*增加新列*/ [ MODIFY([ datatype ] [ DEFAULT expression ] [column_constraint],…n) ] /*修改已有列的属性*/ [ STORAGE storage_clause ] *修改存储特征*/ [ DROP drop_clause ] /*删除列或约束条件*/ 【例】使用ALTER TABLE语句修改XSCJ数据库中的表。

SQLServer数据库入门学习总结

SQL Server数据库入门学习总结 经过一段时间的学习,也对数据库有了一些认识。 数据库基本是由表,关系,操作组成;对于初学者首先要学的: 1.数据库是如何存储数据的 表,约束,触发器 2.数据库是如何操作数据的 insert,update,delete T-sql 函数存储过程触发器 3.数据库是如何显示数据的 select SQLServer数据库学习总结 1.SQL基础 SQL Server2000安装、配置,服务器启动、停止,企业管理器、查询分析器 第一代数据库--网状数据库和层次数据库;第二代数据库--关系数据库 数据库(DB);数据库管理系统(DBMS);数据库系统(DBS) SQL Server 2000 提供了不同版本:企业版、标准版、个人版、开发版 SQL Server中的数据类型:整数:int,smallint,tinyint,bigint;浮点数:real,float,decimal;二进制:binary,varbinary;逻辑:bit;字符:char,nchar,varchar,nvarchar;文本和图形:text,ntext,image;日期和时间:datetime,smalldatetime;货币:money,smallmoney 数据库的创建和删除;数据库表的创建、修改和删除 数据完整性:实体完整性:Primary Key,Unique Key,Unique Index,Identity Column;域完整性:Default,Check,Foreign Key,Data type,Rule;参照完整性:Foreign Key,Check,Triggers,Procedure;用户定义完整性:Rule,Triggers,Procedure;Create Table中得全部列级和表级约束 SQL Server中有5种约束:主键约束(Primary Key Constraint)、默认约束(Default Constraint)、检查约束(Check Constraint)、唯一性约束(Unique Constraint)、外键约束(Foreign Key Constraint). 关系图 数据库设计的步骤:需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库实施、数据库运行和维护 两个实体之间的联系:一对一(1:1)、一对多(1:n)、多对多(m:n) 实体关系模型-- E-R图

oracle数据库学习笔记心得

select* |字段表名 from 表名 where 布尔表达式【条件】 externalcandidate 职员相关信息 contractrecruiter 猎头公司 查看表里所有字段 describe[描述] contractrecruiter select cname,nperecentagecharge from contractrecruiter 不显示原来名字,显示现在名字【用AS】 select cname as "Recruiter Name",nperecentagecharge as "Hire Fees" from contractrecruiter 不显示原来名字,显示现在名字【可不用AS】 select cname "Recruiter Name",nperecentagecharge "Hire Fees" from contractrecruiter 【双引号是否写】 双引号是为了区分大小写 职位表 position select *from position 缺额运算:[想减] select VDESCRIPTION , nbudgetedstrength, NBUDGETEDSTRENGTH -NCURRENTSTRENGTH , NYEAR from position

select VDESCRIPTION "Potion", nbudgetedstrength "Budgeted Strength" , NBUDGETEDSTRENGTH -NCURRENTSTRENGTH "Vacancies", NYEAR "Year" from position 显示非重复运行 查询来源地的人数 describe externalcandidate 查看职员城市名字 select ccity from externalcandidate 查看职员城市名字【名字不重复,插入一个关键字:distinct】select distinct ccity,cstate from externalcandidate 运算符: 两列 select vfirstname,vlastname from externalcandidate 字段拼接 select vfirstname||vlastname from externalcandidate select vfirstname||' '||vlastname from externalcandidate 学校 describe college 查看所有学校 select *from college 查看只是加利福尼亚的学校 select * from college where cstate='California' 一个条件 select vfirstname,vlastname,dbirthdate,ntestscore from externalcandidate where dbirthdate>='01-1月-70'

常用sql操作总结_尚硅谷_宋红康

SQL语句的多表查询方式 例如:按照department_id查询employees(员工表)和departments(部门表) 的信息。 方式一(通用型):SELECT ... FROM ... WHERE SELECT https://www.wendangku.net/doc/9812787290.html,st_name,e.department_id,d.department_name FROM employees e,departments d where e.department_id = d.department_id 方式二:SELECT ... FROM ... NATURAL JOIN ... 有局限性:会自动连接两个表中相同的列(可能有多个:department_id和manager_id) SELECT last_name,department_id,department_name FROM employees NATURAL JOIN departments 方式三:SELECT ... JOIN ... USING ... 有局限性:好于方式二,但若多表的连接列列名不同,此法不合适 SELECT last_name,department_id,department_name FROM employees JOIN departments USING(department_id) 方式四:SELECT ... FROM ... JOIN ... ON ... 常用方式,较方式一,更易实现外联接(左、右、满) SELECT last_name,e.department_id,department_name FROM employees e JOIN departments d ON e.department_id = d.department_id --内连接 1) --等值连接 --不等值连接 2) --非自连接 --自连接 --外连接 --左外连接、右外连接、满外连接

Oracle知识点总结

Oracle知识点总结 根据阎赫老师讲义整理Zealjiang 1、Oracle数据库的安装和配置 ⑴Oracle Internet级数据库 SQLServer 中小企业级数据库 Access 桌面级数据库 ⑵Oracle的安装 注意:来源和目标的目录不允许有中文或空格 ⑶Oracle数据库启动时必需开启的后台服务 ①OracleOrahome90TNSListener 使第三方的软件或语言访问 ②OracleServiceETC Oracle的实例 CRUD 增删改查 注意:②中的ETC是你起的实例的名字 ⑷Oracle的开发工具 ①DOS界面的开发平台 -> 运行->sqlplus ②Oracle本身基于DOS的平台 ->运行-> sqlplusw ③Oracle Enterprise Manager Console ④PL/SQL Developer7.1.5 ⑸创建一个表的完整流程 ①创建一个数数库 例子:创建一个数据库 ETC , 物理文件放在F:\ ,初始化1m ,自增长开启 create tablespace etc

datafile 'f:\etc.dbf' size 1m autoextend on; 删除表空间 drop tablespace 数据库名称; ②为该数据库创建一个帐号和密码 语法: create user 用户名称 identified by 密码 default tablespace 数据库名称 注意:1、在Oracle中账号和数据库one2one绑定 2、Oracle的密码不允许为纯数字或空 3、需要在system账号完成动作 修改Oracle的账号密码 语法:alter user 用户 identified by 新密码 ③用grant 权限 to 用户为该帐户授权 语法: grant 权限名称 to 用户; 撤销权限 语法:revoke 权限名称 from 用户名; ④在该帐号下创建表

Oracle笔记

数据库基本概念: 数据库:Database ,DB (数据) 数据库管理系统:(Database Management System,DBMS)oracle ,DB2,Sql_server 等 数据库系统:(Database System ,DBS) 关系型数据库:(Relationship Database ,RDB) SQL语言:(Structured Query Language,结构化查询语言) 数据建模: 要将现实世界中客观存在的事物以数据的形式存储到计算机中并进行处理,就需要对其进行分析,抽象,进而确定数据的结构以及数据间的内在联系,这一过程称为数据建模。 数据模型应满足三个方面的要求: 1,能够比较真实地模拟现实世界 2,容易为人所理解; 3,便于计算机实现。 数据模型三要素: 数据结构---描述事物的静态特性; 数据操作---描述事物的动态特性; 完整性约束----描述事物内部和事物间的约束性关系。 现实世界-------认识抽象-------->概念世界-------转换--------->机器世界 概念数据模型(Conceptual Database Model,CDM) CDM从用户的观点出发对信息进行建模,并不依赖于具体的计算机系统或某个DBMS系统,主要用于数据库的概念设计。 CDM以实体--关系(E-R)模型为基础,将现实世界中的客观对象抽象为实体和关系。 到机器世界中,CDM将被转化为特定DBMS所支持的物理数据模型(Physical Database Model ,PDM)。 CDM相关术语: 实体(Entity):客观存在并且可以相互区分开来的事物。 实体集(Entity Set):同一类实体的集合。 属性(Attribute):描述实体的特性。 关系(Relationship):实体集之间的对应关系(现实世界事物之间的相互关联)。 E-R图三要素: 实体:用矩形框表示

Oracle数据库知识总结

AD1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 4. 将显示的内容输出到指定文件 SQL> SPOOL file_name 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL> SPOOL OFF 只有关闭spool输出,才会在输出文件中看到输出的内容。 7. COL命令: 主要格式化列的显示形式。 1). 改变缺省的列标题 COLUMN column_name HEADING column_heading For example: Sql>select * from dept; DEPTNO DNAME LOC ---------- ---------------------------- --------- 10 ACCOUNTING NEW YORK sql>col LOC heading location sql>select * from dept; DEPTNO DNAME location --------- ---------------------------- ----------- 10 ACCOUNTING NEW YORK 2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上: Sql>select * from emp Department name Salary ---------- ---------- ---------- 10 aaa 11 SQL> COLUMN ENAME HEADING ’Employee|Name’ Sql>select * from emp Employee Department name Salary ---------- ---------- ---------- 10 aaa 11 note: the col heading turn into two lines from one line. 3). 改变列的显示长度: FOR[MAT] format Sql>select empno,ename,job from emp; EMPNO ENAME JOB ---------- ---------- --------- 7369 SMITH CLERK

相关文档