[sql 첫걸음] 2주차
[SQL 첫걸음] 2주차
1장 데이터베이스와 SQL
3강 데이터베이스 서버
- 클라이언트/서버 모델
RDBMS는 복수의 클라이언트가 보내오는 요청에 응답할 수 있도록 클라이언트/서버 모델로 동작한다.
- 클라이언트는 서버에 접속 요청이나 SQL 명령 실행요청을 보낼 수 있다.
- 서버는 이를 처리하고 클라이언트에 그 결과를 반환한다.
웹 시스템에서의 클라이언트/서버 : 웹 브라우저와 웹 서버
- 클라이언트 : URL을 통해 연결된 웹 서버에 요청을 보낸다. “웹 페이지를 보고 싶다!” (request)
- 웹 서버 : HTML로 된 데이터를 반환. (response)
RDBMS의 클라이언트/서버
-
데이터베이스는 사용자 별로 접근을 제한하기 위해 ID와 비밀번호를 이용한 사용자 인증이 필요하다.
-
RDBMS에 접속하면 SQL 명령을 서버에 보낼 수 있다.
- 웹 애플리케이션의 구조
웹 애플리케이션 = 웹 서버 + 데이터베이스 서버
실제로 데이터베이스에 접속하는 것은 CGI 프로그램이다. 데이터베이스 서버를 사용하기 위해서는 먼저 데이터베이스 서버와 접속이 되어야 한다. 그 후 데이터베이스에 필요한 SQL 명령을 전달하고 실행 결과는 클라이언트로 되돌아간다. 이때 웹 서버의 CGI 프로그램이 데이터베이스의 클라이언트가 된다.
정리 : 클라이언트 브라우저 -> 웹 서버 -> CGI 프로그램 -> DB
- MySQL 서버와 mysql 클라이언트
MySQL 패키지를 PC에 install 하면 서버와 클라이언트 모두 사용할 수 있다.
PC 한대로 클라이언트와 서버 모두 실행할 수는 있지만 클라이언트에서 서버에 접속할 필요가 있다. 이때 네트워크를 경유해서 PC의 서버로 되돌아오는 형태로 접속하는데 이것을 ‘루프 백 접속’이라고 부른다.
2장 테이블에서 데이터 검색
4강 Hello World 실행하기
- ‘SELECT * FROM 테이블명’ 실행
SELECT * FROM sample21;
mysql 클라이언트에 입력해서 실행하기
위를 실행하면 sample21 테이블의 모든 데이터를 읽어온다.
- SELECT 명령 구문
- select는 DML에 속하는 명령어이다.
- select 명령으로 데이터베이스의 데이터를 읽어올 수 있다.
-
select 명령은 ‘질의’나 ‘쿼리’라고도 불린다.
- select : 명령의 종류
- * : 모든 열을 의미. 테이블에는 몇 개의 열이 있는데, 이들을 일일히 지정하지 않고도 *를 사용하면 간단하게 모든 열을 지정할 수 있다.
- from : 처리 대상 테이블을 지정하는 키워드. from 뒤에 테이블명을 지정한다.
- sample21 : 테이블명
sql 명령은 몇 개의 구로 구성된다. 위의 예시는 select 구와, from 구로 나뉘어져 있다.
- 예약어와 데이터베이스 객체명
- 예약어 : select, *, from
- 사용자 임의 지정 : sample21
데이터베이스 객체 : 테이블 외에 다양한 데이터를 저장하거나 관리하는 어떤 것. 뷰가 포함된다.
데이터베이스 객체명은 중복될 수 없으며 예약어를 사용할 수 없다.
그리고 예약어와 데이터베이스 객체명은 대소문자를 구별하지 않는다.
- Hello World를 실행한 결과 = 테이블
select 명령어를 실행하면 표 형식의 데이터가 출력된다.
표 형식은 행(레코드)과 열(컬럼/필드)로 구성되며, 이 둘이 만나는 부분을 셀이라고 부른다.
데이터 자료형
- 수치형 데이터 : 숫자만으로 구성된 데이터. 오른쪽 정렬
- 문자열형 데이터 : 문자로 구성된 데이터. 왼쪽으로 정렬
- 날짜시간형 데이터 : 날짜와 시각을 나타내는 데이터. 왼쪽으로 정렬
열은 하나의 자료형만 질 수 있으며, 수치형 열에 문자형의 데이터를 저장할 수 없다.
- 값이 없는 데이터 = NULL
null은 특별한 데이터 값으로 아무것도 저장되어 있지 않은 상태를 의미한다.