backend
  • README
  • DOCS
    • Java Docs
    • Servlet Docs
    • JSP Docs
    • DB & SQL Docs
    • Spring Boot Docs
    • Spring Security Docs
    • AWS Docs
  • 설치하기
    • Intellij 설정
  • 자바
    • 01 Java란?
    • 02 자바 시작하기
    • 03 자료형과 연산자
    • 04 제어문
    • 05 메소드
    • 06 클래스 기초
      • Static 보충자료
      • 패키지 보충자료
    • 07 객체지향 프로그래밍
    • 08 클래스 더 알아보기
      • 열거형 ENUM 보충자료
    • 09 클래스와 자료형
      • 다형성 보충자료
      • 제네릭 보충자료
    • 10 컬렉션 프레임워크
      • 컬렉션 프레임워크 보충자료
    • 11 람다식과 함수형 프로그래밍
      • 람다식 보충자료
    • 12 오류 대비하기
      • 오류 보충자료
    • 13 멀티태스킹
      • 멀티태스킹 보충자료
    • 교재보충
      • java.lang
  • 스프링
    • 서블릿, JSP
      • 05 Servlet(서블릿)
        • 서블릿 보충자료
        • 서블릿 추가코드
        • XML, YAML, JSON
      • 06 JSP(자바 서버 페이지)
        • JSP 보충자료
      • 07 JSTL(JSP 스탠다드 태그 라이브러리)
        • JSTL 보충자료
      • 08 Cookie(쿠키), Session(세션)
      • 09 서블릿,필터,리스너
        • 서블릿,필터,리스너 보충자료
      • 11 도서관리 프로젝트 실습
    • Spring Boot
      • 01 스프링 등장 배경, 객체지향
        • 스프링 등장 배경, 객체지향 보충자료
      • 02 IOC(제어의 역전), DI(의존성 주입)
        • IOC 보충자료
        • DI 보충자료
      • 03 스프링 구조
        • 스프링 구조 보충설명
      • 04 테스트코드 실습
      • 05 스프링 빈 설정
        • 스프링 빈 설정 보충자료
      • 06 싱글톤
        • 싱글톤 보충 자료
      • 07 스프링 빈 자동설정
        • 스프링 빈 자동설정 보충자료
      • 08 빈 생명주기
        • 빈 생명주기 보충자료
      • 09 빈 스코프
        • 빈 스코프 보충자료
      • 10 스프링 MVC
        • 스프링 MVC 보충자료
        • 데이터베이스 연동에 필요한 부분
      • 11 Validation(검증)
        • Validation(검증) 보충자료
      • 12 Bean Validation(빈검증)
        • Bean Validation(빈검증) 보충자료
      • 13 예외처리
        • 예외처리 보충자료
      • 14 타입변환
      • 15 JDBC(Java Database Connectivity)
      • 16 커넥션풀
      • 17 트랜잭션
        • 트랜잭션 보충자료
      • 18 JDBC 템플릿 활용
      • 19 MyBatis
      • 20 JPA(Java Persistence API)
      • 22 게시판 프로젝트 실습
    • Spring Security
      • 보안(Security)
      • Spring Security
      • 2. Spring Security 알아보기
        • 보안 위협 실제 사례와 방어 전략
      • 3. Spring Security 기본 동작 흐름
      • 4. Spring Security로 인증 권한 추가하기
        • Spring Security의 인증 및 인가
      • 5. Spring Security에서 세션 관리하기
        • 세션(Session)과 쿠키(Cookie) 비교, 토큰(Token)과의 관계
        • 해싱 및 해싱알고리즘
        • base64
      • 6. Spring Security 악용 보호
        • SameSite
      • 7. Spring Security로 인가 권한 추가하기
      • 8. Bcrypt(비크립트) 암호화
      • OAuth2 적용하기
  • 네트워크
    • HTTP
    • OSI 7계층
  • DB&SQL
    • 01 Database(데이터베이스)와 SQL 개요
    • 02 관계형 모델
    • 03 집합
    • 04 JOIN 연산
    • 05 MySQL
      • 세이브포인트
      • DBeaver, Mysql 오토커밋 설정 관련
    • 06 SQL 기초
      • 예시데이터 쿼리문
    • 07 SQL 실습
      • 실습 스키마
    • 08 Join 활용
      • 실습스키마
    • 09 SQL 활용
      • 실습스키마
    • 10 정규화
      • 실습 스키마
    • 데이터타입
    • 예시 프로젝트 스키마 구성
  • AWS
    • SSL 연결하기
    • 보충설명
Powered by GitBook
On this page
  1. DB&SQL
  2. 07 SQL 실습

실습 스키마

-- trim() 내장함수 실습용 --
CREATE TABLE trim_practice (
    product_id INT PRIMARY KEY,
    product_name VARCHAR(100)
);

INSERT INTO trim_practice (product_id, product_name)
VALUES
(1, '  Apple iPhone  '),
(2, '***Samsung Galaxy***'),
(3, '---Sony PlayStation---'),
(4, '   Microsoft Surface   '),
(5, '%%%Dell XPS%%%'),
(6, '*** Google Pixel ***');
-- typedata 내장함수 실습용 --
CREATE TABLE type_data (
    id INT PRIMARY KEY,
    original_value VARCHAR(20) -- 숫자로 변환해야 할 문자열
);

INSERT INTO type_data (id, original_value)
VALUES 
(1, '123.45'),
(2, '1000'),
(3, ‘a12b34c'),  -- 숫자가 포함된 잘못된 문자열
(4, '450'),
(5, ' 200 '), -- 앞뒤 공백이 포함된 문자열
(6, 'text');  -- 순수 문자열
--형변환 테스트--
CREATE TABLE encoding_test (
    id INT PRIMARY KEY,
    text_data VARCHAR(255)
);

INSERT INTO encoding_test (id, text_data)
VALUES 
(1, 'Hello, World!'),        -- ASCII 문자열
(2, '¡Hola, Mundo!'),        -- 라틴 문자
(3, '안녕하세요'),            -- 한글 (UTF-8이 필요함)
(4, 'Café');                 -- 특수 문자 포함 라틴 문자

products 스키마

CREATE TABLE encoding_test (
    id INT PRIMARY KEY,
    text_data VARCHAR(255)
);

INSERT INTO encoding_test (id, text_data)
VALUES 
(1, 'Hello, World!'),        -- ASCII 문자열
(2, '¡Hola, Mundo!'),        -- 라틴 문자
(3, '안녕하세요'),            -- 한글 (UTF-8이 필요함)
(4, 'Café');                 -- 특수 문자 포함 라틴 문자

students 스키마

CREATE TABLE students (
    student_id INT PRIMARY KEY,
    student_name VARCHAR(100),
    grade INT,
    score DECIMAL(5, 2),
    attendance INT
);

INSERT INTO students (student_id, student_name, grade, score, attendance)
VALUES
(1, '김철수', 1, 85.50, 20),
(2, '이영희', 1, 90.00, 18),
(3, '박민수', 2, NULL, 22),
(4, '최지훈', 2, 78.00, NULL),
(5, '한지수', 3, 88.75, 19),
(6, '정다영', 3, 92.00, 20),
(7, '신동훈', 2, 75.50, 21),
(8, '강민준', 3, NULL, 23),
(9, '오혜린', 1, 82.25, NULL),
(10, '조하늘', 3, 95.00, 24);

employees 스키마

CREATE TABLE `employees` (
  `employee_id` int NOT NULL,
  `name` varchar(50) NOT NULL,
  `salary` decimal(10,2) DEFAULT NULL,
  `department_id` int NOT NULL,
  `hire_date` datetime NOT NULL,
  `manager_id` int DEFAULT NULL,
  PRIMARY KEY (`employee_id`)
)

INSERT INTO employees (employee_id, name, salary, department_id, hire_date, manager_id) VALUES
(1, '유재석', 9500.00, 1, '2008-01-01 00:00:00', NULL),
(2, '박명수', 8000.00, 1, '2008-01-01 00:00:00', 1),
(3, '정준하', 7000.00, 1, '2020-01-01 00:00:00', 2),
(4, '정형돈', 7000.00, 1, '2020-01-01 00:00:00', 2),
(5, '노홍철', 6500.00, 2, '2024-01-01 00:00:00', 2),
(6, '하하', 6000.00, 2, '2024-01-01 00:00:00', 3),
(7, '홍길동', 6000.00, 3, '2024-01-01 00:00:00', 3),
(8, '김영희', 7200.00, 4, '2024-01-01 00:00:00', 4),
(9, '김상덕', 6000.00, 4, '2024-01-01 00:00:00', 4),
(10, '최철수', 8000.00, 2, '2024-01-01 00:00:00', 4);

CREATE TABLE SQL 문

CREATE TABLE members (
    idx INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    mobile VARCHAR(20),
    address VARCHAR(100),
    gender CHAR(1) CHECK (gender IN ('남', '여')),
    age INT
);

INSERT INTO SQL 문

INSERT INTO members (idx, name, mobile, address, gender, age) VALUES
(1, '승민', '010-1234-1234', '서울', '남', 31),
(2, '병곤', '010-1111-1111', '서울', '남', 21),
(3, '해리', NULL, '부산', '여', 25),
(4, '희수', '010-3333-3333', '인천', '여', 19),
(5, '성현', NULL, '양양', '남', 39),
(6, '호현', '010-5555-5555', '제주', '남', 45),
(7, '소원', '010-6666-6666', '전주', '여', 30),
(8, '종섭', '010-7777-7777', '부산', '남', 52);
Previous07 SQL 실습Next08 Join 활용

Last updated 5 months ago