목록프로그래밍/SQL (67)
쌓고 쌓다
INITCAT 함수 인수로 입력되는 칼럼이나 표현식의 값에서 첫 번째 영문자를 대문자로 변환 INITCAP (expr | column) - 김영균 학생의 아이디를 출력한다. (첫문자는 대문자로) SELECT name, userid, INITCAP(userid) FROM student WHERE name='김영균'; LOWER, UPPER 함수 인수로 주어진 문자열 전체를 소문자 또는 대문자로 변환 LOWER( expr | column ) UPPER( expr | column ) - 학번이 20101인 학생의 아이디를 소문자와 대문자로 변환 SELECT name, userid, LOWER(userid), UPPER(userid) FROM student WHERE studno=20101; LENGTH, LE..
DROP TABLE후 테이블들을 조회해보자. SELECT * FROM tab; 하면 뭐가 남아있다. 아래의 쿼리를 입력해 없에주면 된다. PURGE RECYCLEBIN;
집합 연산자 테이블을 구성하는 행집합에 대해 테이블의 부분 집합으 결과로 반환하는 연산자 집합 연산의 대상이 되는 두 테이블의 칼럼 수가 같고, 대응되는 칼럼끼리 데이터 타입이 동일하면 합병 가능하다. 집합 연산자 의미 UNION 두 집합에 대해 중복되는 행을 제외한 합집합 UNION ALL 두 집합에 대해 중복되는 행을 포함한 합집합 MINUS 두 집합간의 차집합 INTERSECT 두 집합간의 교집합 문법 SELECT 명령문1 [UNION | UNION ALL | INTERSECT | MINUS] SELECT 명령문2; 집합 연산을 위한 테이블 생성 1학년이면서 몸무게가 70이상인 학생의 집합 : stud_heavy 1학년이면서 101번 학과인 학생의 집합 : stud_101 두 테이블을 생성한다. 테..
WHERE을 이용한 조건 검색 문자와 날짜 타입의 상수 값은 작은 따옴표('')로 묶어서 사용한다. 숫자는 그대로 사용함 그런데 Oracle에서 자동으로 숫자는 문자로(1->'1') 문자는 숫자로('1'->1)로 검색을 지원함 1) 학생 테이블에서 1학년 학생 출력 SELECT studno, name, deptno FROM student WHERE grade = '1'; -> grade 칼럼이 CHAR이긴하나 1로 검색해도 '1'로 검색해도 동일한 결과가 나옴 비교 연산자를 이용한 조건 검색 : WHERE 절에 숫자, 문자, 날짜의 크기나 순서를 비교 연산자 의미 = 같다. !=, 같지 않다. > 크다 >= 크거나 같다 = 70; 3) 학생 테이블에서 지도교수번호가 9905이거나, 학과번호가 201인 학..
SQL 언어 관계형 데이터베이스를 조작하기 위한 표준 언어 데이터 베이스의 구조를 정의하거나 저장된 데이터를 검색하기 위함 SQL 언어 특징 비절차적 언어 ( 조건을 만족하는 데이터를 집합 단위로 한꺼번에 처리 ) 대화식으로 사용하거나 응용 프로그램에 삽입하여 사용 SQL 명령문의 종류 질의어(DQL: Data Query Language) 데이터베이스에 저장된 데이터를 조회하는 명령어 데이터 조작어(DML: Data Manipulation Language) 데이터의 입력, 수정, 삭제하는 명령어 데이터 정의어(DDL: Data Definition Language) 데이터베이스의 구조를 정의하거나 수정하기 위함 / DB 객체를 생성, 수정, 삭제하는 것도 포함 트랜잭션 처리어(TCL: Transaction..
숫자형 데이터 타입 CHAR(n) : n 크기의 고정 길이 문자 데이터 타입 / 최소 1byte / 최대 2000byte VARCHAR2(n) : n 크기의 가변 길이 문자 데이터 타입 / 최소 1byte / 최대 4000byte NVARCHAR2(n) : n 크기의 가변 길이 유니코드 문자(다국어) / 최소 1byte / 최대 4000byte LOB 데이터 타입 : 텍스트, 그래픽, 이미지, 동영상, 사운드 등 구조화되지 않은 대용량의 텍스트나 멀티미디어 데이터를 저장) BLOB : 대용량의 바이너리 데이터를 저장하기 위한 데이터 타입 / 최대 4GB CLOB : 대용량의 텍스트 데이터를 저장하기 위한 데이터 타입 / 최대 4GB NCLOB : 국가별 문자(유니코드) 데이터 저장 BFILE : 대용량의..
PRIMARY KEY를 사용하면 클러스터형 인덱스가, UNIQUE를 사용하면 보조 인덱스가 자동으로 생성되었다. 그 외, 직접 인덱스를 생성하려면 CREATE INDEX문을 사용한다. 인덱스 생성 인덱스를 생성하는 문법을 간단히 하면 아래와 같다. CREATE [UNIQUE] INDEX 인덱스_이름 ON 테이블_이름 (열 이름) [ASC | DESC] 이것으로 생성되는 인덱스는 보조 인덱스이다. UNIQUE는 중복이 안되는 고유 인덱스를 만드는 것이다. 이때 기존에 입력된 중복이 있으면 X (생략하면 중복 허용) 기본은 ASC로 만들어진다. 인덱스 제거 CREATE INDEX로 생성한 인덱스는 DROP INDEX로 제거한다. DROP INDEX 인덱스_이름 ON 테이블_이름 기본 키, 고유 키로 자동 생..
인덱스(index)는 데이터를 빠르게 찾게 도와준다. 인덱스의 장점 SELECT 문으로 검색하는 속도 향상. 그 결과로 전체 시스템의 성능이 향상. 인덱스의 단점 인덱스도 공간을 차지하기 때문에 추가적인 공간이 필요하다. 처음에 인덱스를 만드는 데 시간이 오래 걸릴 수 있다. SELECT가 아닌 데이터의 변경(INSERT, UPDATE, DELETE)이 자주 일어나면 오히려 성능 저하. 1. 클러스터형 인덱스(Clustered Index) 기본키로 지정하면 자동 생성되며 테이블에 1개만 만들 수 있고 기본키의 열을 기준으로 자동 정렬 됨. 영어 사전처럼 책의 내용이 이미 알파벳 순서대로 정렬되어 있다. 그래서 별도의 찾아보기(책의 맨뒤)가 없다. 책 자체가 찾아보기이다. 2. 보조 인덱스(Secondar..