[HUFS/Database] SQL (2)

박경민·2023년 4월 13일
0

[CS/Database]

목록 보기
8/16

Query question

  • 모든 예금 고객들의 잔액 중 가장 큰 액수는? balance 만 필요

select max(balance)
from account

  • Perryridge 지점에서 개설된 예금 계좌 잔액의 총합?
    branch_name, account_number, balance

select sum(balance)
from account
where branch_name = "Perryridge"

  • Harrison 시에 거주하는 고객 중 Perryridge 지점에서 개설된 예금 계좌를 보유하고 있는 고객은 모두 몇 명인가? : customer_city, branch_name, customer_name
    생각없이 customer, account 만으로 하려고 했는데 공통 어트리뷰트가 없는 문제가 생긴다. 따라서 depositor 까지 불러온다.

select count(distinct customer.customer_name)
from customer, account, depositor
where customer.customer_name = depositor.customer_name
depositor.account_number = account.account_number
customer_city = "Harrison"
branch_name = "Perryridge"


SQL (2)

Modification of the Database

테이블을 생성하는 것과 개별 튜플을 추가하는 것은 다른 일이다. 일단 튜플을 추가하는 작업(Insertion) 을 해야 그 이후에 서치를 할 수 있다. 따라서 Insertion 을 먼저 알아보자!

  • Deletion
  • Insertion
  • Updating

Insertion

insert into r (테이블의 이름)
values (A1, A2, A3) (튜플)

튜플을 추가하는 것에는 각 튜플의 순서에 맞게 하나씩 입력해준다.
다음과 같은 테이블에 추가하려면

insert into account
values ('A-9732', 'Perryridge', 1200)

또는 속성의 순서가 기억이 나지 않을 때

insert into account(branch_name, balance, account_number)
values('Perryridge', 1200, 'A-9732')

로 인서트해주면 자동으로 맞춰서 들어간다. (나는 입력의 순서만 맞으면 된다!)

balance 값을 모를 때는 다음과 같이 쓴다.

insert into account
values('A-777', 'Perryridge', null)

이때 null 값을 꼭 지정해줘야 함을 알자. (null 을 허용하는 어트리뷰트에 한해서) 변수 2개만 주면 오류남.

profile
Mathematics, Algorithm, and IDEA for AI research🦖

0개의 댓글