웹찢남

Database - 4일차 본문

Database

Database - 4일차

harry595 2020. 10. 26. 16:32

Basic SQL

  • Table,row and column = Relation,tuple and attribute

SQL Schema

  • identified by a schema name
  • 각각의 element의 authorization id 와 descriptor을 포함함

→ Create Schema State

Catalog

  • SQL 환경의 schema들의 집합
  • INFORMATION_SCHEMA를 항상 포함함
  • 위의 INFOR~는 모든 schema의 정보를 가지고 있음

create table command in SQL

  • specifying a new relation(table)
  • provide name nof table
  • specify attributes,types, initial constraints
  • CREATE TABLE COMPANY.EMPLOYEE

Foreign keys는 error를 발생 시킬 수 있다.

  • Circular references
  • 만들어지지 않은 table을 refer할 때

Attribute Data Types

  • numeric data types

    - Integer numbers: INTEGER,INT,SMALLINT
  • Floating-point numbers: FLOAT,REAL,DOUBLE PRECISION

  • Character-string data types

    • Fixed length: CHAR, CHARACTER

    • Varying length: VARCHAR, CHAR VARYING, CHARACTER VARYING

  • Bit-string data types

    • Fixed length: BIT

    • Varying length: BIT VARYING

  • Boolean data type

    • Values: TRUE or FALSE or NULL or UNKNOWN
  • DATE data type

    • Components: YEAR,MONTH,DAY
  • TIME data type

    • HOUR, MINUTE, SECOND
  • Timestamp data type

    • Timestamp = Date+Time

Domain

  • name used with the attribute specification
  • Improves schema readability
  • ex) CREATE DOMAIN SSN_TYPE AS CHAR(9);

Constraints in SQL

  • PK는 duplicate될 수 없다.
  • PK는 NULL이 될 수 없다.
  • FK는 현존하는 PK의 값을 갖거나 NULL이어야 함

Restriction on SQL

default 값 정하기 - DEFAULT <value>

NULL 불가 - NOT NULL

Domain Range 설정 - Dnumber INT NOT NULL CHECK ( Dnumber >0 );

Primary KEY clause

  • PRIMARY KEY(id);

UNIQUE clause ( 값이 중복 x )

  • UNIQUE KEY uk_name (column1,column2)

FOREIGN KEY clause

  • FOREIGN KEY(parent_id) REFERENCES parent(id)

Table 보기 - SHOW DATABASES;

Table 생성 - CREATE DATABASE IF NOT EXISTS company;

 

SELECT

  • db에서 정보를 가져오는 가장 기본적인 statement

  • SQL은 같은 튜플을 column 값으로 넣을 수 있도록 Allow

  • 사용법

    → SELECT <attribute list> FROM <table list> WHERE <condition>;

  • Condition 에는 =,<,≤,and 등이 들어갈 수 있다.

  • attribute list 에 *를 사용하면 모든 attribute 즉 테이블을 통쨰로 볼 수 있음

  • 아래와 같이 FROM에 TABLE을 여러개 넣을 수 있음 (JOIN이라 생각)

  • FROM TABLE 여러개 일때 WHERE문에 column명이 겹칠 수 있음 이때 테이블1.name 테이블2.name 이런 식으로 분별 가능
  • 이름을 AS를 사용해 아래와 같이 줄일 수 있음

  • attribute 또한 rename이 가능하다. (FROM 내에서)

  • WHERE문이 없을 때 FROM에 두 테이블을 쓰게 된다면 가능한 모든 조합을 보여주게 된다.
  • DISTINCT를 사용해 자원을 절약할 수 있다.(distinct한 튜플만 결과에 보여준다)

  • WHERE문 내에 LIKE로 패턴 을 검색 할 수 있다. '%'는 *과 비슷하다 '_'는 한글자 만을 뜻한다.

  • BETWEEN 10 and 100 으로 10<x<100을 표현할 수 있다.

  • ORDER BY <attribute list>를 통해 정렬이 가능하다. asc,desc 조건도 있음

'Database' 카테고리의 다른 글

Database - 5일차  (0) 2021.02.02
동읍면 DB 만들기  (0) 2020.11.11
Database - 3일차  (0) 2020.10.07
Database - 2일차  (0) 2020.10.03
Database - 1일차  (0) 2020.10.01
Comments