1. 학습목표
SELECT 명령을 이해할 수 있다.
테이블 구조를 이해하고 검색조건에 대해 이해할 수 있다
2.필요 개념 문장정리
SELECT
- SELECT*FROM 테이블명은 개발언어의 Hellow World라 할 수 있는 기본명령어이다. 쿼리나 질의로 불리기도 한다.
- 명령을 실행하세요라는 의미로 *(에스터리스크)는 모든 열을 의미하는 메타문자이다. 모든열을 지정할 수 있다.
- SELECT명령은 여러 개의 구로 구성됩니다.
- SELECT와 FROM은 구를 결정하는 키워드이자 예약어이다.
- 통상적으로 데이터베이스 객체명에는 예약어와 동일한 이름을 사용할 수 없다.
- 예약어와 데이터베이스 객체명은 대소문자를 구별하지 않는다.
- SQL명령과 달리 데이터베이스 제품들은 대소문자를 구별하고 예약어는 대문자로 데이터베이스 객체명은 소문자로 표기한다.
- 데이터는 행(레코드)과 열(컬럼/필드)로 구성된다. 행과 열이 만나는 부분을 셀이라고 부른다. 셀에는 하나의 데이터 값이 저장되어 있다.
- 숫자만으로 구성된 데이터를 수치형데이터라고 한다. 수치형 데이터는 오른쪽 정렬로 표시된다.
- 임의의 문자로 구성된 데이터를 분자열형데이터라 한다. 문자형은 왼쪽으로 정렬되어 표시된다.
- 날짜와 시각을 나타내는 데이터를 날짜시간형데이터라고 하고 왼쪽으로 정렬되어 표시된다.
- NULL은 아무것도 저장되어 있지 않은 상태를 말한다
테이블 구조
- DESC명령으로 테이블에 어떤 열이 정의되어 있는지 알 수 있다. DESC는 SQL명령이 아니다.
- 열에는 몇 가지 속성을 지정할 수 있는데 자료형에는 INTEGER형, CHAR형, VARCHAR형, DATE형, TIME형 등이 있다.
- 행을 선택할 때에는 WHERE 구를 사용하며, 열을 선택할 때는 SELECT구를 사용한다.
- 열을 한정하기 위해서는 *부분에 열명을 지정한다.
- WHERE구는 FROM구의 뒤에 표기된다.
- WHERE구의 조건식은 열과 연산자, 상수로 구성되는 식이다.
- 문자열형을 비교할 경우는 싱글쿼트''로 둘러싸 표기한다.
- 자료형에 맞게 표기한 상수값을 리터럴이라 부른다.
- 연산자 =로 NULL값을 검색할 수는 없다. NULL값을 검색할 때에는 IS NULL을 사용한다.
- NULL값이 아닌 행을 검색하고 싶다면 IS NOT NULL을 사용한다.
조건조합
- 통상적으로 2개 이상의 조건식을 조합해 검색하는 경우가 많다. 복수의 조건을 WHERE구로 지정하고 AND,OR,NOT의 3가지 방법이 있다.
- 모든조건을 만족하는 경우 조건식은 참이 된다고 할 때 AND연산자로 조건식을 조합한다.
- AND 연산은 조건을 만족하는 행을 집합으로 표현했을 때 논리곱을 계산하는 교집합으로 계산할 수 있다.
- 어느쪽이든 하나만 참이 되면 조건식은 참이된다고 할 경우에는 OR로 조건식을 연결한다.
- OR 연산은 조건을 만족하는 행을 집합으로 표현했을 때 논리합을 계산하는 합집합으로 계산할 수 있다.
- OR보다 AND쪽이 우선순위가 높다.
- NOT연산자는 오른쪽에만 항목을 지정하는 단항연산자이다.
- 주로 복수의 조건식에 대해 ~아닌,~외에,~를 제외한 나머지 등의 조건을 지정할 경우 사용된다.
패턴매칭
- 특정문자나 문자열이 포함되어 있는지를 검색하고 싶은경우 사용하는 방법을 패턴매칭 또는 부분검색이라고 한다.
- LIKE 왼쪽에는 매칭 대상을 지정하고 오른쪽에는 패텅을 문자열로 지정한다. 수치형 상수는 지정할 수 없다. 메타문자를 사용할 수 있다.
- %는 임의의 문자열을 의미하며, _는 임의의 문자 하나를 의미한다.
- %는 임의의 문자열과 매치하며 빈 문자열에도 매치한다.
- LIKE로 %를 검색하는 경우 \로 이스케이프하여 사용한다.
- '를 문자열 상수 안에 포함할 경우는 '를 두개 연속해서 쓴다.
3. 마무리
테이블구조를 이해하고 데이터를 검색할 수 있었다.SELECT명령에 대해 이해할 수 있었다.
'언어 기초 > DBMS' 카테고리의 다른 글
[SQL 첫걸음 | 3장 정렬과 연산] 함수, CASE문 (1) | 2024.01.07 |
---|---|
[SQL 첫걸음 | 3장 정렬과 연산] 연산 (0) | 2024.01.07 |
[SQL 첫걸음 | 3장 정렬과 연산] 정렬 (1) | 2024.01.07 |
[SQL 첫걸음 | 1장 데이터베이스와 SQL] 데이터베이스 (2) | 2023.12.06 |