목록전체 글 (329)
쥬로그
* 스키마는 테이믈/DB(데이터베이스)의 구조나 데이터타입을 정의한다. * 제약 조건은 레코드를 추가할 때 외에도 수정/삭제할 때도 적용된다. * 자료형 (Data Types) ♧ NUMBER (a, b) - 숫자를 다루는 데 사용하는 데이터 타입 - number(10, 2) 소수점 기준으로 10자리, 소수점 이하 2자리 - 다른 시스템/언어와의 호환성을 위해 int/float도 허용 ♧ 문자열 - CHAR (size): 고정 길이 문자열 - VARCHAR2 (size): 가변 길이 문자열 ♧ Long - 2GB 이내의 문자열을 처리하는 데이터 타입 ♧ Date - 날짜와 관련한 데이터를 저장하는 데이터 타입 ♧ CLOB (Character Large Obj..
* 서브쿼리는 쿼리문 안에 또 다른 쿼리문이 들어있는 형태를 말한다. 서브쿼리문은 보통 ( )로 감싼다. * MySQL과는 달리 오라클은 합집합(UNION), 교집합(INTERSECT), 차집합(MINUS) 연산을 지원한다. * 서브쿼리 - 쿼리문 내에 또 다른 쿼리문이 있는 형태 - 서브쿼리는 메인쿼리에 포함되는 관계 - () 를 사용해 감싸는 형태 - ORDER BY를 사용하지 못한다. - 사용 가능한 위치 -> SELECT / FROM / WHERE / HAVING / ORDER BY VALUES(INSERT) / SET(UPDATE)... - 단일행(Single Row) 서브쿼리 : 결과가 레코드 하나인 서브쿼리 : 일반 연산자(=, >, 1. select count(*..
* LIKE 검색에서 사용하는 와일드 카드는 %와 _가 있다. %는 0자 이상 여러 자에 매칭되는 와일드카드 문자이고, _는 1자에 대응하는 와일드카드 문자이다. * HAVING 절을 사용해서 GROUP BY한 결과물에 조건을 줘서 필터링해 표시한다. * LIKE 검색 - 정확한 키워드를 모를 경우 일부만으로 검색하는 방법 - 와일드카드 (Wildcard) %: 0 ~ n글자 _: 1 글자 - 와일드카드를 사용하여 검색 select 컬럼명 from 테이블명 where 컬럼명 like 패턴 ! LIKE 검색은 매칭 과정에 DBMS 부담이 크기 때문에 OR와 같은 논리조건자를 중복해서 사용하지 않는 게 좋음 ex) select * from 테..
* SELECT INTO(CREATE TABLE SELECT ... INTO)는 쿼리 결과를 테이블로 생성하고 싶을 때 사용한다. * INSERT INTO SELECT는 쿼리 결과를 기존의 테이블에 추가하고 싶을 때 사용한다. * SELECT INTO - 쿼리 결과를 새 테이블로 만든다. - 기존에 존재하지 않는 테이블이 새로 생성된다. (일종의 뷰와 동일한 효과) - 오라클에서는 아래와 같이 선언한다. (뷰와 차이점) CREATE TABLE 테이블명 AS SELECT * FROM 테이블명 √ SQL은 비절차적 언어로 에러 시 튜닝 처리 ex) 업무가 SALESMAN인 직원만 찾아서 따로 emp_salesman이라는 테이블을 생성해서 넣으시..
* 오라클은 표준 조인 외에 크로스조인, 내추럴조인, 외부조인(=), non-equal 조인, using과 같은 자체적으로 지원하는 조인형식이 있다. * 별명(ALIAS)는 테이블의 컬럼명을 쿼리결과에 노출하고 싶지 않거나 알기 쉽게 표시하고 싶을 때 사용한다. * JOIN의 개념, 종류 - 서로 다른 테이블을 공통 컬럼을 기준으로 합치는(결합하는) 테이블 단위 연산 - 조인의 결과 테이블은 이전 테이블의 컬럼 수의 합과 같다. - 조인 시 서로 다른 테이블에 같은 컬럼명이 존재하면 구분을 위해 테이블명.컬럼명 으로 표시 select * from 테이블 1 join 테이블2 on 테이블 1.컬럼명 = 테이블2.컬럼명 ex) emp 테이블과 dept 테이블을 조인하시오. (emp.deptno = dept...
* 동일한 결과가 여러 개 나오는 경우에 이를 한 번만 표시하게 하는 연산자는 distinct 이다. * 쿼리의 결과값에서 결과값의 라인 수(줄 수) = 레코드 수만 알고 싶을 때는 COUNT() 함수를 사용하면 된다. * 쿼리결과 중복제거 - DISTINCT 연산자 SELECT문의 결과값에서 특정 컬럼만 출력할 경우 중복된 값들이 나오는 경우에 이를 제거해서 표시하는 기능 select distinct 컬럼명 1, 컬럼명 2, … from 테이블명 where 조건절 ex) EMP 테이블에서 JOB 컬럼을 표시하시오. (job 컬럼만 표시하는 것이기 때문에 * 대신에 job이 들어감) -> select job from emp; EMP 테이블에서 job 컬럼 중복을 제거하고 표시하시오. -> select d..
* SQL은 대소문자를 구별하지 않는다. (Case Insenstive) 다만, 레코드 내용은 대소문자를 구분한다. * CRUD는 생성 Create, 검색 Retrive, 수정 Update, 삭제 Delete 의 약자이다. * SQL이란? = Structured Query Language - 데이터베이스에 있는 필요한 정보를 사용(생성, 검색, 수정, 삭제)할 수 있도록 도와주는 언어 - 사용방법이나 문법이 다른 언어보다 단순함 - 하나를 배워두면 모든 DBMS에서 응용 가능함 - 인터프리터 (고급언어로 작성된 코드를 한 단계씩 해석하여 실행시키는 방법, 컴파일러를 사용하여 실행하는 것보다는 느리게 실행된다) - 대소문자 구별하지 않음 (데이터 내용은 구별함) - 사용자나 프로그..
전제: 샘플 스키마 설치한 경우 * 계정풀기 (언락) alter user scott identified by tiger account unlock; connect scott/tiger; alter user hr identified by hr account unlock; connect hr/hr; * 콘솔 환경 설정 - 한줄 길이 설정 set linesize 100 - 한 페이지 길이 설정 set pagesize 100 - 쿼리 실행시간 표시 set timing on * 기본 사용법 - 현재 데이터베이스(카탈로그) 리스트 보기 select * from tab; - 테이블 스키마(구조) 보기 desc ~(보고싶은 테이블 명); - 테이블 내용 보기 select * from ~(보고싶은 테이블 명); - DB..
데이터베이스는 처음 공부해본다. 확실히 프로그래밍 언어랑은 다르게 단순한 거 같으면서도~ 쿼리문이 어렵다. 그렇지만 DB는 모든 개발의 기초이니 열심히 공부해서 능숙해져야겠다. 뭔가 개발의 전체적인 그림이 하나, 둘 맞춰져가고 있는 느낌이다! 강의 내용을 정리하며 나만의 노트를 완성해가는 중...! - RDBMS 는 데이터의 검색(Retrieve)를 빠르게 하기 위해 데이터를 변경(추가/업데이트/삭제)할 때 인덱스를 미리 만들어서 데이터의 검색을 빨리 되도록 한다. 하지만 데이터의 변경이 많을 경우에는 인덱스 때문에 오히려 성능이 떨어지기도 한다. - 정규화(Normalization)란? 동일한 데이터가 중복 저장되지 않도록 다양한 정규형을 적용해 스키마(테이블구조)를 만드는 것을 ..