본문 바로가기

ComputerScience/Database

DB - 2. Basic SQL statements

728x90

1. Domain SQL Types

2. Create table

- ()는 할당된 메모리 크기를 말한다.

- name column의 타입을 정의할 때 not null을 해주면 null삽입의 시도를 막을 수 있다.

- 참고로 primary key같은 제약을 걸어주면 ID에는 null 값이 못 들어오게 된다.

- 여러개의 foreign key를 선언할 수도 있다.

3. Insertion

- course라는 테이블에 해당 record를 삽입한다.

4. Select

- instructor 테이블에서 where 조건을 만족하는 name record의 name을 가져와라

- 결과는 relation으로 반환한다.

- 기본적으로 sql은 중복을 허용한다. 따라서 instructor relation에서 dept_name colum만 따로 떼어와도 중복된 내용이 있을 수 있다.

- distinct를 써주면 중복이 제거된다.

- select에서 column에 대해서 연산을 수행함은 물론 이름도 바꿔서 가져오도록 할 수 있다.

- from에 여러 relation이 들어가는 경우를 살펴보자

- 위의 예시는 insructor와 teaches의 곱의 결과에서 select를 하게 된다.

- 조건이 있다면 곱의 결과에서 조건을 만족하는 tuple을 가져오게 된다.

- product를 하면 의미없는 tuple쌍이 생길 수 있기 때문에 where에서 조건을 설정하고 필요한 column들을 가져온다.

 

- 정리를 해보면 아래와 같다.

5. Deletion

- table의 튜플만 제거한다. 테이블은 사라지지 않는다.

- drop table r 이라고 하면 r 이라는 테이블까지 통째로 삭제한다.

6. Update

7. Rename

- 첫번째 instructor를 T, 두번째 instructor를 S라고 바꿔서 사용할 수 있다.

- 두 instructor를 구분시키기 위해서는 개명이 반드시 필요하다. 

- 참고로 위 구문의 의미는 some instructor of comp.sci 보다 salary가 많은 instructor를 뽑는다 이다.

8. String Operation

- 문자열 타입인 column의 경우 substring 또는 한두개의 문자로 해당 변수를 찾고 싶을 때 쓸 수 있다. 

- 위의 예시는 교수의 이름이 뭔지는 모르겠으나 dar가 중간에 들어간 사람을 찾는 문장이다.

9. Ordering

- select하여 결과를 display할때 sort option을 줄 수 있다.

- order by에 두 property를 넣어주면 1차 dept_name으로 정렬하고 2차 name으로 정렬한다는 뜻이다.

- 한가지 유의할 점이 있는데, order by를 먼저 수행하고 select구문이 수행된다. 만약 그 반대로 instructor에서 name을 먼저 뽑아버렸다면 dept_name으로는 정렬이 불가능 하기 때문이다.

- asc, desc : 오름차순, 내림차순

10. Between, Tuple comparison

- between은 범위를 좀더 쉽게 정의할 수 있게 해준다.

- 크거나 같고 작거나 같은 범위를 정의한다. 

- tuple이 같음을 더 쉽게 정의할 수 있게 해준다. 

11. set operation

- 집합 연산도 제공한다. 

- 당연히 집합 연산의 피연산자들은 호환성이 맞아야 한다(동일한 컬럼으로 구성되어있음)

- select는 중복을 허용한다고 했다. 즉 select후에 동일한 tuple이 존재할 수 있다.

- 하지만 set연산을 수행한결과는 기본적으로 중복을 제거한다.

- set연산 후에도 중복된 tuple을 그냥 남겨두고 싶다면 뒤에 "all"을 붙여주면 된다.

12. null

 

- 반대로 not null을 찾고 싶다면 "is not null"을 쓰면된다.

 

- 한가지 주의 할 점을 살펴보자.

- null > 5, null = null 등은 판정을 할 수가 없다. 

- 따라서 위같은 경우는 unknown이라고 한다.

- 즉 조건의 판정은 T, F, unknown 세가지 상태로 가능하고 and, or 연산도 가능하다. ex) unknown or F = unknown

 

*자 그럼 이제 어떤 조건의 결과가 unknown이 되었다고 하자. 이는 false로 간주하고 select등의 문장들이 수행된다.

*select는 오직 where가 T인 tuple만 가져온다.

13. MySQL 설치, 설정, 실행 (OS X)

 

macOS MySQL 설치 및 설정 사용법

macOS에서 MySQL 설치, 삭제, 환경변수 설정 및 사용법! Web 공부를 하다 보면 데이터베이스는 필수로 사용되는 거 같습니다. 저는 Web 개발 공부를 하고 있는데, 데이터베이스로 MySQL을 사용하려고

whitepaek.tistory.com

- 설치

1. brew update

2. brew search mysql

3. brew install mysql

- 설정

1. mysql.server start

2. mysql_secure_installation -> 비밀번호, option 설정

- 실행

1. mysql -uroot -p (로그인)

2. exit, quit (로그아웃)

3. mysql.server stop (서버 종료)

14. MySQL 실습

- create database [이름];

- show databases;

- use database [이름];

- create table [이름] ();

- show tables;

- insert

- select

- select where

- delete

728x90
반응형

'ComputerScience > Database' 카테고리의 다른 글

DB - 6. More SQL statements(1)  (0) 2021.09.29
DB - 5. Schema Diagram, Relational Algebra  (0) 2021.09.15
DB - 4. Keys (at relational DB)  (0) 2021.09.15
DB - 3. Relational Database  (0) 2021.09.08
DB - 1. Introduction  (0) 2021.09.01