예약어
- SELECT와 FROM이 구를 결정하는 키워드이자 예약어이다.
- 데이터베이스에는 테이블 외에 다양하 데이터를 저장하거나 관리하는 어떤 것 을 만들 수 있다.
- '뷰 (view)'
- 데이터베이스 객체는 이름을 붙여 관리한다.
- 통상적으로 데이터베이스 객체명은 예약어와 동일한 이름을 사용할 수 없다.
테이블 정보 가져오기
▶ 데이터를 보여준다.
show databases ;
show tables;
non-TEMPOPARY 테이블에 대한 많은 정보를 가져온다.
SHOW TABLE STATUS;
열 지정
▶ 해당 테이블의 내용을 볼 수 있다.
SELECT * FROM 테이블명
- 열을 지정하지 않거나 존재하지 않는 열을 지정하면 에러 발생.
- 열의 지정 순서는 임의로 가능.
- 여러개의 같은열도 지정 가능(의미 없음).
SELECT no, name from 테이블명;
▶ 사전에 정의된 예약어를 사용할 때는 관습적으로 대문자로 사용한다.
USE empolyes;
USE sample;
행 지정
▶ 기본 문법
SELECT 열 FROM 테이블명 WHERE 조건식
연산자 | 설명 |
= | 서로 같은 값인지 비교, 같으면 참. |
<> | 서로 다른 값인지 비교, 다르면 참. |
>, < | 초과, 미만 |
>=, <= | 이상, 이하. |
- 문자열, 날짜시간형을 비교할 경우 싱글쿼트로 둘러싸 계산한다.
- 연월일은 하이픈(-), 시분초는 콜론(:)으로 표기한다.
SELECT * FROM sample21 WHERE no = 2;
SELECT * FROM sample21 WHERE no <> 2;
SELECT * FROM sample21 WHERE birthday = '19761018';
▶ 결측치 검색
SELECT * FROM 파일명 WHERE 행명 IS NULL;
SELECT * FROM 파일명 WHERE 행명 IS NOT NULL;
▶ 변수지정
SET @변수명 = 변수
조건문 연산
▶AND문
SELECT * FROM sample24 WHERE a = 0 AND b = 0;
▶ OR문
SELECT * FROM sample24 WHERE a <> 0 OR b <> 0;
▶ AND + OR 문
AND문이 우선으로 계산된다.
SELECT * FROM sample24 WHERE (a = 1 OR a = 2) AND (b = 1 OR b = 2);
▶ NOT 조건문
NOT 다음 오른쪽에 오는 조건의 거짓이 참이된다.
SELECT * FROM sample24 WHERE NOT a = 0 OR NOT b = 0;
LIKE 패턴
원하는 문자열을 찾는 함수.
WILDCARD | 설명 |
% | 특정 문자열 |
_ | 1개의 문자를 표현 |
▶ 특정 문자가 포함되어 있는 행 검색
SELECT * FROM sample25 WHERE text LIKE '%SQL%';
▶ 특정 문자로 시작하는 행 검색
SELECT * FROM sample25 WHERE text LIKE 'SQL%';
▶ 특정 문자로 끝나는 행 검색
SELECT * FROM sample25 WHERE text LIKE '%SQL';
▶ %찾기
SELECT * FROM sample25 WHERE text LIKE '%\%%';
정렬
▶ ORDER BY (오름차순 정렬)
SELECT 열명 FROM 테이블명 (WHERE 조건식) ORDER BY 열명;
▷ BY 오른쪽에 지정한 열명의 값들에 따라 행의 순서가 바뀐다.
SELECT age, address FROM sample31 ORDER BY age ;
SELECT age, address FROM sample31 ORDER BY address ;
SELECT age, address FROM sample31 WHERE age > 10 ORDER BY age ;
▶ ORDER BY 열명 DESC(DSC) (내림차순 정렬)
SELECT 열명 FROM 테이블명 (WHERE 조건식) ORDER BY 열명 DESC;
SELECT * FROM sample31 ORDER BY age DESC ;
※ 문자를 비교 할 때는 제일 왼쪽에 있는 문자를 비교한다. 문자는 왼쪽에 붙고 숫자는 오른쪽에 붙는다.
▶ 여러 열 정렬
열명1을 정렬한 상태에서 열명 2를 정렬하게 된다.
SELECT 열명 FROM 테이블명 (WHERE 조건식) ORDER BY 열명1, 열명2;
▶ 정렬 방법 지정
열명1을 선택한 정렬 방식으로 정렬한 상태에서 정렬2를 선택한 정렬 방식으로 정렬한다.
SELECT 열명 FROM 테이블명 (WHERE 조건식) ORDER BY 열명1[ASC|DESC], 열명2[ASC|DESC];
> SELECT * FROM sample32 ORDER BY a DESC, b ASC;
NULL 값 정렬
- ORDER BY로 지정한 열에서 NULL값을 가지는 행은 가장 먼저 표시되거나 가장 나중에 표시된다.
- NULL에 대한 대소비교 방법은 표준 SQL 에도 규정되어 있지 않아 데이터베이스 제품에 따라 기준이 다르다.
- MySql의 경우에는 NULL값을 가장 작은 값으로 취급해 ASC(오름차순)에서는 가장 먼저, DESC(내림차순)에서는 가장 나중에 표시된다.
▶ 주석
-- 내용
/* 내용
내용
내용 */
▶ 데이터의 설정값을 볼 수 있다.
※ NULL : 아무것도 없다.
DESC 샘플명;
'SQL' 카테고리의 다른 글
[MySQL] 수치연산 (0) | 2022.09.16 |
---|---|
[MySQL] INSERT (0) | 2022.09.16 |
[MySQL] 실행, 종료 (MAC) (0) | 2022.09.14 |
[MySQL] JOIN (0) | 2022.04.01 |
[MySQL] SubQuery(서브쿼리), ORDER BY, DISTINCT, GROUP BY, HAVING, VIEW (0) | 2022.03.30 |