[SQL]MySQL 정리

eunhye_·2022년 7월 30일
0

Database

목록 보기
2/6
post-thumbnail

SQL

SQL은 database를 관리, 운영하는 역활을 하는 소프트웨어다.

데이터 활용

USE

  • use class;
    => class라는 databse를 사용하겠다.

CREATE

  • create table students( 컬럼명 데이터_타입 제약조건 );
    => student라는 table을 생성하겠다.

DROP

  • drop table students (= desc students)
    => students Table을 삭제한다.

DELETE

  • delete from students where id=10;
    => student 테이블에서 id가 10인 행을 삭제한다.

SELECT 문

  • select [열 이름1, 열 이름2] from 테이블 이름;
    => 특정 테이블의 열을 조회한다. 여러 개의 열을 조회 가능하며 전체 열을 보고자 할 때는 * 를 사용한다.

select student_num 학번 from stdents;
=> student_num이라는 컬럼을 학번이라 칭하고 stdents 테이블에서 조회한다. 별칭은 as 또는 띄어쓰기로 구분하고 지정한다.

  • distinct : 중복 제외 값 출력

  • limit N : N개 출력

  • where 조건;

    => 조건에 부합하는 데이터를 조회한다.

관계 연산자

  • between A and B : A와 B사이를 만족하는 데이터를 조회한다.

  • A or B : A와 B의 합집합

  • A and B : A와 B이 교집합

  • not A : A가 아닌 것

  • in(A,B) : ()안에 있는 항목을 만족하는 데이터 조회

  • like : escape구문 등을 사용하여 만족하는 데이터 조회

    연산 우선순위 : and > or
    where 조건1 and 조건2 or 조건3

    1. 조건 1 and 조건2
    2. 1결과 or 조건3
  • order by 정렬기준컬럼:

    원하는 순서대로 정렬하여 출력, select 문의 제일 마지막에 온다.
    -ASC : 오름차순 (기본방식)
    -DESC : 내림차순

    문자열 오름차순 : 특수문자 -> 숫자 -> 대문자 -> 소문자 -> 한글 (unicode 순)
    Date 오름차순 : 과거 -> 미래
    null 오름차순 : 맨 처음에 나온다. *제일 작음.

  • group by

    특정 컬럼(들)의 값별로 행들을 나누어 집계할 때 기준컬럼을 지정하는 구문.
  • having : 집계함수에 대한 제약 조건 , 반드시 group by 절 다음 사용한다.
  • with rollup : group by로 묶어 집계할 때 총계나 중간 집계(group by 컬럼이 여러개일경우) 를 계산하여 나타낸다.

집계 함수

  • AVG() : 평균
  • MIN() : 최소값
  • MAX() : 최대값
  • COUNT() : 행의 개수
  • COUNT(DISTINCT) : 중복 제외 행의 개수
  • STDEV() : 표준 변차
  • VAR_SAMP() : 분산
      
  • join

    2개 이상의 테이블에 있는 컬럼들을 합쳐서 가상의 테이블을 만들어 조회하는 방식을 말한다.
    - Inner Join 
        - 양쪽 테이블에서 조인 조건을 만족하는 행들만 합친다. 
    - Outer Join
        - 한쪽 테이블의 행들을 모두 사용하고 다른 쪽 테이블은 조인 조건을 만족하는 행만 합친다. 조인조건을 만족하는 행이 없는 경우 NULL을 합친다.
        - 종류 : Left Outer Join,  Right Outer Join, Full Outer Join
    - Cross Join
        - 두 테이블의 곱집합을 반환한다.
  • inner join
    ex) select * from Table_A a join Table_B b on a.id = b.id;
  • outer join
    - left outer join: 구문상 소스 테이블이 왼쪽
    - right outer join: 구문상 소스 테이블이 오른쪽
    ex) select * from Table_A a left outer join Table_B b on a.id = b.id;
                             

서브쿼리

: 쿼리안에서 select 쿼리를 사용하는 것.

  • any : 조회된 값들 중 하나만 참이면 참 (where 컬럼 >= any(서브쿼리) )

  • all : 조회된 값들 모두와 참이면 참 (where 컬럼 > all(서브쿼리) )

                 

INSERT 문

  • insert into Table_name (항목) values (데이터)
    => Table_name에 데이터 추가
    전체항목 추가 할 경우 : insert into Table_name values (데이터)

  • AUTO_INCREMENT : 자동 증가되는 항목에 사용

                

ALTER : 테이블 수정

  • ALTER TABLE 테이블이름 ADD COLUMN 추가할 컬럼설정 [,ADD COLUMN 추가할 컬럼설정]
    => 컬럼 추가

  • ALTER TABLE 테이블이름 MODIFY COLUMN 수정할컬럼명 변경설정 [, MODIFY COLUMN 수정할컬럼명 변경설정]
    => 컬럼 수정

  • ALTER TABLE 테이블이름 DROP COLUMN 컬럼이름 [CASCADE CONSTRAINTS]
    => 컬럼 삭제

  • ALTER TABLE 테이블이름 SET UNUSED (컬럼명 [, ..])
    => 컬럼 삭제 표시, 사용하지 않는다.

  • ALTER TABLE 테이블이름 RENAME COLUMN 원래이름 TO 바꿀이름;
    => 컬럼 이름 변경

  • ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건 설정
    => 제약조건 추가

  • ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건이름
    => 제약 조건 삭제

  • ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 제약조건
    => 제약조건 수정

0개의 댓글