본문 바로가기

Spring

Spring) SQL - (Structured Query Language)


SQL

SQL (Structured Query Language) -  관계형 데이터베이스에 데이터 저장, 관리 및 검색을 수행하는 데 도움이되는 언어

관계형 데이터베이스-  데이터를 테이블에 저장하며이 테이블은 서로 관련이 있음


 

DDL (데이터 정의 언어) -DB를 구축하거나 수정할 목적으로 사용하는 언어


CREATE(생성)

- CREATE SCHEMA

사용자의 아이디가 user_ id인 스키마 'schema1' 을 정의

CREATE SCHEMA schema1 AUTHORIZATION user_id;

*스키마 : DB의 구조와 제약 조건에 관한 전반적인 명세를 기술한 것

 

- CREATE TABLE

CREATE TABLE student
(이름 VARCHAR(5) NOT NULL PRIMARY KEY ,
 학번 CHAR(8),
 전공 CHAR(8),
 생년월일 DATE
     CONSTRAINT 생년월일제약 CHECK(생년월일 >='1980-01-01'));

*CONSTRAINT : CHECK절 안에제약조건 명시 ex) 생년월일제약  = 생년월일은 1980-01-01 이후의 값만 저장할 수 있다.

 

- CREATE INDEX

CREATE UNIQUE INDEX 학번_idx ON STUDENT(학번 DESC );

STUDENT테이블의 '학번' 속성을 내림차순으로 정렬하여 학번_idx라는 인덱스 정의


ALTER(변경)

- ADD

ALTER TABLE STUDENT ADD 학년 VARCHAR(3);

STUDENT 테이블에 최대 3문자로 구성된 '학년' 속성 추가

 

- ALTER

ALTER TABLE STUDENT ALTER COLUMN 학번 VARCHAR(10) NOT NULL ;

STUDENT 테이블의 '학번' 속성을  최대 10글자로 변경하고 NULL값이 입력되지 않게 변경

 

- DROP COLUMN

ALTER TABLE STUDENT DROP COLUMN 전공 ;

STUDENT 테이블의 '전공' 속성 삭제

 

 


DROP(삭제)

-CASECADE 

DROP TABLE STUDENT CASCADE ;

*CASECADE - 제거할 요소를 참조하는 다른 모든 개체를 함께 제거

-RESTRICTED 

DROP TABLE STUDENT RESTRICT ;

*RESTRICTED - 다른 개체가 제거할 요소를 참조중일 때는 제거 취소

 

 


 

 

DML (데이터 조작 언어) - 사용자가 응용 프로그램, 질의어를 통해 데이터를 실질적으로 관리하는 목적으로 사용하는 언어


SELECT(검색문) - 기본 테이블의 레코드 검색

 


INSERT(삽입문) - 기본 테이블에 새로운 튜플 삽입

INSERT INTO STUDENT(이름,학번,생년월일,학년,전공)VALUES ('김철수','20172401','19980502','4','정보통신공학과');

 

INSERT INTO STUDENT (이름, 학번, 생년월일 ,학년) VALUES ( '코난','20172410','19990505','2' )

대응하는 속성과 데이터는 개수와 데이터 유형이 일치해야된다

INSERT INTO STUDENT VALUES ( '장미','20182512','19991111','1' ,'경영학과');

모든 속성을 사용할 경우 속성명 생략 가능


UPDATE(갱신문) - 기본 테이블에 있는 튜플중 특정 튜플의 내용 변경

UPDATE STUDENT SET 전공 = '경영학과' WHERE 이름 = '코난';

STUDENT 테이블의  이름이 코난인 튜플에서 전공을 경영학과로 변경


DELETE(삭제문) - 기본 테이블에 튜플중 특정 튜플 삭제

DELETE FROM STUDENT WHERE 이름 = '훈이';

STUDENT 테이블의 이름이 훈이인 튜플 삭제

DELETE FROM STUDENT WHERE 전공 = '정보통신공학과';

STUDENT 테이블의 전공이 정보통신공학과인 튜플 모두 삭제


 

DCL (데이터 제어 언어) - 데이터의 보안, 무결성, 회복, 병행제어 등을 정의하는 목적으로 사용하는 언어


GRANT(권한 부여)

-사용자 등급

-DBA : 데이터베이스 관리자

-RESOURCE : 데이터베이스 및 테이블 생성 가능자

-CONNECT : 단순 사용자 ( 데이터베이스에 있는 정보를 검색만 할 수있음)

GRANT RESOURCE TO user_id;
GRANT CONNECT TO user_id;

user_id 사용자 등급 지정

 

 

-테이블 및 속성에 대한 권한 부여

권한 종류

ALL , SELECT,I NSERT, DELETE, UPDATE, ALTER 등

GRANT ALL ON STUDENT TO user_id;

user_id에 STUDENT테이블에 모든 권한 부여


REVOKE(권한 취소)

REVOKE UPDATE ON STUDENT FROM user_id;

user_id에 STUDENT테이블에 UPDATE 권한 취소

 

 


 

COMMIT(변경 내용 DB에 반영)

ROLLBACK(변경된 모든 내용 취소)

SAVEPOINT(ROLLBACK지점 지정)

UPDATE STUDENT SET 전공 = '경영학과' WHERE 이름 = '코난';
COMMIT

변경 내용 DB에 반영

DELETE FROM STUDENT WHERE 이름 = '장미';
SAVEPOINT S1;

SAVEPOINT S1지정 

ROLLBACK TO SAVEPOINT S1;

SAVEPOINT S1으로 돌아감

ROLLBACK;

SAVEPOINT가 없는 경우 COMMIT한 지점으로 돌아감



Calendar
«   2025/03   »
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 31
Tags
더보기
Archives
Visits
Today
Yesterday