본문 바로가기

DB

(21)
오라클 관계 # 관계 (정리필요) 1:1 - 한남자는 다른한여자와 결혼하고 다른한여자도 다른한남자랑만 결혼한다. 1:N - 한명의사원은 하나의부서에 속하고 하나의부서는 여러명의 사원을 가진다. N:M - 여러개의책이 여러명의사람들에게 팔릴수있고 여러명의사람들도 여러개의책을 구매 할 수 있다. # 일대일 (1:1) #일 대 다 형식의 조인(1:N) 하나의 사원은 하나의 부서에 속하고 하나의부서는 여러 사원을 가진다 이때 사원테이블이 1 : 부서테이블이 다 select o.customer_id ,o.date_ordered-->호출 ,i.product_id ,i.quantity-->호출from s_item i inner join s_ord o-->조인될 주소 on i.ord_id=o.id -->조인될 값* 다(많은량)의 ..
오라클 조인 ( join ) # JOIN # JOIN ( INNER JOIN과 OUTER JOIN으로 구분됨 ) ( 아래가 ANSI표준쿼리 ) ( ()는 생략가능 )JOIN - INNER JOIN - EQUI JOIN ( = ) - NON EQUI JOIN ( >, >= , < ) - OUTER JOIN - LEFT (OUTER) JOIN - RIGHT(OUTER) JOIN - FULL(OUTER) JOIN 만약 INNER JOIN에서 한가지 문제점이 조인을 생성하려는 두 테이블의 두 컬럼에서 공통된값이 없다면 데이터를 반환하지 못한다.이때 사용하는것이 OUTER JOIN이다. (INNER) JOIN - 둘다 일치하는 부분의 레코드를 반환LEFT (OUTER) JOIN - LEFT테이블의 모든것과 RIGHT중 LEFT과 일치하는부분..
오라클 서브쿼리 ( subquery ) # subquery--알려지지않은 데이터값을 알기위해 사용(나중에 변할수있는값) 두 종류의 비교 연산자들이 서브쿼리에 사용된다 서브쿼리는 연산자의 오른측에 나타나야한다. 서브쿼리는 여러 sql문장에 사용가능하다 서브쿼리는 order by절을 포함할수없다 select e.empno,e.ename,m.empnofrom (select * from emp)e, emp m-->괄호안의 데이터 부터 처리후 괄호밖의 데이터에 대입함!where e.mgr=m.empno # 위치에 따른 명칭 스칼라 서브쿼리 - SELECT문에 있는 서브쿼리 인라인뷰 - FROM절에 있는 서브쿼리 서브쿼리(필터서브쿼리) - WHERE절에 있는 서브쿼리 # 반환값에 따른 서브쿼리종류 단일행서브쿼리 - 서브쿼리결과가 1행 다중행서브쿼리 - ..
오라클 함수 # SQL 함수단일행함수와 복수행함수로 나눔 # 단일행 함수 각각 행에적용 데이터값을 조작,인수()를 받아들여 한개의값을 리턴 ,데이터 타입을 변환 # 문자처리함수LOWER(컬럼명 or 스트링) : 소문자로변경UPPER(컬럼명 or 스트링) : 대문자로변경INITCAP(컬럼명 or 스트링) : 알파벳단어의 첫글자는대문자로 나머지는 소문자로CONCAT(컬럼명 or 스트링 , 합칠컬럼명 or 합칠스트링 ) : 문자열합쳐줌 ( 합성연산자 || 해도됨) ( 오라클은 처음이 1번... 0번아님! 즉, index가 1부터 시작 )SUBSTR(컬럼명 or 스트링, m , n ) : m의위치에서 n길이만큼 문자열을 잘라리턴!LENGTH(컬럼명 or 스트링) : 문자열의 길이를 리턴 INSTR(컬럼명 or 스트링, 찾고..
계층형 쿼리 # 오라클 계층 쿼리 # 서론Q : 계층구조 테이블 조회를 어떻게 해야하나?A : SQL기본문법으로 절대 해결할 수 없다. 그러나 오라클에는 계층구조 전용 SQL 구문이 있다. # 계층구조테이블 구성 부모와 자식의 계층 관계를 구조화한 테이블로서 코드(하위코드)와 부모코드(상위코드)로 구성됨! 1번그림 : 데이터 모델관점(논리적관점)에서의 구조2번그림 : 트리구조형태(논리적관점)에서의 구조3번그림 : RDB(관계형DB)에서의 계층구조 # 오라클의 계층구조 쿼리 기본 문법SELECT 컬럼리스트 , LEVEL AS 계층의깊이 , CONNECT_BY_ROOT REF_SEQ AS 루트노드값 , CONNECT_BY_ISLEAF AS 최하위여부최하위1 , SYS_CONNECT_BY_PATH(REPLY_SEQ, '-..
오라클 기초 # 오라클 기초 1. select * from tab; 서버에있는 전체 table보기 2. select 절select 선택목록,선택목록,.... from 테이블명ex> select id,name from emp; 3. 칼럼별칭 "as"select 선택목록,선택목록....as abc from 테이블명. ex> select id,name as abc from emp;-->name명칭이 abc로변경됨 4. 테이블명 테이블명별칭 테이블명 AS T 아님!!( 테이블명뒤엔 AS 안됨. 바로별칭) 5. 결합연산자 ||select A || B as fullName from s_emp; -->fullName 값에 AB가 출력됨 ex> select '철수' || emp_name || '이다' From Temp; ex> s..
오라클 DDL, DML, DCL, TCL (제약조건 포함) # DCL ( Data Control Language ) 데이터제어어( GRANT, REVOKE ) 즉, 권한에 따라데이터들을 제어할 자격을 주는것 # TCL ( Transaction Control Language ) ( DCL에 속하여 DCL로부르기도함 ) 트랜잭션 제어어( COMMIT, ROLLBACK, SAVEPOINT ) # DML ( Data Manipulation Language ) 데이터조작어( SELECT, INSERT, UPDATE, DELETE ) # DDL (Data Definition Language ) 데이터정의( CREATE, ALTER, DROP, RENAME 등등 ) # DDL (Data Definition Language ) 데이터정의( CREATE, ALTER, DROP,..
SQL시스템과 오라클 SQL PLUS # SQL 시스템 흔히 오라클 mysql( mariadb) sql server ( mssql ) - 흔히 SQL Server라고하면 mssql을 말하는듯 postgreSQL 포스트그리SQL 혹은 포스트크레이스큐엘 DB2 ( IBM?? ) # 오라클 DB cmd로 접속(sqlplus)C:\>sqlplus /nolog 관리자모드로 접속 : SQL>conn /as sysdba자신의계정으로접속 : SQL>conn scott/tiger # SQL PLUS명령어 *sql plus 툴에는 sql버퍼가 하나 존재하는데 여기에는 마지막으로 실행된 sql문장 또는블록하나가 저장되어있다 이 버퍼의 내용을 보거나 변경하거나 저장할수있으며 다른파일의 내용을 버퍼로 불러들일수도있다. *편집명령어 L(IST)-->sql 버퍼에있는..