본문 바로가기
728x90

프로그래밍 언어/SQL6

프로시저(Procedure) 프로시저: 절차형 SQL을 활용하여 특정 기능을 수행하는 일종의 트랜잭션 언어 호출을 통해 실행되어 미리 저장해 놓은 SQL 작업을 수행 프로시저 구성도 - DECLARE: 프로시저의 명칭, 변수, 인수, 데이터 타입을 정의하는 선언부 - BEGIN / END: 프로시저의 시작과 종료 의미 - CONTROL: 조건문, 반복문이 순차적으로 처리됨 - SQL: DML, DCL이 삽입 - EXCEPTION: BEGIN ~ END 안에서 예외가 발생하면 이를 처리하는 방법을 정의 - TRANSACTION: 수행된 데이터 작업들을 DB에 적용할지 취소할지를 결정 프로시저 생성 CREATE [OR REPLACE] PROCEDURE 프로시저명(파라미터) [지역변수 선언] BEGIN 프로시저 BODY; END; // .. 2023. 9. 15.
문자열 관련 함수, Case(조건문) 문자열 쪼개기: SUBSTRING_INDEX(속성명, '기준문자', 가져올_조각_위치) select user_id, email, SUBSTRING_INDEX(email, '@', 1) from users //이메일에서 아이디만 가져오기 (1번째 조각) select user_id, email, SUBSTRING_INDEX(email, '@', -1) from users //이메일에서 도메인만 가져오기 (마지막 조각) 문자열 일부 출력: SUBSTRING(속성명, 시작위치, 글자개수) select order_no, created_at, substring(created_at,1,10) as date from orders //날짜시간에서 앞의 날짜 부분(첫글자 위치, 글자 개수)만 출력 select substr.. 2023. 9. 15.
Subquery, WITH 자주 쓰이는 서브 쿼리 유형 WHERE절에 들어가는 서브 쿼리 WHERE 속성명 IN (subquery) 서브쿼리의 결과를 조건으로 활용하고 싶을 때 SELECT절에 들어가는 서브쿼리 SELECT 속성명1, 속성명2, (subquery) FROM ... 기본 테이블에 함께 보고 싶은 통계 데이터를 붙이고 싶을 때 FROM절에 들어가는 서브쿼리 FROM 테이블 a INNER JOIN (subquery) b ON a.속성명 = b.속성명; 내가 만든 SELECT문을 한 테이블처럼 다른 테이블과 JOIN하고 싶을 때 1번 예시 - 전체 유저의 포인트 평균보다 큰 유저들의 데이터 추출하기 SELECT * from point_users pu where point > ( select avg(point) from p.. 2023. 9. 15.
DML(insert, delete, update, select, union, join) DML: 사용자가 저장된 데이터를 실질적으로 관리하는데 사용하는 언어 INSERT INTO: 테이블에 새로운 튜플 삽입 INSERT INTO 테이블명([속성명1, 속성명2, ...]) VALUES (데이터1, 데이터2, ...); DELETE FROM: 테이블의 특정 튜플을 삭제 DELETE FROM 테이블명 [WHERE 조건]; UPDATE SET: 테이블의 특정 튜플의 내용을 변경 UPDATE 테이블명 SET 속성명=데이터[, 속성명=데이터, ...] [WHERE 조건]; SELECT: 테이블에서 튜플 검색 SELECT [PREDICATE] [테이블명.]속성명 [AS 별칭] [, [테이블명,]속성명, ...] [, 그룹함수(속성명) [AS 별칭]] [, Window함수 OVER (PARTITION B.. 2023. 9. 15.
DCL(grant, revoke, commit, rollback, savepoint) DCL: 데이터의 보안, 무결성, 회복 ,병행 제어 등을 정의 GRANT / REVOKE: 사용자에게 권한 부여 및 취소 사용자 등급 지정 및 해제 GRANT 사용자등급 TO 사용자_ID_리스트 [IDENTIFIED BY 암호]; REVOKE 사용자등급 FROM 사용자_ID_리스트; // 사용자 등급: DBA, RESOURCE(테이블 생성자), CONNECT 테이블 및 속성에 대한 권한 부여 및 취소 GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION]; REVOKE [GRANT OPTION FOR] 권한_리스트 ON 개체 FROM 사용자 [CASCADE]; // WITH GRANT OPTION: 부여받은 권한을 다른 사용자에게 부여 가능 COMMIT: 트랜잭션의 내용을 데이.. 2023. 9. 15.
SQL 개념, DDL(create, alter, drop) SQL 관계형 데이터베이스를 지원하는 언어 관계대수와 관계해석을 기초로 한 혼합 데이터 언어 SQL 종류 DDL(Data Define Language, 데이터 정의어): CREATE, ALTER, DROP DML(Data Manipulation Language, 데이터 조작어): SELECT, INSERT, DELETE, UPDATE DCL(Data Control Language, 데이터 제어어): COMMIT, ROLLBACK, GRANT, REVOKE SQL에서 지원하는 기본 데이터 타입 정수: INTEGER(4Byte 정수), SMALLINT(2Byte 정수) 실수: FLOAT, REAL, DOUBLE PRECISION 형식화된 숫자: DEC(i, j) // i: 전체 자릿수, j: 소수부 자릿수 .. 2023. 9. 14.