SQL) 16번째 회고

2024. 4. 22. 09:50·에이콘아카데미 회고/5회차) 자바기반 풀스택 개발자 양성과정
목차
  1. 1. SQL (Structured Query Language)
  2. 2. 제약조건 (Constraints)
  3. 3. INDEX
  4. 4. 테이블 관련 명령어

1. SQL (Structured Query Language)

구조화된 질의 언어라는 의미로, 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위한 비절차적(Non-Procedural Language) 언어이다. 일반적인 프로그래밍 언어(C, Java)와 같이 구체적인 실행 순서나 방법을 기술하는 절차적 언어(Procedural Language)가 아니라 어떤 데이터를 추출해야 하는지만 기술한다. 질의어지만 질의 기능만 있는 것이 아니라 데이터 구조의 정의, 데이터 조작, 데이터 제어 기능을 모두 갖추고 있다. 이러한 SQL은 DDL, DML, DCL로 분류된다.

 

💡 DDL (Data Definition Language, 데이터 정의어)

DDL문은 데이터베이스 테이블을 생성, 변경, 삭제하는 것으로, 데이터를 저장할 구조를 정의하는 언어이다.

명령어 적용 기능
CREATE SCHEMA 또는 DATABASE 스키마 생성 (데이터베이스 생성)
TABLE 테이블 생성
INDEX 인덱스 생성
VIEW 뷰 생성
ALTER SCHEMA 또는 DATABASE 스키마 수정 (데이터베이스 수정)
TABLE 테이블 수정
DROP
SCHEMA 또는 DATABASE 스키마 삭제 (데이터베이스 삭제)
TABLE 테이블 삭제
INDEX 인덱스 삭제
VIEW 뷰 삭제

 

💡 DML (Data Manipulation Language, 데이터 조작 언어)

DML은 데이터 구조가 DDL로 정의되면 해당 데이터 구조에 데이터를 입력, 수정, 삭제, 조회할 수 있다.

명령어 기능
SELECT 테이블에 존재하는 레코드 중 주어진 조건을 만족하는 데이터를 검색
INSERT 테이블 스키마에 적합한 새로운 데이터를 삽입
DELETE 테이블에서 조건을 만족하는 특정 데이터를 삭제
UPDATD 테이블에서 조건을 만족하는 특정 데이터의 칼럼값을 수정

 

💡 DCL (Date control Language, 데이터 제어 언어)

DDL로 정의된 구조에 어떤 사용자가 접근할 수 있는지 권한을 부여하거나 회수한다.

DBMS의 동작 설명 및 DBMS 접근에 대한 사용자의 권한을 관리하는 SQL 명령어의 집합이며,
GRANT, REVOKE 등의 명령어로 구성된다. 주로 데이터베이스 관리자(DBA)가 사용한다.

명령어 기능
GRANT 데이터베이스에 대한 사용자의 엑세스 권한을 제공
(특정 사용자만 특정 작업을 할 수 있도록 지정 가능)
REVOKE GRANT 명령으로 주어진 엑세스 권한을 회수
 

[Database] DBMS 데이터 언어 _ SQL의 종류

이번 포스팅은 SQL의 종류에 대하여 다루고 있습니다.

velog.io

- 출처 : 정직한 개소리꾼log

 

SQL종류 정리(이론)

SQL이란 (Structured Query Language) '구조화 된 질의 언어'라는 의미로, 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위한 비절차적(non-procedural language)언어이다. 일반적인 프로그래밍

mimi-coding.tistory.com

- 출처 : mini-coding tistory


2. 제약조건 (Constraints)

데이터베이스에서 제약조건(Constraints)은 테이블의 데이터 무결성을 유지하기 위해 사용되는 규칙 또는 제한이다.
제약조건을 사용하면 데이터베이스 내의 데이터가 정확하고 신뢰할 수 있는지 확인할 수 있다.

 

💡 주요 제약조건 유형과 기능에 대한 개요

  1. NOT NULL 제약조건
    테이블의 열에 NULL 값이 허용되지 않도록 한다.
    즉, 해당 열에 반드시 값이 입력되어야 한다.

  2. DOMAIN 제약조건
    특정 열(Column)에 입력할 수 있는 값의 유형, 범위, 형식을 제한하는 데 사용된다.

    기본 데이터 유형에 추가적인 규칙을 적용하여, 열이 받아들일 수 있는 값의 유효성을 보다 엄격하게 제한한다.

  3. UNIQUE 제약조건
    모든 행에 대해 특정 열 또는 열 조합의 값이 각각 고유해야 함을 보장한다.

    이는 키 값이 중복되지 않도록 하여 데이터의 유일성을 확보한다.

  4. PRIMARY KEY 제약조건
    테이블의 각 행을 고유하게 식별하는 열(또는 열의 조합)이다.

    PRIMARY KEY는 자동으로 UNIQUE 및 NOT NULL 제약조건을 가진다.

  5. FOREIGN KEY 제약조건
    한 테이블의 열이 다른 테이블의 PRIMARY KEY를 참조하게 한다.

    이를 통해 두 테이블 간의 관계를 설정하고 참조 무결성을 유지한다.

  6. CHECK 제약조건
    열의 값이 특정 조건을 만족해야 함을 지정한다.

    예를 들어, 어떤 수치 값이 특정 범위 내에 있어야 하거나 문자열이 특정 패턴을 따라야 하는 경우에 사용된다.

  7. DEFAULT 제약조건
    열에 대한 기본값을 설정한다.

    사용자가 값을 명시적으로 제공하지 않을 때, 지정된 기본값이 자동으로 사용된다.

 

📍 각 SQL 제약 조건에 대한 설명과 특징

제약조건 설명 특징
Domain 특정 열(Column)에 저장될 수 있는 값의 범위, 유형, 형식을 제한하는데
사용된다.
데이터 유효성과
일관성 보장
Primary Key 테이블 내의 각 행(Row)을 고유하게 식별하는 열(Column) 또는
열의 조합이다. 한 테이블에 하나의 프라이머리 키만 있을 수 있다.
중복 값 없음
NULL값 불가
Check 특정 열이나 테이블에 대해 특정 조건이 참이 되도록 강제한다.
ex) 나이가 0이상이어야 한다는 조건을 설정할 수 있다.
데이터 유효성 검사
Unique 하나의 열 또는 열 조합 전체에 대해 모든 값이 유일하게 유지되도록
보장한다. 프라이머리 키와 유사하지만 NULL값을 허용할 수 있다.
중복 값 없음
NULL값 가능
Default 열에 대해 명시적인 값이 제공되지 않을 때 사용되는 기본값을 설정한다. 값 입력 간소화
Foreign Key 다른 테이블의 행을 참조하여 두 테이블 간의 관계를 생성한다.
외래 키는 참조하는 테이블의 기본 키와 일치해야 한다.
데이터 무결성
관계형 데이터베이스
구조 유지

 

 

📍 각 SQL 제약 조건에 사용되는 명령문

제약 조건 SQL 명령문 예시
Domain CREATE DOMAIN age AS INT CHECK (value > 0 AND value < 130);
Primary Key CREATE TABLE Students (StudentID INT PRIMARY KEY, Name VARCHAR(100));
Check CREATE TABLE Employees (ID INT, Age INT, CHECK (Age >= 18));
Unique CREATE TABLE Users (UserID INT, Email VARCHAR(255), UNIQUE(Email));
Default CREATE TABLE Products (ProductID INT, Price DECIMAL DEFAULT 0.00);
Foreign Key CREATE TABLE Orders (OrderID INT, CustomerID INT, FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID))
 

[오라클/SQL] 제약조건(Constraints)의 종류와 특성 요약 정리 : PRIMARY KEY, NOT NULL, UNIQUE, FOREIGN KEY, CHECK

1. 제약조건(Constraints)의 개념 제약조건이란, SQL 테이블에 문제되는/결함있는 데이터가 입력되지 ...

blog.naver.com

- 출처 : Haven


3. INDEX

데이터의 검색 속도를 향상시키기 위해 사용되는 데이터 구조이다.
테이블의 하나 이상의 열에 대해 생성되며, 데이터 접근 시간을 줄여 쿼리 성능을 개선한다.
인덱스는 책의 목차와 비슷하게 작동하여, 데이터베이스 엔진이 데이터를 더 빠르게 찾을 수 있도록 도와준다

 

💡 INDEX의 주요 특징

속성 목적
목적 데이터 검색 속도 향상
작동 방식 열의 값에 대한 포인터를 포함하는 데이터 구조를 생성
종류 기본 인덱스, 유니크 인덱스, 복합 인덱스, 전문 인덱스 등
장점 쿼리 성능 개선, 데이터 접근 시간 감소
단점 추가적인 저장 공간 필요, 데이터 삽입, 수정, 삭제 작업 시 성능 저하

 

 

💡 INDEX의 종류

  1. 기본 인덱스(Primary Index)
    주 키(primary key)에 자동으로 생성되며 데이터의 빠른 검색을 돕는다.

  2. 유니크 인덱스(Unique Index)
    열의 모든 값이 고유함을 보장하며 중복을 허용하지 않는다.

  3. 복합 인덱스(Composite Index)
    두 개 이상의 열을 결합하여 인덱스를 생성한다.
    이는 다중 조건의 쿼리 성능을 향상시킨다.

  4. 전문 인덱스(Full-text Index)
    텍스트 콘텐츠를 효율적으로 검색하기 위해 생성되며,
    특정 텍스트 검색 쿼리에 최적화되어 있다.

 

📍 INDEX SQL명령어 예시

인덱스 유형 SQL 예시
기본 인덱스(Primary Index) ALTER TABLE Employees ADD PRIMARY KEY (EmployeeID);
유니크 인덱스(Unique Index) CREATE UNIQUE INDEX idx_username ON Users (Username);
복합 인덱스(Composite Index) CREATE INDEX idx_name_age ON People (LastName, Age);
전문 인덱스(Full-text Index) CREATE FULLTEXT INDEX idx_content ON Posts (Content);
 

[SQL] Index(인덱스)

Index는 RDBMS에서 검색 속도를 높이기 위한 기술이다.TABLE의 컬럼을 색인화(따로 파일로 저장)하여 검색시 해당 TABLE의 레코드를 Full Scan 하는게 아니라 색인화 되어있는 INDEX 파일을 검색하여 검색

velog.io

- 출처 : gil.log

 

[Database] 인덱스(index)란?

1. 인덱스(Index)란? [ 인덱스(index)란? ] 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 만약 우리가 책에서 원하는 내

mangkyu.tistory.com

- 출처 : mangkyu tistory


4. 테이블 관련 명령어

명령어 설명 SQL 예시
CREATE TABLE 새로운 테이블을 생성한다. CREATE TABLE Students
(ID INT, Name VARCHAR(100), Age INT);
ALTER TABLE 기존 테이블의 구조를 수정한다.
열을 추가 하거나 삭제하고, 제약조건을
변경할 수 있다.
ALTER TABLE Students ADD Email VARCHAR(255);
DROP TABLE 기존 테이블을 삭제한다.
테이블과 그 내용이 모두 제거된다.
DROP TABLE Students;
TRUNCATE TABLE 테이블의 모든 행을 삭제하지만
테이블 구조와 그 인덱스는 유지한다.
TRUNCATE TABLE Students;
RENAME TABLE 테이블의 이름을 변경한다. RENAME TABLE Students TO Alumni;
ADD COLUMN 기존 테이블에 새로운 열을 추가한다. ALTER TABLE Students ADD COLUMN Email VARCHAR(255);
DROP COLUMN 기존 테이블에서 열을 제거한다. ALTER TABLE Students DROP COLUMN Email;
MODIFY COLUMN 테이블의 기존 열의 데이터 유형이나
제약 조건을 변경한다.
ALTER TABLE Students MODIFY COLUMN Age INT NOT NULL;
 

[MySQL] SQL 명령어 정리

INNER JOIN: 기준이 되는 테이블 (left table)과 join이 걸리는 테이블(right table) 양쪽 모두에 matching되는 row만 select가 됨.LEFT JOIN: 기준이 되는 테이블 (left table)의 모든 row와 join이 걸리는

velog.io

- 출처 : devdo.log

 

SQL 유저라면 반드시 알아야 할 SQL 명령어 총정리

SQL은 관계형 데이터베이스에서 데이터 정의, 조작, 제어를 위해 사용하는 언어이다. 관계형 데이터베이스를 유일하게 조작할 수 있는 유일한 언어이기 때문에 SQL은 데이터를 다루는 사람에게

for-my-wealthy-life.tistory.com

- 출처 : for-my-wealthy-life tistory


 

벌써 수업을 들은 지 한 달이 다 되어간다. 얼마 안 됐지만 참 많은 걸 배우고 느꼈다.

처음 수업 들은 날 마음먹었던 것 그대로 수업에 임하고 있는데, 나날이 많아지는 수업량과 진도에
까먹을까 봐 블로그에 배운 것 정리하는데만 급급하고 정작 쓰고 싶었던 나의 회고는 못 썼다.. 반성한다ㅜㅜ

 

오늘부터 약 1주 반정도 SQL문을 배운다고 했고, 오늘이 그 첫날이었는데 아직까지는 할만했다.
작년에 정처기 필기를 따놓은 덕에(?) 선생님이 말씀하시는 것이 이해가 빨리 갔고, 오늘 첫 문제를 내주셨는데
오래 걸리기는 했지만 그래도 혼자 힘으로 다 풀었다.
자바에서는 어떻게 해야 하는지 고장 나기 일쑤였는데, 문제가 풀리니까 뭔가 뿌듯하고 기분이 좋았다.

아직 DDL과 DML이 헷갈리긴 하는데 연습 문제 좀 많이 풀어봐야겠다.

 

내일은 정처기 실기 접수 하는 날이다.
물 들어올 때 노 저으라고, 당분간은 정처기 실기 문제집도 풀면서 병행해야겠다.

저작자표시 비영리 변경금지 (새창열림)

'에이콘아카데미 회고 > 5회차) 자바기반 풀스택 개발자 양성과정' 카테고리의 다른 글

SQL) 18번째 회고  (0) 2024.04.28
SQL) 17번째 회고  (0) 2024.04.23
JAVA, SQL) 15번째 회고  (0) 2024.04.19
JAVA) 14번째 회고  (0) 2024.04.19
JAVA) 13번째 회고  (0) 2024.04.17
  1. 1. SQL (Structured Query Language)
  2. 2. 제약조건 (Constraints)
  3. 3. INDEX
  4. 4. 테이블 관련 명령어
'에이콘아카데미 회고/5회차) 자바기반 풀스택 개발자 양성과정' 카테고리의 다른 글
  • SQL) 18번째 회고
  • SQL) 17번째 회고
  • JAVA, SQL) 15번째 회고
  • JAVA) 14번째 회고
유쨈미
유쨈미
박쨈미와의 일상 블로그 ૮ • ﻌ -ა 🤍
유쨈미
주인장 유쨈미
유쨈미
전체
오늘
어제
  • 분류 전체보기
    • 에이콘아카데미 회고
      • 5회차) 자바기반 풀스택 개발자 양성과정

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.2
유쨈미
SQL) 16번째 회고
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.