전체 파일
MySQL 주석
# 한 줄 주석
-- 한 줄 주석
/*
두 줄
이상의
주석
*/
SQL
복사
sample 데이터베이스 사용하기
USE sample;
SQL
복사
01 테이블에서 데이터 검색
SELECT * FROM 테이블명;
(1) *(애스터리스크)는 모든 열을 의미한다.
(2) 명령의 마지막에는 세미콜론( ; )을 붙인다.
SHOW TABLES;
SELECT * FROM sample21;
SQL
복사
02 테이블 구조 확인하기
DESC 테이블명;
(1) Filed : 열 이름
(2) Type : 자료형
예) int(11) => 11자리의 정수값을 저장할 수 있는 자료형
(3) Null : NULL 값을 허용할 것인지 아닌지를 나타내는 제약사항
예) Yes로 지정하면 NULL 값을 허용하게 된다.
(4) Key : 해당 열이 '키'로 지정되어 있는지 를 나타낸다. 추후 설명 예정.
(5) Default : '기본값'으로 생략했을 때 적용되는 값이다.
테이블에 행을 추가할 때 값을 생략하면 이 기본값으로 채워진다.
DESC sample21;
SQL
복사
03 자료형
1. 정수 : INT
2. 고정 길이 문자열 : CAHR, 최대 10문자까지 가능하다. 싱글쿼트('')로 표기한다.
3. 가변 길이 문자열 : VARCHAR, CHAR형과 달리 데이터 크기에 맞춰
저장공간의 크기도 변경된다. 싱글쿼트('')로 표기한다.
4. 날짜 : DATE, 연월일을 하이픈(-)으로 구분한다.
5. 시간 : TIME, 시분초를 콜론(:)으로 구분한다.
04 검색 조건 지정하기
04-1 SELECT 구에서 열 지정하기
SELECT 열1, 열2, ... FROM 테이블명;
-- [문제] no열과 name열 값만 읽어오기
SELECT no, name FROM sample21;
SQL
복사
04-2 WHERE 구에서 행 지정하기
SELECT 열 FROM 테이블명 WHERE 조건식;
-- [문제] no열 값이 2인 행만 추출
SELECT * FROM sample21 WHERE no = 2;
-- [문제] no열 값이 2가 아닌 행만 추출
SELECT * FROM sample21 WHERE no <> 2;
-- [문제] name열 값이 '박준용'인 행만 추출
SELECT * FROM sample21 WHERE name='박준용';
SQL
복사
05 연산자
05-1 비교 연산자
(1) = : 같니?
(2) > : 크니?
(3) < : 작니?
(4) <> : 다르니?
(5) >= : 크거나 같니?
(6) <= : 작거나 같니?
05-2 논리 연산자
(1) 조건식1 AND 조건식2 : 모든 조건을 만족하는 경우 조건식은 참이 된다.
(2) 조건식1 OR 조건식2 : 어느 쪽이든 하나만 참이 되면 조건식은 참이 된다.
(3) NOT 조건식
(4) AND는 OR에 비해 우선 순위가 높다!
SELECT * FROM sample24;
-- [문제] a열과 b열이 모두 0이 아닌 행 검색
SELECT * FROM sample24 WHERE a <> 0 AND b <> 0;
-- [문제] a열이 0이 아니거나 b열이 0이 아닌 행을 검색
SELECT * FROM sample24 WHERE a <> 0 OR b<> 0;
-- [문제] a열이 0이 아니거나 b열이 0이 아닌 행을 제외한 나머지 행을 검색
SELECT * FROM sample24 WHERE NOT(a <> 0 OR b <> 0);
-- (4) AND는 OR에 비해 우선 순위가 높다!
-- [문제] a열이 1또는 2이고, b열이 1 또는 2인 행을 검색
SELECT * FROM sample24 WHERE a=1 OR a=2 AND b=1 OR b=2; -- 잘못된 명령문
SELECT * FROM sample24 WHERE a=1 OR (a=2 AND b=1) OR b=2; -- 위 문장은 이와 같이 실행되고 있다.
SELECT * FROM sample24 WHERE (a=1 OR a=2) AND (b=1 OR b=2); -- 올바른 명령문
SQL
복사
06 부분 검색
06-1 LIKE
LIKE 에서 사용할 수 있는 문자
(1) 퍼센트(%) : 임의의 문자열을 의미한다.
(2) 언더스코어(_) : 임의의 문자 하나를 의미한다.
SELECT * FROM sample25;
-- [문제] text 열이 'SQL'로 시작하는 행을 검색(=전방 일치)
SELECT * FROM sample25 WHERE text LIKE 'SQL%';
-- [문제] text 열이 'SQL'을 포함하는 행을 검색(= 중간 일치)
SELECT * FROM sample25 WHERE text LIKE '%SQL%';
-- [문제] text 열이 'SQL'로 끝나는 행을 검색(= 후방 일치)
SELECT * FROM sample25 WHERE text LIKE '%SQL';
SQL
복사
06-2 LIKE로 % 검색
LIKE '%\%%’
-- [문제] text열에 %를 포함하는 행을 검색
-- 첫번째와 마지막 %는 메타문자(=임의의 문자열)
-- \%는 % 그 자체 문자
SELECT * FROM sample25 WHERE text LIKE '%\%%';
-- [문제] text열에 _를 포함하는 행을 검색
SELECT * FROM sample25 WHERE text LIKE '%\_%';
SQL
복사