본문 바로가기

SQL

(13)
외래키 Foreing Key 왜래 키(Foreing Key) 왜래키는 테이블간의 연관관계(Relation Ship)를 표현할때 사용한다.연관관계는 대표적으로 3가지의 형태로 표현 가능하다.① . 1:1 형태1명의 사용자는(user) 1개의 사용자 정보(userInfo)를 가질 수 있다. ★ 1:1 은 순정남② . 1:N 형태1명의 사용자는 여러개의 주문(order)을 할 수 있다.★1:N은 한쪽이 바람피는것과 같음 😥③ . N:M 형태여러명의 학생은 여러개의 학원을 등록할 수 있다.★N:M은 서로가 1:N의 관계 즉 맞바람을 피는것과 같다.🤪 외래 키 제약조건 심화외래 키의 경우 다른 테이블과 관계를 맺고있는 참조데이터가 삭제(DELETE) 또는 수정(UPDATE) 될때 어떤 행위를 해야하는지 설정할 수 있다.이런 행위를 수행하..
제약조건(Constraint) 제약조건 이란?제약조건은 각 컬럼들간의 제한상황을 관리하고 조건을 위반하는 데이터를 방지하여 데이터 베이스의 무결성(Integrity) 을 보장하는 규칙이다.제약조건은 하나의 애플리케이션에서 여러 사용자의 데이터를 처리한다 가정할경우(회원가입등)사용자의 이메일이 중복 되는경우나 이메일이 아닌 다른 데이터로 사용자를 고유하게 구별할 수 없다면 해당 사용자의 정보를 정확하게 가져올 수 없다. 이런 문제를 해결하기위해 제약조건을 사용한다.약조건은 데이터베이스 테이블을 분석할때 설정된 컬럼의 속성을 바탕으로 해당 테이블이 어떤 역할을 하는지 어떤 데이터를 저장하고 있는지 명확하게 인지 할 수 있도록 도와준다.★ 무결성 : 데이터가 결함없이 정확하고 완전한 상태를 의미한다. 제약조건의 종류고유(unique)제약조..
SQL의 종류 SQLSQL이란?데이터 베이스에서 사용되는 생성,삽입,조회 명령문을 SQL이라고한다. SQL의 종류DDL (Data Definition Language)데이터를 정의할때 사용한다.테이블이나 데이터 베이스를 생성,수정,삭제 와 같은 행위를 할때 사용한다. ㅇ ① . CREATE : DATABASE , TABLE , VIEW , INDEX 등을 생성할때 사용한다.CREATE DATABASE 데이터베이스명 ; CREATE TABLE 테이블명 {컬럼명 컬럼속성} ② . DROP : DATABASE , TABLE , VIEW , INDEX 등을 삭제할때 사용한다.DROP DATABASE 데이터베이스명;DROP TABLE 테이블명 ③ . ALTER : DATABASE , TABLE , VIEW , INDEX 등의 ..
SQL WITH WITHWITH  란?WITH 절은 CommonTableExpressions CTE 라고 불리는 구조를 정의하는데 사용된다.CTE는 복잡한 쿼리를 읽기 쉽고 관리하기 쉽게 만드는데 도움이 되는 임시결과집합을 정의한다.CTE는 쿼리의 가독성을 높이고 서브쿼리를 반복적으로 사용할때 유용하다. 기본구조WITH CTE이름 AS (SELECT 컬럼1,컬럼2,...FROM 테이블WHERE 조건) 예시//임시테이블WITH NAME (SELECT NAME_ID AS ID,NAME,...FROM TABLEWHERE NAME_ID
ROUND , 날짜/시간 정보를 추출하는함수 ROUNDROUND 란?숫자 값을 지정된 수소점 이하 자릿수로 반 올림 한다. 기본구조ROUND(반올림할 컬럼 혹은 숫자 , 반올림할 자릿수) 예시ROUND(123.456, 1) // 123.5ROUND(123.456, 2) // 123.46ROUND(123.456, 0) // 123ROUND(123.456,-1) // 120ROUND(123.456,-2) // 100//ROUND는 소수점의 시작지점부터 1 2 3 순으로 셀 수 있다.//123.456 은 -2,-1,0,1,2,3 의 순으로 셀 수 있다//지정한 자리를 기준으로 반올림한다.날짜 / 시간 정보를 추출하는법  YEAR() // 연도추출SELECT YEAR(DATE)MONTH() // 월 추출SELECT MONTH(DATE)DAY() // 일 ..
JOIN 과 WINDOW FUNCTION JOIN  의 기본 구조 JOIN 은 필요한 데이터가 서로다른 테이블에 있을때 조회할수 있게해준다.주문가격은 테이블1에 있지만 주문고객은 테이블 2에 있을때 등등 여러가지 상황에서 사용할수있다. JOIN의 종류는 2가지로 LEFT JOIN : 공통컬럼 을 기준으로 하나의 테이블에 값이 없더라도 모두 조회한다. 테이블 1 , 2 모두 "숫자" 라는 공통컬럼이 존재한다 가정한다.기존데이터 == 조회결과숫자(테이블1)숫자(테이블2)11223NULL테이블1 에는 모든 데이터값이존재하지만 테이블2에는 데이터값이 빈곳이 존재하지만결과값에는 빈칸을 포함한 모든 데이터를 조회할수있다. INNER JOIN 공통컬럼을 기준으로 두 테이블 모두에 있는 값만 조회한다.  테이블 1,2 모두 "숫자" 라는 공통컬럼이 존재한다 ..
SUBQUERY와 SQL함수 SUBQUERY SUBQUERY : 쿼리안에 서브로 들어가는 구문, 복잡한 연산을 하거나 조건문이 연산 결과를 사용해야 할때 혹은 조건의 쿼리결과를 사용하고싶을때 사용할수 있다. 기본구조SELECT FROM(SELECT 컬럼1,컬럼2FROM 테이블)이처럼 쿼리를 작성하고 괄호로 묶어준다 이 괄호안에 쿼리를 서브쿼리라고한다.간단하게 간이 테이블을 만들어준다 라고 생각하면 될듯함FROM 테이블 에서 가져오는것이 아닌FROM 서브쿼리 에서 가져온다 라고 생각하면 된다.SQL 함수 +NULL : 데이터값이 없을때 사용COALESCE : NULL값일때 대체값을 반환한다. 기본구조 COALESCE(컬럼1,컬럼2,컬럼3)                     (NULL,대체값1, 대체값2)컬럼 1의 값이 NULL일때 ..
조건문 IF , CASE 와 DATA TYPE 변경 DB더보기상세정보이름성별나이홍동길남자22길동홍여자31홍길동남자21송중기여자35송대기남자51 조건문    IF : 원하는 조건에 충족할때 적용할 값과 충족하지 않을 때 적용할 값을 지정해줄수 있다.  기본문법 SELECT IF(조건,조건 충족시, 조건이 충족하지 않을시)FROM 테이블 사용예시SELECT IF (나이 FROM 상세정보▽나이대50대 이하50대 이하50대 이하 50대 이하50대 이상   CASE : 조건을 여러가지 지정하고 싶을때 사용한다 , 각 조건별로 적용할 값을 지정해 줄수 있다.  WHEN : CASE 안에 조건 THEN : 조건의 값 ELSE : 위 조건에 부합하지 않을시 새로운 값을 줄때 사용한다. END : CASE 를 마칠때 사용한다. 기본구조SELECT CASE WHEN 조건1..