Backend/SQL 14

[SQL] INDEX

1. 데이터베이스에서 특정 단어 중심의 조회특정 단어 중심 조회란 사용자가 입력한 특정 단어나 키워드를 중심으로 데이터를 검색하는 것을 의미합니다. 예를 들어, 고객 이름이 "홍길동"인 레코드를 검색하거나 상품 이름에 "노트북"이 포함된 데이터를 조회하는 것입니다.대규모 데이터베이스에서 특정 단어를 검색할 때는 단순 순차 검색(Sequential Search)보다는 색인을 활용해 검색 속도를 높이는 것이 중요합니다.2. 인덱스인덱스(index)는 데이터베이스 테이블의 특정 열에 대해 검색 속도를 높이기 위해 별도로 구성된 데이터 구조입니다.책의 목차처럼, 인덱스는 특정 단어나 값을 빠르게 찾아가기 위한 참조 정보를 제공합니다.인덱스은 테이블의 특정 열에 대한 정렬된 가상 테이블로서, 데이터가 추가되거나 ..

Backend/SQL 2024.10.30

[SQL]JDBC

JDBC: 자바 응용 프로그램과 여러 종류의 데이터베이스 사이를 연결하는 표준 인터페이스. 데이터베이스 연결 try { // MariaDB JDBC 드라이버 로드 Class.forName("org.mariadb.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println("[에러] 드라이버 로딩 실패: " + e.getMessage()); } // 데이터베이스 연결 정보 String url = "jdbc:mariadb://localhost:3306/[ ]"; // 데이터베이스 URL String use..

Backend/SQL 2024.10.30

[SQL]데이터베이스 집합 연산

데이터베이스 집합 연산은 SQL에서 두 개 이상의 쿼리 결과 집합을 결합하여 하나의 결과로 출력하는 연산입니다.이를 통해 여러 쿼리 결과를 합치거나 중복을 제거할 수 있습니다. UNION 합집합SELECT 컬럼명 FROM 테이블1UNIONSELECT 컬럼명 FROM 테이블2;UNION : 중복된 행 제거SELECT 컬럼명 FROM 테이블1UNION ALLSELECT 컬럼명 FROM 테이블2;UNION ALL : 중복 행도 포함하여 반환 INTERSECT 교집합공통된 행만 반환 (중복된 값 제거)SELECT 컬럼명 FROM 테이블1INTERSECTSELECT 컬럼명 FROM 테이블2;*주의: INTERSECT는 MySQL에서 기본적으로 지원하지 않으므로 MySQL을 사용하는 경우 INNER JOIN이나 E..

Backend/SQL 2024.10.29

[SQL]데이터베이스 백업/복원

1. mysqldump를 사용한 백업mysqldump는 MySQL과 MariaDB에서 제공하는 데이터베이스 백업 도구로, 데이터를 SQL 덤프 파일로 저장할 수 있습니다. 백업은 주로 데이터베이스 단위와 테이블 단위로 나눌 수 있습니다. 1) 데이터베이스 단위로 백업 명령어 mysqldump -u 사용자이름 -p 데이터베이스이름 > 데이터베이스백업.sql-- >데이터베이스백업.sql : 백업 파일을 저장할 경로와 파일명을 지정 예시-- sample_db라는 데이터베이스 전체를 sample_db_backup.sql 파일로 백업mysqldump -u root -p sample_db > sample_db_backup.sql   2) 테이블 단위로 백업명령어 구조:--특정 테이블만 백업=>데이터베이스 이름과 테..

Backend/SQL 2024.10.29

[SQL] DCL(Data Control Language)

DCL(Data Control Language) : 데이터베이스의 접근을 제어하기 위한 명령어GRANTREVOKE[권한의 종류]데이터 권한 : SELECT, INSERT, UPDATE, DELETE 등 데이터에 대한 접근 권한객체 권한 : CREATE, ALTER, DROP 등 데이터베이스 객체에 대한 권한관리 권한 : GRANT OPTION, SUPER 등 시스템 또는 권한 관리에 대한 권한GRANT사용자에게 데이터베이스 객체에 대한 권한(테이블, 뷰, 프로시저 등)을 부여하는 명령어GRANT 권한리스트 ON 객체 TO '사용자'@'호스트';SELECTINSERTUPDATEDELETEALL PRIVILEGES : 모든 권한 부여 REVOKE 특정 사용자에게 부여된 권한을 회수하거나 취소하는 명령어REV..

Backend/SQL 2024.10.29

[SQL] 데이터베이스 사용자

사용자 확인1. 현재 접속된 사용자 확인: SELECT USER()SELECT USER();+----------------+| user() |+----------------+| root@localhost |+----------------+설명: 현재 접속된 데이터베이스 사용자 계정을 확인할 수 있습니다.출력: user@hostname 형식으로 현재 접속 중인 사용자 정보가 출력됩니다.2. 특정 사용자의 생성 쿼리 확인: SHOW CREATE USERSHOW CREATE USER;특정 사용자의 생성 쿼리와 속성을 확인할 수 있습니다3. 모든 사용자 계정 목록 확인 SELECT User, Host FROM mysql.user;+-------------+-----------------+| Use..

Backend/SQL 2024.10.29

[SQL] 뷰(VIEW)

뷰(View) 뷰(View)는 데이터베이스에서 특정 쿼리의 결과를 마치 하나의 테이블처럼 사용할 수 있도록 만들어진 가상의 테이블입니다. 뷰는 실제 데이터를 저장하지 않고, 기존 테이블의 데이터에서 추출된 결과를 저장하는 쿼리로 구성됩니다. 뷰를 통해 테이블의 복잡한 데이터를 쉽게 조회하고, 특정 사용자에게 필요한 정보만 제한적으로 제공할 수 있습니다. 뷰의 특징가상 테이블특정 쿼리의 결과를 테이블처럼 사용보안 및 접근 제한[기본구조]CREATE VIEW 뷰이름 ASSELECT 열1, 열2, ...FROM 테이블명WHERE 조건;데이터베이스 내 뷰 확인-- 테이블의 유형을 확인하는 명령 ( 뷰와 테이블 구분 가능 )SHOW FULL TABLES; 예제 : 부서 번호가 20인 직원 정보만 조회할 수 있도록..

Backend/SQL 2024.10.29

[SQL] 제약조건(Constraints)

제약 조건 (Constraints)제약 조건은 데이터베이스에서 데이터의 무결성을 보장하기 위해 설정하는 규칙입니다.제약 조건을 통해 테이블에 삽입되는 데이터의 형식과 일관성을 유지할 수 있으며, 잘못된 데이터 입력을 방지합니다.제약 조건설명키워드필수 입력특정 열에 반드시 값이 있어야 함NOT NULL중복 방지중복된 값을 허용하지 않음UNIQUE필수 + 중복 방지고유하고 NULL 값이 없는 기본 키PRIMARY KEY참조다른 테이블의 값을 참조하여 일관성 유지FOREIGN KEY값 검사특정 조건을 만족하는 값만 허용CHECK기본값 설정값을 입력하지 않으면 기본값이 자동 입력됨DEFAULT [제약조건의 기본 문법] 컬럼 단위 - 컬럼을 생성할 때 정의 CREATE TABLE 테이블명 ( 컬..

Backend/SQL 2024.10.29

[SQL] 참조키 : 기본키, 외래키

PRIMARY KEY와 FOREIGN KEY의 관계참조되는 키 (PRIMARY KEY): 테이블의 각 행을 고유하게 식별하며, 다른 테이블에서 외래 키로 참조될 수 있습니다.참조하는 키 (FOREIGN KEY): 다른 테이블의 PRIMARY KEY를 참조하여 두 테이블 간의 관계를 나타내며, 참조 무결성을 보장합니다. PRIMARY KEY (기본 키)역할: 한 테이블에서 각 행을 고유하게 식별하는 열로, 기본적으로 중복값과 NULL 값을 허용하지 않습니다.특징:용도: PRIMARY KEY는 테이블의 특정 행을 고유하게 식별하기 때문에, 이 열을 다른 테이블이 참조하는 기준 열로 사용할 수 있습니다.CREATE TABLE dept_p ( deptno INT(2) PRIMARY KEY, dname..

Backend/SQL 2024.10.29

[SQL] DDL(Data Definition Language)

DDLDDL (Data Definition Language): 데이터베이스 내의 구조를 정의하고 변경할 때 사용되는 언어입니다. 주로 테이블, 인덱스, 뷰, 스키마 등을 생성하고 관리하는 명령어로 구성되어 있습니다.데이터베이스와 테이블, 뷰, 인덱스 등의 데이터 구조를 설계하고 설정하는 것입니다.데이터베이스의 설계 단계에서 주로 사용되며, 데이터 저장소의 틀을 정의하는 데 중점을 둡니다.데이터를 직접 변경하는 것이 아닌, 데이터를 담을 구조를 생성하고 관리하는 작업에 사용됩니다.데이터베이스의 두가지 의미데이터베이스 시스템 (Database System)데이터베이스 (Database) 1. 데이터베이스 생성 및 삭제데이터베이스 생성 (CREATE DATABASE)데이터베이스를 생성하려면 CREATE DAT..

Backend/SQL 2024.10.28