본문 바로가기

DEVELOPMENT/DB

MySQL : 기초

반응형

MySQL

- RDBMS이다.

 

DML

- 데이터 조작 언어

- 데이터를 조작(선택,삽입,수정,삭제)하는데 사용되는 언어이다.

- 구문이 사용되는 대상은 데이터의 ‘행’이다.

- SELECT, INSERT, UPDATE, DELETE 가 이 구문에 해당한다.

- 트랜잭션이 발생하는 구문도 DML에 해당한다.

DDL

- 데이터 정의 언어

- 데이터베이스, 테이블, 뷰, 인덱스 등의 데이터 베이스 개체를 생성/삭제/변경하는 역할이다.

- CREATE, DROP, ALTER 구문

- 트랜잭션이 발생하지 않는다.

DCL

- 데이터 제어 언어

- 사용자에게 어떤 권한을 부여하거나 빼앗을때 주로 사용하는 구문이다.

- GRANT / REVOKE 등

Mysql -u root -p 땡땡땡땡

SHOW DATABASES;

- 현재 서버에 있는 데이터베이스를 보여준다.

CREATE DATABASE 데이터베이스명;

- 새로운 데이터베이스를 만든다.

결과확인

USE

- 사용할 데이터베이스 지정

- 지정해 놓은 후 특별히 다시 USE 문을 사용하거나 다른 DB를 사용하겠다고 명시하지 않는 이상 모든 명령어가 해당 DB 에서 진행

SHOW tables

- 데이터베이스의 테이블 이름 보기

비워져 있는 것을 볼 수 있다.

CREATE TABLE 테이블명(속성이름1 데이터형식, 속성이름2 데이터형식,…)

- 테이블을 만들어준다.

SHOW TABLE STATUS

- 테이블의 정보조회

DESCRIBE (DESC)

- 테이블에 대한 속성조회(무슨 열이 있는지 확인)

desc로 써도 된다.

SELECT

- 요구하는 데이터를 가져오는 구문

- 일반적으로 가장 많이 사용한다.

SELECT FROM WHERE

- 기본적인 WHERE 절

- 조회하는 결과에 특정한 조건으로 원하는데이터만 보고 싶을 때 사용한다.

- SELECT 필드이름 FROM 테이블이름 WHERE 조건

- 관계연산자의 사용

- OR, AND , 조건(=,<,>,!= … 등), 관계(NOT,AND,OR 등) 연산자의 조합으로 데이터를 효율적으로 추출한다.

BETWEEN

- 데이터가 숫자로 구성되어있어 연속적인 값은 BETWEEN … AND 사용 가능

IN

이산적인 값의 조건에서는 IN()을 사용할 수 있다.

LIKE

- 문자열의 내용을 검색하기 위해 LIKE 연산자를 사용한다.

- 문자 뒤에 ‘%’ - 무엇이든 허용

- 문자 뒤에 ‘_’ - 한 글자와 매치

Sub Query

-서브쿼리, 질의 안에 질의가 있는 것.

- 쿼리문 안에 또 쿼리문이 들어 있는 것

- 서브 쿼리의 결과가 둘 이상이 되면 에러가 발생한다.

ANY

- 서브 쿼리의 여러 개의 결과 중 한가지만 만족해도 가능

- SOME은 ANY와 동일한 의미로 사용

- = ANY 구문은 IN과 동이한 의미

ALL

- 서브쿼리의 여러 개의 결과를 모두 만족시켜야 함

ORDER BY

-결과가 출력되는 순서를 조절하는 구문

- 기본적으로 오름차순(ASCENDING) 정렬이다.

- 내림차순(DESCENDING). 으로 정렬할시에는 열 일므 뒤에 DESC 를 적어주어야 한다.

- ASC는 기본값이므로 생략가능하다.

- 구문을 혼합해서 사용할 수 있다. (먼저 나온 것이 우선순위)

DISTINCT

- 중복된 것은 1개씩만 보여주면서 출력

- 테이블의 크기가 클수록 효율적이다.

LIMIT

- 출력 개수를 제한

- 상위의 N개만 출력하는 LIMIT N 구문이 있다.

- 서버의 처리량을 많이 사용해서 서버의 전반적인 성능을 나쁘게 하는 악성 쿼리문을 개선할 때 사용한다.

GROUP BY

- 그룹으로 묶어주는 역할

- 집계함수를 함께 사용할 수 있다.

- AVG(), MIN(), MAX(), COUNT(), COUNT(DISTINCT), STDEV(), VARIANCE()

- 읽기 좋게 하기 위해서 별칭을 사용할 수 있다 (AS)

HAVING

- WHERE과 비슷한 개념으로 조건을 제한한다.

- 집계함수에 대해서 조건 제한하는 개념이다.

- 따라서 HAVING절은 반드시 GROUP BY절 다음에 나와야 한다.

ROLLUP

- 총합 또는 중간합계가 필요한 경우에 사용한다.

- GROUP BY절과 함께 WITH ROLLUP문 사용한다.

JOIN

- JOIN은 데이터베이스 내의 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블이나 결과 집합으로 표현한다.

SELECT *

FROM city

JOIN country ON city.CountryCode=country.Code

JOIN countrylanguage ON city.CountryCode=countrylanguage.CountryCode

=> 세 개의 테이블이 합쳐짐

반응형

'DEVELOPMENT > DB' 카테고리의 다른 글

MySQL : Table 다루기  (0) 2017.07.05
MySQL : View  (0) 2017.07.05
MySQL : Index  (0) 2017.07.05
MySQL : 내장함수  (0) 2017.07.05