TIL-211216_1

EBinY·2021년 12월 16일
0

TIL - Today I Learned

목록 보기
19/54

SQL

  • In-Memory: 프로그램이 실행될 때에만 존재하는 데이터
    • 프로그램의 실행에 의존, 프로그램 종료시 데이터도 사라짐
  • File I/O: 파일을 읽는 방식으로 작동하는 형태, CSV, 엑셀 시트
    • 데이터가 필요할 때마다 전체 파일을 매번 리딩, 파일 커질수록 비효율
    • 파일의 손상, 여러 개의 파일 동시 사용 등 복잡하고 데이터 많아질수록 불리
  • 관계형 데이터베이스: 하나의 CSV 파일, 엑셀 시트를 한 개의 테이블로 저장
    • 한 번에 여러 개의 테이블을 가질 수 있어 SQL을 활용, 데이터 불러오기에 수월
  • SQL: Structured Query Language, 데이터베이스 언어, 주로 관계형 데이터베이스에서 사용(MySQL, Oracle, SQLite, PostgreSQL)
    • 데이터베이스 용 프로그래밍 언어, 데이터베이스에 쿼리를 보내 원하는 데이터를 가져오거나 삽입할 수 있다
    • 데이터가 구조화된 테이블을 사용하는 데이터베이스에서 활용(relation이라고도 불리는 structured table)
    • NoSQL: 데이터의 구조가 고정되어 있지 않은 데이터베이스
      • 테이블을 사용하지 않고, 데이터를 다른 형태로 저장(ex.MongoDB, 문서지향)
    • SQL은 구조화 된 쿼리 언어
    • 쿼리: 기존에 존재하는 데이터를 검색어로 필터링하기 위한 질의문이라고 볼 수 있음

기본 쿼리문

  • Select
  • Where
  • And, Or, Not
  • Order By
  • Insert Into
  • Null Values
  • Update
  • Delete
  • Count
  • Like
  • Wildcards
  • Aliases
  • Joins
    • Inner Join
    • Left Join
    • Right Join
  • Group By
  • 데이터베이스 관련 용어
    • SQL Create DB
    • SQL Drop DB
    • SQL Create Table
    • SQL Drop Table
    • SQL Alter Table
    • SQL Not Null
    • SQL Unique
    • SQL Primary Key
    • SQL Foreign Key
    • SQL Default
    • SQL Auto Increment
    • SQL Dates
  • 데이터베이스 관련 명령어
    • 데이터베이스 생성: CREATE DATABASE 데이터베이스_이름;

    • 데이터베이스 사용: USE 데이터베이스_이름;

      • 테이블을 만들거나 수정, 삭제등의 작업을 하려면 사용 명령을 전달해야 한다
    • 테이블 생성

      • USE를 이용해 데이터베이스를 선택, 테이블을 생성할 수 있다
      필드 이름필드 타입그 외의 속성
      id숫자Primary key이면서 자동 증가하도록 설정
      name문자열 (최대 255개)
      email문자열 (최대 255개)
CREATE TABLE user (
  id int PRIMARY KEY AUTO_INCREMENT,
  name varchar(255),
  email varchar(255)
);
  • 테이블 정보 확인: DESCRIBE user;
mysql> describe user;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int          | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255) | YES  |     | NULL    |                |
| email | varchar(255) | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
  • UPDATE SET
  • DELETE FROM
  • %a%, a%, %a, _a%, [acs]%, [!acs]%, [a-f]%
  • as ALIAS
SELECT c.CustomerId, c.FirstName, count(c.City) as 'City Count'
FROM customers AS c
JOIN employees AS e ON c.SupportRepId = e.EmployeeId
WHERE c.Country = 'Brazil'
GROUP BY c.City
ORDER BY 3 DESC, c.CustomerId ASC
LIMIT 3
  • CREATE DATABASE nameDB;
  • DROP DATABASE nameDB;
  • ALTER TABLE table add columnName 'type'
  • ALTER TABLE dbo.doc_exb DROP COLUMN column_b;
  • 저장공간의 크기 및 개념: DATABASE > Table(Entities) > Recode(data) 순으로

0개의 댓글