Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- feature map
- 백준
- Depthwise Separable Convolution
- SQL
- skip connection
- CROSS JOIN
- Two Pointer
- BFS
- 1x1 Convolution
- 엔터티
- numpy
- 연산량 감소
- 그래프
- outer join
- dp
- resnet
- 데이터모델링
- 인접행렬
- pytorch
- Inductive Bias
- 인접리스트
- 식별자
- SQLD 후기
- SQLD
- 정규화
- dfs
- mobilenet
- bottleneck
- get_dummies()
- depthwise convolution
Archives
- Today
- Total
SJ_Koding
SQLD 대비 (8) - SQL 문법 및 라이브러리_3 본문
이전 글과 이어지는 글입니다. 해당 정리글은 아래의 유튜브 영상을 참고하여 만들었습니다. 문제 시 삭제하겠습니다.
빨간색 형광펜은 강의에서 강조한 부분, 노란색 형광펜은 추가 서치로 내용을 '직접' 보강한 부분입니다.
DDL (테이블 조작)
- 테이블또는 데이터베이스내 객체 등의 구조를 정의하는 명령
- 구조를 생성하거나 변경 또는 삭제 할 떄 사용하는 명령
CREATE | 데이터베이스의 객체를 생성 |
ALTER | 생성된 객체의 구조를 변경 |
DROP | 생성된 객체를 제거 |
TRUNCATE | 테이블의 모든 데이터 삭제 및 초기화, 저장공간 반납 |
CREATE TABLE
- 테이블을 생성하는 DDL문,
- Primary key, foreign key, cheek 등 제약조건 정의 가능
- 컬럼 및 데이터 타입 정의
CREATE TABLE EMPLOYEES_SALATY_D
(
ID VARCHAR2(10) NOT NULL PRIMARY KEY,
EMPLOYEES_ID VARCHAR2(10) NOT NULL REFERENCES EMPLOYEES (ID),
NAME VARCHAR2(100),
BONUS_TYPE VARCHAR2(3),
SALARY NUMBER,
BONUS NUMBER,
REG_DT DATE
)
ALTER
- 테이블이나 컬럼의 구조를 변경하는 명령
- 제약조건을 추가 하거나 삭제 하는 명령
ALTER TABLE EMPLOYEES_SALARY_D RENAME COLUMN NAME to EMPLOYEE_NAME
ALTER TABLE EMPLOYEES_SALARY_D MODIFY BONUS_TYPE VARCHAR2(5) NOT NULL
ALTER TABLE EMPLOYEES_SALARY_D DROP PRIMARY KEY;
ALTER TABLE EMPLOYEES_SALARY_D ADD CONSTRAINT EMPLOYEES_EMPLOYEE_ID_FK FOREIGN KEY (ID) REFERENCES EMPLOYEES (EMPLOYEE_ID);
DROP
- 테이블이나 특정 객체를 삭제하는 명령
- 테이블내 데이터와 구조를 삭제
- Cascade constraint 옵션은 종속된 제약조건도 모두 삭제
drop table 테이블명 (cascade constraint);
TRUNCATE
- 테이블 구조는 남겨두고 내부의 데이터, 행만 삭제하는 명령어.
- 테이블이 차지하던 저장공간을 반납 한다.
truncate table 테이블명;
VIEW
- 뷰는 실제 데이터를 가지고 있지 않음.
- Select SQL만 가지고 있다고 생각하면 됨.
- 참조된 테이블이 변경되면 뷰의 결과도 변경 됨
CREATE VIEW 뷰명 as
SELECT * FROM 테이블명 WHERE ...; /* SQL문 */
장점 | - 보안에 적합하다. - 단순하게 불러올 수 있다. - 하나의 테이블로 여러 결과를 가진 뷰를 생성 할 수 있다. |
단점 | - 삽입, 갱신 등 연산이 제한적이다. - 데이터 구조를 쉽게 변경할 수 없다. - 인덱싱 하기 어렵다. |
DML(테이블 내 데이터 조작)
- 데이터베이스 내 데이터를 조회 하거나 입력, 수정, 삭제 하는 명령
SELECT | 데이터를 주어진 조건에 맞게 조회하는 명령어 |
INSERT | 데이터를 입력 및 저장 하는 명령어 |
UPDATE | 데이터를 수정 하는 명령어 |
DELETE | 행, ROW를 삭제 하는 명령어 |
/* 데이터 조회 */
SELECT ID, EMPLOYEE_NAME, ROUND(SALARY, 2) AS SALARY
FROM EMPLOYEES_SALARY
WHERE DEPT_CODE = '123';
/* 데이터 삽입 */
INSERT INTO EMPLOYEE VALUES ('A06', '독도', 'AA', 1200, 70); /* 전체 컬럼 삽입 */
INSERT INTO EMPLOYEE (ID, NAME, SALARY) VALUES ('A06', '독도', 1200);
/* 데이터 수정 */
UPDATE EMPLOYEE SET SALARY = 1150;
UPDATE EMPLOYEE SET SALARY = 1150
WHERE ID = 'A04';
UPDATE EMPLOYEE SET SALARY = 1150 + 50
WHERE BONUS_TYPE IS NOT NULL;
UPDATE EMPLOYEE SET SALARY = 1150 + 50
WHERE BONUS_TYPE IN ('AB', 'AC')
/* 테이블 행 삭제 */
DELETE FROM EMPLOYEE
HWERE ID = 'A04'
DCL (Data Control Language)
- 데이터베이스 내 유저에 권한을 부여 하거나 회수 하는 명령어
GRANT | 유저에게 권한을 부여하는 명령어 |
REVOKE | 유저에게 권한을 회수하는 명령어 |
1. GRANT
- 유저에게 각종 오브젝트 권한을 부여할 수 있는 명령어
- 시스템 권한으로는 DBA, CREATE SEESSION, CREATE USER, SYSDBA등이 있다.
- 부여할 수 있는 오브젝트 권한의 종류는 다음과 같다.
ALTER | 테이블을 수정 할 수 있는 권한 |
DELETE | 삭제 할 수 있는 권한 |
ALL | 특정 테이블에 대한 모든 권한 |
INDEX | 인덱스를 생성할 수 있는 권한 |
INSERT | 지정된 테이블에 대한 INSERT 권한 |
REFERENCED | 지정된 테이블을 참조하는 제약조건을 생성할 수 있는 권한 |
SELECT | 지정된 테이블을 SELECT 할 수 있는 권한 |
UPDATE | 지정된 테이블을 UPDATE 할 수 있는 권한 |
CREATE USER MY_USER IDENTIFIED BY 1234
GRANT CREATE_SESSION TO MY_USER
2. ROLE
- ROLE은 권한과 유저사이에 존재하는 개념으로, 다양한 권한을 역할에 따라 유저에게 부여 할 때 사용 할 수 있다.
- 특정 ROLE은 여러 권한을 받아 놓고, 특정 유저에게 여러 권한들을 가진 ROLE을 부여함으로 간단하게 권한을 관리할 수 있다.
CREATE ROLE MY_ROLE
GRANT CREATE SESSION, CREATE TABLE TO MY_ROLE
GRANT MY_ROLE TO MY_USER;
3. TCL(Transaction Control Language)
이전 포스트와 내용 중복
'SQL > SQLD' 카테고리의 다른 글
SQLD 대비 (10) - 서브쿼리(Sub Query), 비등가 조인, 집합연산자 (0) | 2023.11.16 |
---|---|
SQLD 대비 (9) - JOIN (0) | 2023.11.16 |
SQLD 대비 (7) - SQL 문법 및 라이브러리_2 (0) | 2023.11.13 |
SQLD 대비 (6) - SQL 문법 및 라이브러리_1 (1) | 2023.11.13 |
SQLD 대비 (5) - 관계형 데이터베이스 (RDBMS) (0) | 2023.11.13 |