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한 지점으로 돌아감