Day 51

dokiru·2023년 4월 11일
0

학원

목록 보기
33/51

SQL(Structured Query Language)

: RDBMS에서 데이터를 다루고 관리하는데 사용하는 데이터 베이스 질의 언어

종류

종류설명
DQLRDBMS에 저장한 데이터를 원하는 방식으로 조회하는 명령어
DMLRDBMS 내 테이블의 데이터를 저장·수정·삭제하는 명령어
DDLRDBMS 내 데이터 관리를 위해 테이블을 포함한 여러 객체를 생성·수정·삭제하는 명령어
TCL트랜잭션 데이터의 영구 저장·취소 등과 관련된 명령어
DCL데이터 사용 권한과 관련된 명령어

sql 샘플데이터 세팅하기

  1. 데이터를 보관할 example이라는 테이블 스페이스 생성
    CREATE TABLESPACE example

  2. 연습용 계정의 아이디를 scott, 비밀번호를 tiger로 설정
    CREATE USER scott IDENTIFIED BY tiger

  3. scott 계정에 적절한 권한 주기 (example 테이블에 권한 부여, user에 권한 부여)

DEFAULT TABLESPACE example
TEMPORARY TABLESPACE temp
QUOTA unlimitied ON example
QUOTA unlimited ON users;
  1. scott 계정으로 로그인
    GRANT connect, resource TO scott;

  2. 데이터 생성 스크립트 실행 (쿼리문들이 모여있는 예시파일)
    @D:파일경로

  3. 확인
    SELECT* FROM dept

SQL 명령어

(가독성을 위해 명령어는 대문자로, 그 외는 소문자로 작성)

1. DESC

  • 테이블의 구성을 확인할 수 있는 명령어

  • 형식
    DESC 테이블이름

ex. NOT NULL -> 값이 비어있으면 안됨

이름    	 널?       유형           
------ 	-------- 	------------ 
DEPTNO NOT NULL NUMBER(2)    
DNAME           	 VARCHAR2(14) 
LOC            	 VARCHAR2(13) 

2. SELECT

  • 테이블의 데이터를 조회할 수 있는 명령어

  • 형식 : 전체를 조회하고 싶으면 * 사용

SELECT 열이름1, (열이름2, 3...)
FROM 테이블이름

ex.

SELECT * 
FROM dept;
--dept라는 테이블에 있는 모든 정보를 가지고 오겠다

SELECT loc 
FROM dept;
--dept라는 테이블에 있는 loc열의 정보를 가지고 오겠다

2-1. 중복된 값 제거하고 출력

: 반드시 SELECT 문 바로 뒤에 작성!

SELECT DISTINCT deptno 
FROM emp;

2-2. select 명령에 표현식을 사용하여 출력

: 작은 따옴표로 감싸준다

ex.

SELECT deptno, dname, '문자열'
FROM dept;

결과값

	DEPTNO	DNAME	'문자열'
1	10	ACCOUNTING	문자열
2	20	RESEARCH	문자열
3	30	SALES		문자열
4	40	OPERATIONS	문자열

2-3. select 명령에 열 별칭 지정하기

sal12 ANNSAL
sal
12 "ANNSAL"
sal*12 "ANNSAL is here" > 띄어쓰기 포함할때 큰따옴표로 감싸줘야함

sal12 AS ANNSAL
sal
12 AS "ANNSAL"
sal*12 AS "ANNSAL is here" > 띄어쓰기 포함할때 큰따옴표로 감싸줘야함

2-4. select 명령에 별칭 지정하면서 표현식을 사용하여 출력

ex1.

SELECT deptno, dname, '문자열' description
FROM dept;

결과값

	DEPTNO	DNAME		DESCRIPTION
1	10		ACCOUNTING	문자열
2	20		RESEARCH	문자열
3	30		SALES		문자열
4	40		OPERATIONS	문자열

ex2. 별칭 안에 작은 따옴표가 들어가는 경우

SELECT dname, ' it''s deptno is ' , deptno "DNAME AND DEPTNO"
FROM dept;

결과

  • 오라클 공인 교재 방식
SELECT dname, q'[it's deptno is]', deptno "DNAME AND DEPTNO"
FROM dept;

결과

2-5. select 명령에 연결 연산자로 칼럼의 값 붙여서 출력 (!= 여러개의 열을 출력)

: || 연산자로 붙이고자하는 값을 써준다

ex1.

SELECT ename, job, ename || job, '한줄'
FROM emp; 

결과값

	ENAME	JOB			ENAME || JOB		'한줄'
1	SMITH	CLERK		SMITHCLERK			한줄
2	ALLEN	SALESMAN	ALLENSALESMAN		한줄
3	WARD	SALESMAN	WARDSALESMAN		한줄
4	JONES	MANAGER		JONESMANAGER		한줄
5	MARTIN	SALESMAN	MARTINSALESMAN		한줄
6	BLAKE	MANAGER		BLAKEMANAGER		한줄
7	CLARK	MANAGER		CLARKMANAGER		한줄
8	KING	PRESIDENT	KINGPRESIDENT		한줄
9	TURNER	SALESMAN	TURNERSALESMAN		한줄
10	JAMES	CLERK		JAMESCLERK			한줄
11	FORD	ANALYST		FORDANALYST			한줄
12	MILLER	CLERK		MILLERCLERK			한줄

ex2.

SELECT ename||' ''s job is '|| job "NAME AND JOB"
FROM emp;

-- '' -> 작은 따옴표 하나를 출력하겠다
-- emp 테이블의 ename + 's job is + job의 값을
-- 별칭을 NAME AND JOB으로 지어서 출력하겠다

결과

profile
안녕하세요!

0개의 댓글