본문 바로가기
Databases

HeidiSQL : 툴을 이용한 DB

by 손영진 2023. 6. 8.
728x90

#1 tool 설치

https://www.heidisql.com/download.php?download=installer 

 

Download HeidiSQL

Ads were blocked - no problem. But keep in mind that developing HeidiSQL, user support and hosting takes time and money. You may want to send a donation instead. Download HeidiSQL 12.5, released on 08 May 2023 Please disable your adblocker and reload the p

www.heidisql.com

 

#2 DB의 KEY

  1. 기본키 ( Primary Key)
    • 데이터를 구분하는 값
    • 단일키 : 주민번호, 이메일 등 하나의 정보로 구성
    • 복합키 : 이름 + 나이 + 주소 등 여러 개의 정보로 구성
  2. 외래키 ( Foreign Key)
    • 다른 테이블에서의 기본키
    • 기본키로 존재하고 있어야 입력 가능
  3. 그 외 : 대체키, 후보기, 슈퍼키

#3 SQL

1. 데이터 정의어 ( DDL )

  • 테이블을 생성 / 변경 / 제거하는 기능
  • Create, Drop, Alter

- create 문을 활용하여 table인 주문, 제품, 고객을 생성
- 기본키와 외래키를 만들어준다.

- 데이터 타입

2.데이터 제어어 ( DCL )

  • 데이터에 대해 접근하여 사용할 수 있는 권한 부여 / 취소하는 기능

 

3.  데이터 조작어 ( DML )

  • 테이블에 데이터를 삽입 / 검색 / 수정 / 삭제 하는 기능
  • Insert, Select, Update, Delete
1. INSERT
> INSERT INTO [TABLE] VALUES (속성의 값 리스트);    // 순서를 잘 지켜준다.
[고객] 테이블
[제품] 테이블
[주문] 테이블

2. SELECT
> SELECT [속성]  FROM [테이블명]

- AS : 테이블이 가지고 있는 속성명을 변경하여 출력
> SELECT [속성]  FROM [테이블명] AS [출력하고 싶은 속성명];

-WHERE : 조건에 맞는 테이블의 속성들을 출력
>SELECT [속성] FROM [테이블명] WHERE [조건];
          제조업체가 한빛제과인 제품들을 나열


-LIKE : 부분적으로 일치하는 속성 출력
>SELECT [속성] FROM [테이블명] WHERE [속성명] LIKE '검색데이터';
          김으로 시작하는 고객이름인 고객들을 나열

-NULL : 특정 속성의 값이 NULL인지를 비교하여 출력
>SELECT [속성] FROM [테이블명] WHERE [속성명] IS NULL; (IS NOT NULL)
          나이의 값이 있지 않은 고객을 출력

-ORDER BY : 검색 결과를 오름 / 내림차순으로 정렬하여 출력

>SELECT [속성] FROM [테이블명] ORDER BY [속성] [ASC / DESC];
          나이를 내림차순으로, ASC는 오름차순

- 함수 사용


-CASE : 여러 조건을 동시에 사용하여 출력


- GROUP BY : 특정 속성의 값이 같은 것을 모아 그룹을 만들어 그룹별 출력
>SELECT [속성] FROM [테이블명] GROUP BY [속성] [HAVING 조건];
          제조업체별 제품이 3개 이상인 제품에 대한 속성 출력

- JOIN : 여러 개의 테이블을 연결하여 하나의 테이블 처럼 사용

SELECT [속성]
   FROM [테이블1], [테이블2]
 WHERE [테이블1.속성] = [테이블2.속성];
SELECT [속성]
   FROM [테이블1]
     JOIN [테이블2] ON [테이블1.속성] = [테이블2.속성]
     JOIN [테이블3] ON [테이블1.속성] = [테이블3.속성];

[주문]테이블의 주문제품과 [제품]테이블의 제품번호가 같고 [주문]테이블에서 'banana'인 것들을 출력 JOIN을 통해 [제품]테이블과 [주문]테이블을 엮고, [제품]테이블의 제품번호로 정렬하여 출력

- subquery : select문 안에 또 다른 select 문을 포함
          -> 하나의 튜플행과 여러개의 튜플행을 반환하는 다중 행 부속 질의문 사용 가능

>  적립금이 가장 많은 고객의 모든 정보 검색
> 사원명이 'ALLEN'인 사원의 급여보다 급여를 많이 받은 사원의 모든 속성 검색
> 10번 부서의 평균 급여보다 급여를 많이 받는 사원들의 모든 속성 검색
> 직속상관이 없는 사원이 근무하는 부서의 사원명, 직무, 부서번호 검색
> 보너스가 0인 사원의 부서 평균 급여보다 급여를 적게 받는 사원의 모든 속성 검색

[emp] 테이블의 데이터


3. Update
> UPDATE [테이블명] SET [속성 이름1 = 값1, 속성 이름2 = 값2, …, 속성 이름n = 값n]; [WHERE 조건];

- 테이블에 존재하는 속성들의 값들을 조건에 따라 덮어씌어 수정한다.
      ※ DB 접속 툴 HeidiSQL 사용 시 Auto Commit 비활성화 ->  SET @@AUTOCOMMit = 0;

4. Delete 

> DELETE FROM [테이블명] [WHERE 조건];
> ROLLBACK;

- where절 생략 시 테이블에 존재하는 모든 튜플을 대상으로 삭제
- roolback 명령어로 지우기 이전으로 되돌린다.

 

#4 예제


 

'Databases' 카테고리의 다른 글

데이터베이스 설계  (0) 2023.06.16
MariaDB를 통한 DB  (0) 2023.06.07