본문 바로가기

SQL

SQL 첫걸음 1장~2장

교재:  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를 실행함

https://sqliteonline.com/

 

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값 검색

 

=
IS 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