목록개발공부/SQL (6)
개발자 도전기
Dynamic SQL사용할 SQL문이 Runtime시에 결정되어 SQL 쿼리를 동적으로 수행할 수 있게 해줍니다SQL문 내부에서 사용합니다 https://mybatis.org/mybatis-3/dynamic-sql.html mybatis – MyBatis 3 | Dynamic SQLDynamic SQL One of the most powerful features of MyBatis has always been its Dynamic SQL capabilities. If you have any experience with JDBC or any similar framework, you understand how painful it is to conditionally concatenate strings of S..

집계함수란?집계 함수는 값들의 집합을 계산해서 하나의 값을 리턴하는 함수입니다COUNT(*)를 제외하고 NULL 값을 무시합니다SELECT문에서 GROUP BY절과 함께 사용됩니다WHERE절에는 집계함수를 사용할 수 없고 GROUP BY 후 HAVING절에 집계함수를 사용해야 한다 1) COUNT특정 열의 갯수를 반환합니다COUNT(*) 로 작성하면 테이블에 존재하는 행의 갯수 반환COUNT(특정 열) : NULL값을 제외한 특정 열의 갯수 반환# NULL을 제외한 EmployeeId의 행 갯수 반환SELECT COUNT(EmployeeId)FROM Employees; 2) MAX, MIN특정 열의 최댓값과 최솟값을 반환합니다-- 가장 어린 사람의 생년월일SELECT MAX(BirthDate)FROM E..

JOIN여러 테이블을 묶어서 조회할 때 사용합니다두 개 이상의 테이블을 결합시킵니다 cartesian productCROSS JOIN으로 두 테이블의 모든 행을 조인합니다컬럼수는 두 테이블의 컬럼 수의 합, 행(레코드) 수는 두 테이블 행의 수의 곱이 됩니다 SELECT *FROM table1 JOIN table2; INNER JOIN두 테이블에 모두 있는 값만 출력합니다SELECT *FROM table1 JOIN table2 ON col1 = col2; LEFT OUTER JOININNER JOIN 값과 왼쪽 테이블의 모든 값을 출력합니다OUTER는 생략 가능합니다SELECT *FROM table1 LEFT OUTER JOIN table2 ON col1..
정규화란?데이터베이스 정규화는 데이터베이스 내의 구조를 조직화하고 최적화하는 과정입니다 정규화를 하는 이유데이터의 중복을 줄이고 데이터의 무결성을 보장한다데이터 효율을 높인다이상 현상을 방지한다일반적으로 제1~3정규화를 진행합니다 이상현상데이터 정규화를 하지 않은 데이터베이스는 다음과 같은 이상현상이 발생할 수 있습니다👉 고객 정보와 주문 정보를 같은 레코드에 저장하는 데이터베이스를 예로 들면,삽입 이상(Insertion Anomaly) : 새로운 데이터를 삽입할 때 원하지 않는 문제가 발생합니다👉 새로운 고객을 등록하려 할 때, 주문 정보가 없어 삽입이 불가능 할 수 있다삽입삭제 이상(Delete Anomaly) : 특정 데이터 삭제 시, 다른 데이터도 함께 손실되는 현상이 발생합니다👉 고객의 정..
데이터 타입(DATA TYPE)문자열- VARCHAR(글자수)문자열 타입을 저장할 수 있고 저장할 수 있는 최대길이를 ()안에 넣습니다지정된 글자수를 초과하면 저장할 수 없습니다# 문자열# varchar(길이)CREATE TABLE my_table3( name VARCHAR(3), title varchar(5), notes VARCHAR(1000));INSERT INTO my_table3(name, title, notes)VALUES ('이강인', '축구선수', '파리셍제르망');# 에러 발생(글자수 초과)INSERT INTO my_table3(name, title, notes)VALUES ('네이마르', '야구선수', '사우디아라비아'); TEXTVARCHAR보다 많은 문자열을 저장할..
스키마(schema)데이터베이스의 구조를 정의하는 개념테이블을 포함한다// 스키마 생성하기CREATE DATABASE test1; SHOW데이터베이스 목록이나 테이블 목록을 보여준다SHOW tables; 테이블(Tables)데이터를 저장하는 데 사용하는 구조적 객체열(Column)과 행(Row)으로 구성되어 있으며 각 열은 특정 데이터 유형을 가진다# 행(records, data, row), 열(field, attribute, column)로 이루어져 있음# 새 테이블 만들기CREATE TABLE test1.test( id int, name varchar(20)); SELECT데이터 베이스 조회하기# 데이터베이스명.테이블명# * ..