교재: SQL 첫걸음, 한빛미디어
1장. 데이터베이스와 SQL
1강. 데이터베이스
데이터: 컴퓨터 안에 기록되어 있는 숫자
데이터베이스(DB): 데이터의 집합으로 개인용 컴퓨터나 휴대용에 내장, 데이터센터를 사용.
데이터베이스 관리 시스템(DBMS)
-데이터 검색, 추가 삭제 같은 기본 기능 제공하여 생산성 향상
-데이터베이스 다루는 기능 많이 제공(대용량 데이터 저장, 고속 검색 기능)
-하드웨어 여러 대로 구성하여 신뢰성 높임
SQL
:관계형 데이터베이스 관리 시스템(RDBMS)을 조작할때 사용하는 언어
SQL명령의 종류
-DML(Data Manipulation Language): 데이터 추가, 삭제, 내용 갱신하는 등 데이터 조작할때 사용
-DDL(Data Definition Language): 데이터 정의하는 명령어
-DCL(Data Control Language): 데이터베이스 제어하는 명령어
2강. 다양한 데이터베이스
데이터베이스
-계층형 데이터베이스 ex) 하드디스크, DVD
-관계형 데이터베이스(RDB): 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스
-객체지향 데이터베이스: 가능하면 객체 그대로를 데이터베이스의 데이터로 저장하는것
-XML 데이터베이스: 태그를 이용해 마크업 문서를 작성할 수 있는 자료형(XML)으로 기록된 데이터를 저장하는것
-키-밸류 스토어(KVS): 키와 그에 대응하는 값(밸류)이라는 단순한 형태로 데이터 저장한것
RDBMS 사용시스템 (관계형데이터베이스관리시스템)
: 여러 시스템에서 사용되며 작은 하드웨어인 휴대전화에도 내장
데이터베이스 제품
-Oracle, DB2, MySQL 등
3강. 데이터베이스 서버
클라이언트/서버 모델
-클라이언트가 '요청'을 보내면 웹 서버는 그에 맞게 처리하여 '응답'한다
-사용자 인증이 필요
-SQL 명령 실행
웹 애플리케이션의 구조
-웹 서버와 데이터베이스 서버 조합으로 구축
-웹시스템(클라이언트-브라우저, 서버-웹 소프트웨어)
-CGI(웹 서버에 있는 동적 콘텐츠를 위한 확장 방식, 프로그램과 웹 서버 간을 연동, 통신하여 처리한다)
CGI 프로그램
-PHP나 루비 등의 프로그래밍 언어로 만들어진 실제 데이터베이스에 접속하는 프로그램
-데이터베이스 서버와 접속->필요한 SQL명령 전달->실행 결과 클라이언트(CGI)로 돌아감
MySQL 서버와 mysql 클라이언트
-루프 백 접속: mysql 클라이언트에서 네트워크를 경유해서 PC의 서버로 되돌아오는 형태
2장. 테이블에서 데이터 검색
4강. Hello World 실행하기
아래 링크를 통해 설치없이 SQLite를 실행함
SQL Online Compiler - Next gen SQL Editor
Chart for Data Science SELECT LINE-SELECT LINE-SELECT name as label, cos(id) as cos_c1ab394, sin(id) as sin_cFF0000 FROM demo; AREA-SELECT id as x, id as y FROM demo; BAR-SELECT name as label, id as y FROM demo; PIE-SELECT name as label, id as y FROM d
sqliteonline.com
1. 'SELECT * FROM 테이블명' 실행 (명령어 사이 스페이스와 세미콜론 주의)
2. SELECT 명령 구문
SELECT: DML에 속하는 명령어
*: 모든 열
FROM: 처리 대상 테이블을 지정하는 키워드
SELECT 구: SELECT *
FROM 구: FROM 테이블명
3. 예약어와 데이터베이스 객체명
예약어: SELECT, FROM
데이터베이스 객체명: 테이블명 등
-대소문자 구별하지않는다
4. Hello World를 실행한 결과=테이블
테이블: 행과 열로 구성된 표 형식의 데이터
no 열: 수치형(숫자만 들어감)
name열: 문자열형
birthday: 날짜시간형
5. 값이 없는 데이터=NULL
5강. 테이블 구조 참조하기
1. DESC 명령
-DESC는 SQL명령어 아님
-제약사항으로 yes 지정 시 NULL값 허용
-Default는 그 열에서 '기본값' 생략했을때 적용되는 값
2. 자료형
-INTEGER형: 수치형으로 정수값 저장
-CHAR형: 고정 길이 문자열 저장, 공백문자로 채움, CHAR(10)으로 열의 최대 길이 지정
-VARCHAR형: 가변 길이 문자열 저장, 데이터 크기에 맞춰 저장공간 크기 변경
-DATE형: 날짜값 저장, 연월초 데이터
-TIME형: 시간 저장, 시분초 데이터
6장. 검색 조건 지정하기
1. SELECT 구에서 열 지정하기
테이블에서 열1, 열2 값만 읽어오기
2. WHERE 구에서 행 지정하기
-WHERE 구의 조건에 일치하는 행만 결과로 반환
-조건식: 열과 연산자, 상수로 구성되는 식, 참과 거짓의 진리값을 반환하는 식으로 비교 연산자를 사용
= | 서로 값이 같은 경우 |
<> | 값이 다른 경우 |
3. 문자열형의 상수
no = 2 //수치열형
name = '정희진' //문자열형, 이 경우 ' '로 둘러싸 표기
'2025-03-22' //연월일은 하이픈(-)
'02:11:00' //시분초는 콜론(:)
4. NULL값 검색
연산자로 birthday가 NULL인 행만 추출
5. 비교연산자
= | 좌변과 우변의 값이 같을 경우 참 |
<> | 좌변과 우변의 값이 같지 않을 경우 참 |
> | 좌변이 값이 우변의 값보다 클 경우 참 |
>= | 좌변의 값이 우변의 값보다 크거나 같을 경우 참 |
< | 좌변의 값이 우변의 값보다 작을 경우 참 |
<= | 좌변의 값이 우변의 값보다 작거나 같을 경우 참 |
7장. 조건 조합하기
1. AND로 조합하기
모든 조건을 만족하는 경우
SELECT * FROM sample24 WHERE a<>0 AND b<>0; //a열과 b열이 모두 0이 아닌 행 검색
2.OR로 조합하기
어느 쪽이 하나만 참이 되면 조건식은 참인 경우
SELECT * FROM sample24 WHERE a<>0 OR b<>0; //a열이 0이 아니거나 b열이 0이 아닌 행 검색
3.AND와 OR를 사용할 경우
SELECT * FROM sample24 WHERE a=1 OR a=2 AND b=1 OR b=2; //a열이 1 또는 2이고, b열이 1 또는 2인 행을 검색
-AND는 OR에 비해 우선 순위가 높다
4. NOT으로 조합
NOT연산자: 오른쪽에만 항목을 지정하는 '단항 연산자'
SELECT * FROM sample24 WHERE NOT(a<>0 OR b<>0; //a열이 0이 아니거나, b열이 0이 아닌 행을 제외한 나머지 행 검색
8강. 패턴 매칭에 의한 검색
패턴 매칭(부분 검색): 특정 문자나 문자열이 포함되어 있는지 검색
1. LIKE로 패턴 매칭하기
LIKE 술어 사용 시 열 값이 부분적으로 일치하는 경우에도 참이 됨
패턴 정의하는 메타 문자는 %(임의의 문자열), _(임의의 문자 하나)
SELECT * FROM sample25 WHERE text LIKE 'SQL%' //Text 열이 'SQL'을 포함하는 행 검색
SELECT * FROM sample25 WHERE text LIKE '%SQL%' //Text 열이 'SQL'을 포함하는 행 검색
%는 임의의 문자열과 매치하며, 빈 문자열에도 매치한다. 즉, 5% 있는 곳에 임의의 문자열 존재
2. LIKE로 %를 검색하기
%앞에 \붚여서 검색 -> '%\%%'
\%, \-
SELECT * FROM sample25 WHERE text LIKE '%\%%' //Text열이 %를 포함하는 행 검색
3. 문자열 상수 '의 이스케이프
'을 문자열 상수 안에 포함할 경우는 '를 2개 연속해서 기술한다. It's -> 'It''s'
' 하나인 경우는 ''''
'SQL' 카테고리의 다른 글
SQL 첫걸음 7~8장 (0) | 2025.04.12 |
---|---|
SQL 첫걸음 5~6장 (0) | 2025.04.05 |
SQL 첫걸음 3장~4장 (0) | 2025.03.30 |