[Section 2] 관계형 데이터베이스(1)

현이·2023년 3월 28일
0

백엔드 부트캠프 TIL

목록 보기
21/37
post-thumbnail

개선문 전망대에서 찍은 노을 지는 파리! 귀찮고,, 계단 오르기 무섭고 추워서 안가려고 했는데 막상 가보니 너무 좋았다.. 모든 각도로 파리를 다 내려다 볼 수 있는게 제일 큰 장점! 파리에서도 제일 파리다운 모습을 한번에 볼 수 있는 곳이 아닐까

다 좋은데.. MySQL CLI가 말썽이라 비번을 다시 찾아보고 안되면 삭제하고 다시 깔아야겠다ㅠㅠ 설치할때마다 애먹는 MySQL ㅜㅜ


SQL (Structured Query Language)

  • In-Memory : 데이터가 프로그램의 실행에 의존

  • File I/O : 데이터 커질수록 비효율적
    => SQL 사용 !!!

  • Query : 데이터 필터하는 질의문


  • 트랜잭션 : 여러개의 작업을 하나로 묶은 실행 유닛

ACID

  • Atomicity : 완전 실패 or 성공 둘 중 하나
  • Consistency : DB 상태는 이전과 같이 유효(제약조건 같은거)
  • Isolation : 모든 트랜잭션은 다른 트랜잭션으로부터 독립적
  • Durability : 기록은 영구적(롤백해도)

SQL vs. NoSQL

SQL(관계형 데이터베이스)

  • 테이블 구조, 데이터 타입 사전 정의
  • MySQL, Oracle, SQLite, MariaDB
  • 고정된 형식의 스키마
  • 수직적 확장, 높은 비용

NoSQL(비관계형 데이터베이스)

  • key-value 쌍으로 정의
  • 문서형, Wide-column, 그래프
  • 몽고DB, Casandra
  • 행 추가하면서 열 추가 가능
  • 수평적 확장, 비교적 저렴한 비용



SQL 기본 쿼리문


SELECT DISTINCT Country FROM Customers;


SELECT * FROM Customers
WHERE City = 'Berlin' OR City = 'London';

SELECT * FROM Customers
ORDER BY Country,City;


INSERT INTO Customers (CustomerName,Address,City,PostalCode,Country)
VALUES ('Hekkan Burger','Gateveien 15','Sandnes','4306','Norway');

SELECT * FROM Customers
WHERE PostalCode IS NOT NULL;


UPDATE Customers
SET City='Oslo', Country='Norway'
WHERE CustomerID = 32;


DELETE FROM Customers;

SELECT AVG(Price) FROM Products;

SELECT * FROM Customers
WHERE City LIKE '%a%';

SELECT * FROM Customers
WHERE City LIKE '[a-f]%';

SELECT * FROM Customers
WHERE Country NOT IN ('Norway', 'France');

SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;

SELECT CustomerName,Address,PostalCode AS Pno
FROM Customers;

SELECT * FROM Orders
RIGHT JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;

SELECT COUNT(CustomerID),Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;


ALTER TABLE Persons
DROP COLUMN Birthday;

0개의 댓글