SQL 기초를 다지기 위해 'SQL 첫걸음:하루 30분 36강으로 배우는 완전 초보의 SQL 따라잡기' 학습을 시작하였습니다. 목표는 매일 적정량을 공부하여 일주일 안에 끝내는 것이고, 매일 학습 내용을 정리하여 기록할 예정입니다.
[학습 DAY - 1]
1강 데이터베이스
- DB - Database, 저장장치 내에 정리되어 저장된 데이터의 집합
- DBMS - Database Management System, DB를 효율적으로 관리하는 소프트웨어로, 사용목적은 생산성 향상과 기능성, 신뢰성 확보에 있음
- SQL - 데이터베이스를 조작하는 언어로, 관계형 데이터베이스 관리 시스템(RDBMS)를 조작할 때 사용
- SQL 명령의 종류
-. DML: Data Manipulation Language의 약자. DB에 새롭게 데이터를 추가하거나 삭제하거나 내용을 갱신하는 등, 데이터를 조작할 때 사용
-. DDL: Data Definition Language의 약자. 데이터를 정의하는 명령어. 객체를 만들거나 삭제하는 명령어
-. DCL: Data Control Language의 약자. 데이터를 제어하는 명령어. 트랜젝션을 제어하는 명령과 데이터 접근권한을 제어하는 명령이 포함
2강 다양한 데이터베이스
-
데이터베이스 종류
-. 계층형 데이터베이스: 폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식(ex. 하드디스크)
-. 관계형 데이터베이스: 행과 열을 가지는 표 형식 데이터를 저장하는 데이터베이스(엑셀과 비슷)
-. 객체지향 데이터베이스: 가능하면 객체 그대로를 데이터베이스에 저장하는 방식
-. XML 데이터베이스: XML이란 자료형식을 가리키는 용어로, 태그를 이용해 마크업 문서를 작성할 수 있게 정의, HTML과 흡사. SQL 명령을 사용할 수 없으며 XQuery라는 전용 명령어 사용
-. 키-밸류 스토어(KVS): 키와 그에 대응하는 값(밸류)이라는 단순한 형태의 데이터를 저장하는 데이터베이스. NoSQL(Not only SQL)이라는 슬로건으로부터 생겨남. 열 지향 데이터베이스라고도 함
-
데이터베이스 제품
-. Oracle
-. DB2
-. SQL Server
-. PostgreSQL
-. MySQL
-. SQLite
-
SQL의 방언과 표준화: 제품별로 다른 방언이 있지만, 표준 SQL을 사용하는 것이 좋음
3강 데이터베이스 서버
- 클라이언트/서버 모델
-. 사용자 조작에 따라 요청을 전달하는 클라이언트
와 해당 요청을 받아 처리하는 서버
로 소프트웨어를 나누고, 복수의 컴퓨터 상에서 하나의 모델을 구현한 시스템
-. RDBMS에서는 데이터베이스를 사용하기 위해 사용자 인증이 필요(ID, 비밀번호)
- MySQL 패키지를 PC에 인스톨하면 서버와 클라이언트 모두 사용 가능
4강 Hello World 실행하기
- SQL 명령의
Hello World
라 할 수 있는 SELECT * FROM 테이블명
을 실행
- SELECT * FROM 테이블명
-. SELECT * FROM sample21;
-. SELECT → 명령의 종류
-. * → 모든 열
-. sample21 → 테이블 명
-. ; → 명령문의 마지막
-. 결과화면
5강 테이블 구조 참조하기
- DESC 테이블명; → 테이블 구조 참조
-. DESC sample21;
- 자료형
-. INTEGER 형: 정수값을 저장할 수 있는 자료형. 소수점 포함X
-. CHAR 형: 문자열을 저장할 수 있는 자료형. 열의 최대 길이 지정 필요. CHAR(10)
-. VARCHAR 형: 문자열을 저장할 수 있는 자료형. 데이터 크기에 맞춰 저장공간의 크기 변경.'가변 길이 문자열' 자료형이라고 함
-. DATA 형: 날짜값을 저장할 수 있는 자료형
-. TIME 형: 시간을 저장할 수 있는 자료형
6강 검색 조건 지정하기
- SELECT 구에서 열 지정하기
-. SELECT 열1, 열2....FROM 테이블명
- WHERE 구에서 행 지정하기
-. SELECT 열 FROM 테이블명 WHERE 조건식
-. SELECT * FROM sample21 WHERE no=2;
- 문자열의 상수: 문자열은 싱글쿼트('')로 둘러싸 표기('문자열'), 날짜시간의 경우도 동일, 날짜는 하이픈(-)으로 구분, 시간은 콜론(:)으로 구분하여 표기
- NULL값 검색: IS NULL / IS NOT NULL로 검색
-. SELECT * FROM sample21 WHERE birthday IS NULL;
- 비교연산자
-. = 연산자: 좌변과 우변이 값이 같을 경우 참
-. <> 연산자: 좌변과 우변의 값이 같지 않을 경우 참
-. > 연산자: 좌변의 값이 우변의 값보다 클 경우 참
-. >= 연산자: 좌변의 값이 우변의 값보다 크거나 같을 경우 참
-. < 연산자: 좌변의 값이 우변의 값보다 작을 경우 참
-. <= 연산자: 좌변의 값이 우변의 값보다 작거나 같을 경우 참