DB/MySQL

SQL이란? / mySQL 사용 순서

태로미 2023. 1. 25. 22:34

 

 

 

 

 

 

 

 

 

 

▶▶   SQL이란?

–  Structured Query Language
–  데이터 엑세스를 위해 Oracle Server와 통신하는 언어.
–  관계형 데이터베이스의 서버와 정보를 주고 받을 때 사용하는 언어.
–  기본적으로 대소문자를 구분하지 않음.

 

 

 

 

 

 

▶   용어

 

•  열 (column)

–  속성을 나타냄.

     ex )  employe_id, last_name, first_name...


•  행 (row)

–  테이블에 담겨 있는 하나의 데이터의 모든 데이터 값 (레코드 데이터

    ex ) 1명의 사원이 가진 모든 속성이 포함된 데이터.
–  필드에는 한 개의 값들만 보관됨. 

    ex )  숫자, 문자, 날짜...
–  하나의 속성(col)에는 단일 데이터타입이 입력됨.   

    ex )  ID 속성에는 무조건 숫자만,  Last name 속성에는 무조건 문자만

 

 

 

 

 

 

 

 

 


▶   PRIMARY KEY & FOREIGN KEY

–  제약조건


 

1.  PRIMARY KEY(기본키,  부모)

–  테이블의 각 행(row)을 고유하게 식별하는 열(column) 또는 열 집합.
–  무조건 값이 있어야 하며 중복 불가능.
–  겹치지 않는 고유 값   .

    ex ) 사원번호

 

 

2.  FOREIGN KEY(외래키,  자식)

–  다른 테이블의 기본 키를 참조(인용)하는 열.
–  그래서 조작이 불가능하며 그대로 써야 함.
–  중복이 가능하나 값이 없다거나 엉뚱한 값이 있을 순 없음.
–  부모에게 물려받은 것만 활용 가능.

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

   DB 사용 순서

  1.  SHOW                   :  현재 가지고 있는 데이터베이스 목록 조회      // mysql> SHOW databases;
  2.  USE                       :  이제부터 접속할 데이터베이스를 선택함       // mysql> USE hr;
  3.  SHOW                   :  데이터베이스의 테이블 목록 조회                 // mysql> SHOW tables;
  4.  DESCRIBE            :  테이블 구조 조회                                          // mysql> DESCRIBE employees;
  5.  SELECT & FROM  :  SELECT + 컬럼명 &  FROM + 테이블명    // mysql> SELECT employee_id   FROM employees;

 

 

 

 

 

 

 

▶   show databases;

–  현재 가지고 있는 데이터베이스를 보여줌.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| hr                 |  // 내가 설치한 것
| information_schema |
| mysql              |
| performance_schema |
| sakila             | 	
| sys                |
| world              | 	// 샘플 데이터베이스
+--------------------+

 

 

 

 

 

 

 

   use + db name;

–  사용할 데이터베이스 선택.

mysql> use hr;
Database changed

 

 

 

 

 

 

 

▶    show tables;

–  db는 테이블 단위로 묶어서 보관함.

–  hr db가 가진 테이블 목록을 보여줌.

mysql> show tables;
+------------------+
| Tables_in_hr     |
+------------------+
| countries        |
| departments      |
| emp_details_view |
| employees        |
| job_history      |
| jobs             |
| locations        |
| regions          |
+------------------+
8 rows in set (0.01 sec)

 

 

 

 

 

 

 

   describe + 테이블명;

–  desc 테이블명도 가능.

–  테이블 구조조회.
–  컬럼의 목록, 데이터타입, 다른 속성값들을 조회가능.

mysql> DESCRIBE employees;
+----------------+--------------+------+-----+---------+-------+
| Field          | Type         | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| employee_id    | int unsigned | NO   | PRI | NULL    |       |    
| first_name     | varchar(20)  | YES  |     | NULL    |       | 
| last_name      | varchar(25)  | NO   |     | NULL    |       |		
| email          | varchar(25)  | NO   |     | NULL    |       |
| phone_number   | varchar(20)  | YES  |     | NULL    |       |
| hire_date      | date         | NO   |     | NULL    |       |
| job_id         | varchar(10)  | NO   | MUL | NULL    |       |
| salary         | decimal(8,2) | NO   |     | NULL    |       |  // decimal(8,2) : 8자리까지 표현할 수 있는데,
| commission_pct | decimal(2,2) | YES  |     | NULL    |       |                    2자리정도는 소숫점자리로 표현하는 데이터타입
| manager_id     | int unsigned | YES  | MUL | NULL    |       |
| department_id  | int unsigned | YES  | MUL | NULL    |       |
+----------------+--------------+------+-----+---------+-------+
11 rows in set (0.00 sec)

   varchar(20) : 가변문자열의 데이터타입,  최대 20byte까지 문자데이터 담을 수 있음.

   date : 날짜값을 저장하는 데이터타입이며 고정값임.전세계의 날짜는 동일하기 때문.

   decimal(8,2) : 실수,  8자리숫자(8byte) 받을건데 그 중에서 2자리(2byte)는 소수점 아래 표현에 사용한다는 뜻.