[혼자공부하는SQL] 15강
·
💻 개발/📀 MySQL
06-1. 인덱스 개념을 파악하자1. 인덱스의 개념SELECT를 사용해서 테이블을 조회할 때 결과를 빠르게 도출하도록 도와주는 기능이다.인덱스가 반드시 필요한 것은 아니지만, 실무에서는 데이터의 양이 엄청 많기 때문에 인덱스가 필요하다1) 인덱스의 문제점무리하게 많이 사용할 때, 더 느려지거나 시스템에 문제가 생기는 경우가 있다.필요 없는 인덱스를 만드는 바람에 데이터베이스가 차지하는 공간만 더 늘어나고, 인덱스를 이용해서 데이터를 찾는 것이 전체 테이블을 찾아보는 것보다 느려진다.2) 인덱스의 장점과 단점(1) 장점SELECT문으로 검색하는 속도가 매우 빨라진다.그 결과 컴퓨터의 부담이 줄어들면서 결국 전체 시스템의 성능이 향상된다.(2) 단점인덱스도 공간을 차지해서 데이터베이스 안에 추가적인 공간이 ..
[혼자공부하는SQL] 14강
·
💻 개발/📀 MySQL
05-3. 가상의 테이블 : 뷰0. 시작하기 전에뷰는 데이터베이스 개체 중 하나이다.뷰는 한 번 생성해 놓으면, 테이블이라고 생각하고 사용해도 괼 정도로, 사용자들의 입장에서는 테이블과 거의 동일한 개체로 취급된다.뷰의 종류 : 단순 뷰(하나 테이블과 연관된 뷰), 복합 뷰(2개 이상의 테이블과 연관된 뷰)1) 뷰의 기본 생성(1) 형태CREATE VIEW 뷰_이름AS SELECT 문;(2) 뷰를 만든 후 접근 방법SELECT 열_이름 FROM 뷰_이름 [WHERE 조건];(3) 예시-- 뷰 생성CREATE VIEW v_memberASSELECT mem_id, mem_name, addrFROM member;-- 뷰로부터 검색SELECT *FROM v_member;SELECT mem_name, ..
[혼자공부하는SQL] 13강
·
💻 개발/📀 MySQL
05-2. 제약 조건으로 테이블을 견고하게0. 시작하기 전에테이블을 만들 때는 테이블의 구조에 필요한 제약조건을 설정해줘야 한다.이를 잘 활용하면 데이터의 오류를 줄여 완전무결한 코드를 만들 수 있다.종류 : 기본 키(Primary Key), 외래 키(Foreign Key), 고유 키 (Unique), 체크(Check), 기본값(Default), NOT NULL중복되지 않은 열에 고유 키를 지정할 수 있다.1. 제약조건의 기본 개념과 종류제약 조건은 데이터의 무결성을 지키기 위한 조건이다.데이터의 무결성 : 데이터에 결함이 없음이러한 결함을 방지하기 위해서 기본키를 지정할 수 있다.기본키의 조건 : 중복되지 않고, 비어 있지도 않음대표적인 제약 조건기본 키(Primary Key)외래 키(Foreign K..
[혼자공부하는SQL] 12강
·
💻 개발/📀 MySQL
05-1. 테이블 만들기0. 시작하기 전에테이블은 표로 구성된 2차원 구조로, 행과 열로 구성되어 있다.행운 로우나 레코드라 부르며, 열은 컬럼 또는 필드라고 부른다.1. 데이터베이스와 테이블 설계하기1) 테이블의 구조 정의: 테이블에 데이터 형식을 지정하는 데 정답은 없다.2) 데이터베이스 만들기DROP DATABASE IF EXISTS naver_db;CREATE DATABASE naver_db;3) 테이블 만들기USE naver_db;DROP TABLE IF EXISTS member;CREATE TABLE member( mem_id CHAR(8) NOT NULL PRIMARY KEY, mem_name VARCHAR(10) NOT NULL, mem_number TINYINT NOT N..
[혼자공부하는SQL] 11강
·
💻 개발/📀 MySQL
04-3. SQL 프로그래밍0. 시작하기 전에1) 스토어드 프로시저는: MySQL에서 프로그래밍 기능이 필요할 때 사용하는 데이터베이스 개체이다.: SQL 프로그래밍은 기본적으로 스토어드 프로시저 안에 만들어야 한다.2) 구조DELIMITER $$ -- 스토어드 프로시저의 코딩 부분CREATE PROCEDURE 스토어드_프로시저_이름()BEGIN-- 이 부분에 SQL 프로그래밍 코딩END $$ -- 스토어드 프로시저 종료DELIMITER; -- 종료 문자를 다시 세미콜론(;)으로 변경CALL 스토어드_프로시저_이름(); -- 스토어드 프로시저 실행(1) 일반적으로 구분문자(DELIMITER)는 $$를 많이 사용하지만, 원한다면 /, &, Q 등을 사용해도 상관없다. 다른 기호와 중복될 수 있으므로, 기호..
[혼자공부하는SQL] 10강
·
💻 개발/📀 MySQL
04-2. 두 테이블을 묶는 조인0. 시작하기 전에조인(join) : 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어내는 것예시: 회원 테이블에는 회원의 이름과 연락처가 있고, 구매 테이블에는 회원이 구매한 테이블이 있다. 물건을 배송하려면, 회원 테이블의 회원 이름과 연락처, 구매 테이블의 회원이 구매한 물건에 대한 정보가 함께 필요하다.1. 내부 조인조인이라 부르면, 내부 조인을 의미한다.1) 일대다 관계의 이해 (one to many)(1) 예시일대다 관계 = PK-FK 관계(2) 기본키 / 외래키기본키 (Primary key)외래키 (Foreign key)2) 내부 조인의 기본(1) 내부 조인의 형식SELECT FROM INNER JOIN ON [WHERE 검색 조건]INNER ..
[혼자공부하는SQL] 9강
·
💻 개발/📀 MySQL
04-1. MySQL의 데이터 형식0. 시작하기 전에테이블을 만들 때는 테이터 형식을 설정해야 한다.데이터 형식 : 숫자형, 문자형, 날짜형실제로 저장될 데이터의 형태가 다양하기 때문에, 다양한 데이터 형식이 존재한다.1. 데이터 형식1) 정수형정수형은 소수점이 없는 숫자를 의미한다.이름만 들어도 대략 길이가 올 것이다.형태 USE market_db; CREATE TABLE hongong4 ( tinyint_col TINYINT, smallint_col SMALLINT, int_Col INT, bigint_col BIGINT );예시 -- 정상 범위 INSERT INTO hongong4 VALUES (127, 32767, 2147483647, ..
[혼자공부하는SQL] 8강
·
💻 개발/📀 MySQL
03-3. 데이터 변경을 위한 SQL문0. 시작하기 전에데이터베이스와 테이블을 만든 후에는 데이터를 변경하는, 즉 입력/수정/삭제하는 기능이 필요하다.입력 : INSERT수정 : UPDATE삭제 : DELETE1. 데이터 입력 : INSERT1) INSERT 문의 기본 문법INSERT INTO 테이블 [(열1, 열2, ...] VALUES (값1, 값2, ...)테이블 이름 다음에 나오는 열은 생략이 가능하다.열 이름을 생략할 경우에 VALUES 다음에 나오는 값들의 순서 및 개수는 테이블을 정의할 때의 열 순서 및 개수와 동일해야 한다.USE market_db;CREATE TABLE hongong1 (toy_id INT, toy_name CHAR(4), age INT);-- 일반적인 입력 (열을 생략)..
[혼자공부하는SQL] 7강
·
💻 개발/📀 MySQL
03-2. 좀 더 깊게 알아보는 SELECT 문0. 시작하기 전에SELECT 문에서는 결과의 정렬을 위한 ORDER BY, 결과의 개수를 제한하는 LIMIT, 중복된 데이터를 제거하는 DISTINT등을 사용할 수 있다.GROUP BY절은 지정한 열의 데이터들을 같은 데이터끼리 묶어서 결과를 추출한다.HAVING 절을 통해 조건식을 추가할 수 있다.HAVING 절은 WHERE 절과 비슷해 보이지만, GROUP BY 절과 함께 사용되는 것이 차이점이다.1. ORDER BY절1) SELECT 절의 형식SELECT 열_이름 FROM 테이블_이름 WHERE 조건식 GROUP BY 열_이름 HAVING 조건식 ORDER BY 열_이름 LIMIT 숫자위의 순서는 지켜져야 한다. (ex..
[혼자공부하는SQL] 6강
·
💻 개발/📀 MySQL
03-1. 기본 중에 기본 SELECT ~ FROM ~ WEHERE0. 시작하기 전에SELECT문은 구축이 완료된 테이블에서 데이터를 추출하는 기능을 한다.기본 형식SELECT (열 이름) FROM (테이블 이름) WHERE (조건식): 기존에 있는 데이터를 가져와서 볼 뿐이지, 변경을 하는 것은 아니다.1. 실습용 데이터베이스 구축1) 실습용 데이터베이스 개요2) 데이터 추가하기(1) File → ‘Open SQL Script’를 누른다.(2) 파일을 선택한 후, 번개 모양 아이콘을 눌러 파일을 실행한다.3) 명령문 분석하기DROP DATABASE IF EXISTS market_db; -- 만약 market_db가 존재하면 우선 삭제한다.CREATE DATABASE market_db;USE market..