손에 잡히는 10분 SQL 1장, 2장 참고
기본 Database 지식
알고 있는 것들이 많아서 간단하게 정리했다
- 데이터베이스
- 데이터를 저장하기 위한 공간(그릇, 파일 캐비닛)
- DBMS를 생성하고 조작하는 물리적인 저장공간
- DBMS : DataBase Management System
- 데이터베이스 소프트웨어
- Oracle, PostgreSQL, MySQL 등
- SQL
- DBMS를 다루기 위한 언어
- 표준 SQL은 ANSI SQL이라고 부르고 대형 DBMS는 모두 ANSI SQL을 지원한다.
- Oracle이 확장한 PL-SQL, Microsoft SQL Server가 확장한 것이 Transact-SQL이다
- 테이블
- 파일 캐비닛(데이터베이스)안에 들어갈 파일
- 데이터를 저장할 수 있는 구조화된 목록
- 스키마 : Schema
- 데이터베이스, 테이블의 구조와 속성에 대한 정보
- 테이블의 구성
- 열 : Column :필드
- 행 : Row : 레코드
실습 데이터
https://livesql.oracle.com/ 에서 온라인으로 Oracle을 실행해볼 수 있다.
- livesql 가입 후 My Scripts에 접속
- https://blog.insightbook.co.kr/2020/10/06/20407/ 파일을 다운로드해서 sql 파일을 My Scripts에
Upload Script
를 통해 올린다. - SQL worksheet로 이동해 테이블들을 실행할 수 있다.
SQL 팁
- SQL문 끝에 세미콜론 (;)을 붙혀 끝났음을 표시한다
- SQL은 대소문자를 구분하지 않아도 된다. 하지만 DBMS에 따라 테이블이름, 열 이름 등은 구분할 수도 있다.
- SQL문에서 스페이스, 엔터, 탭, 개행은 무시된다
Select
열 조작
SELECT prod_id, prod_name, p.* FROM products p;
- SELECT 이후에 가져오려는 열 이름을 나열할 수 있다
- 모든 열을 가져오려면 *(와일드카드)를 통해 가져올 수 있다.
행의 중복 출력 방지
SELECT DISTINCT vend_id FROM Products;
DISTINCT
키워드를 열 이름 앞에 붙혀 중복값을 제거할 수 있다.- SELECT DISTINCT vend_id, prod_price FROM Products;
DISTINCT
는 모든 열에 일괄 적용된다. 그래서 고유한 항목들의 조합이 반환된다.- 하나의 열에만 적용할 수 없다.여러 행 중 일부 행만 볼 수 있다.
결과 제한하기
여러 행 중 일부 행만 볼 수 있다.
SELECT
PROD_NAME
FROM
PRODUCTS
WHERE
ROWNUM<=5;
- Oracle의 경우 rownum으로 상위 N개를 검색할 수 있다.
- 위의 SQL의 경우 상위 5개를 검색한다.
- 나머지 DBMS의 경우 LIMIT을 많이 사용한다.
'Database > SQL' 카테고리의 다른 글
[코테를 위한 Oracle 정리] 5. 데이터 조작 : 내장 함수 (0) | 2024.08.01 |
---|---|
[코테를 위한 Oracle 정리] 4. 열 계산 및 연결하기 (0) | 2024.07.31 |
[코테를 위한 Oracle 정리] 3. 필터링 : WHERE (0) | 2024.07.29 |
[코테를 위한 Oracle 정리] 2. 정렬 : ORDER BY (0) | 2024.07.28 |
SQL 코딩테스트 대비 (Oracle) 정리 (0) | 2024.07.28 |