231026 TIL #226 SQL #1 데이터 가져오기 / SELECT문

김춘복·2023년 10월 26일
0

TIL : Today I Learned

목록 보기
226/571

Today I Learned

다음달에 있을 SQLD 시험 준비 겸 MySQL 책을 본격적으로 시작했다.


SQL 입문

MySQL 주요 데이터 형

데이터형데이터
INT정수(4바이트)
BIGINT정수(8바이트)
TINYINT정수(-128~127,1바이트)
CHAR(문자 수)고정형문자열(~255)
VARCHAR(문자 수)가변형문자열(1~65535)
TEXT가변형문자열
DOUBLE실수
FLOAT실수
DECIMAL(전체 자릿수, 소수점 이하 자릿수)수치
DATE날짜
TIME시각
DATETIME일시
TIMESTAMP일시
BOOLEAN논리값
  • CHAR는 고정형. CHAR(16)일시 어떤 데이터가 들어가든 16바이트의 공간을 고정적으로 차지한다.

  • VARCHAR는 가변형. 255이하면 1바이트, 255초과시 2바이트의 추가 공간을 사용하고, 정해진 크기 이하의 문자열 데이터를 저장할 수 있다. 인덱싱과 검색에 효과적이다.

  • TEXT는 일반적으로 최대 길이 제한이 없어 긴 텍스트를 저장할 때 사용한다.

  • 알파벳은 한 글자당 1바이트. 한글은 UTF-8의 경우 3바이트, UTF-16은 2바이트로 인코딩 방식에 따라 다르다.

  • DECIMAL은 고정 소수점 유형으로 (정밀도,스케일)로 표현된다. 최대 65자리까지 표현한다.

  • DATE는 3바이트로 1000-01-01 ~ 9999-12-31로 날짜를 표현한다.

  • TIME은 3바이트로 -838:59:59 ~ 838:59:59까지의 시간을 표현한다.

  • DATETIME은 8바이트로 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59까지의 날짜와 시간을 나타낸다.

  • TIMESTAMP는 4바이트로 1970-01-01 00:00:00 ~ 2037-01-19 03:14:07까지 날짜와 시간을 표현한다. INSERT와 UPDATE연산에 유리하다.

데이터베이스

  • DB - DataBase
    구조화된 방식으로 데이터를 저장, 관리, 및 검색하기 위한 컴퓨터 기반의 시스템 또는 소프트웨어.
    효율적인 데이터 저장과 접근을 제공하며, 데이터의 일관성, 무결성 및 보안을 유지할 수 있도록 한다.

  • DBMS - DataBase Management System
    데이터베이스를 만들고 관리하는 소프트웨어.
    DBMS는 데이터의 추가, 수정, 삭제 및 검색을 지원하며 데이터베이스의 구조, 무결성 규칙, 보안 등을 관리한다.
    이를 통해 사용자는 데이터에 쉽게 액세스하고 조작할 수 있으며, 여러 사용자가 동시에 데이터를 공유하고 작업할 수 있도록한다.

  • RDB - Relational DataBase
    관계형 데이터베이스. 행(레코드)과 열(컬럼)으로 구성된 테이블을 데이터로 다룬다.
    테이블 안의 1개의 요소를 필드라 부른다.
    RDB를 관리하는 DBMS를 RDBMS라 한다.

  • SQL - Structured Query Language
    DB 조작이나 정의를 시행하기 위한 언어.

SELECT문

데이터를 가져오는 구문. '무엇'을 '어디'에서 가져올지 지정한다.

  • 사용 방법 : SELECT 컬럼명 FROM 테이블명;
SELECT product_id, product_name FROM product;

SELECT 무엇 FROM 어디; 의 형태로 사용한다.

  • 컬럼명은 중복해서 작성하면 중복해서 가져오며, 적은 순서대로 정렬해 보여준다.
    ex) SELECT *, product_id FROM product; 를 사용하면 모든 컬럼과 마지막에 product_id를 또 가져온다.

  • * : 애스터리스크라 한다. 컬럼명 대신 사용하면 모든 컬럼을 가져온다.

  • 한 개의 SQL문 마지막에는 반드시 ;를 붙인다. 툴을 사용할 경우 자동으로 붙여주기도 한다.

  • 예약어 : SELECT나 FROM, AS와 같은 정해진 역할을 하는 특별한 기능을 가진 단어. 테이블 명이나 컬럼 명으로 사용할 수 없다. 가독성 및 구분을 위해 대문자로 적는 것이 보통이지만 소문자로 적어도 인식은 된다.

  • 예약어의 앞뒤는 공백이 반드시 필요하나 컬럼명끼리의 쉼표 사이는 공백이 있어도 없어도 상관없다.
    그리고 공백은 줄바꿈으로 대체가 가능해 가독성 좋은대로 작성하면 된다.

  • AS(에일리어스)
    테이블 명이나 컬럼명 뒤에 붙여 해당 테이블 or 컬럼의 별명을 부여할 수 있다.

SELECT
 product_id AS 상품ID,
 product_name AS 상품명
FROM
 product;
profile
Backend Dev / Data Engineer

0개의 댓글