포스코DX X 비트교육센터 6기 - SQL


Database(DB)

  • 데이터베이스는 왜 원통 모양으로 그릴까? 초기 디스크 모양을 본딴 것.

  • 데이터 구조를 어떻게 조직적으로 잘 할까 -> DA : 정규화 이론 -> 데이터와 데이터가 관계가 되어있다. RDB 관계형 데이터베이스

  • DBMS : DB software ex. MariaDB, MySQL,,,
  • 데이터 자체 : DB, 소프트웨어 얘기 : DBMS

관련된 사람

  • 데이터의 구조를 만드는 사람 : DA (엔티티를 찾고 테이블로 만들어 데이터를 하나씩 쌓아 관계를 찾아나감.) -> 스키마 디자인
  • DBA : 데이터를 DB를 관리하는 사람
  • DB Application Developer

SQL

  • DDL : 데이터를 제어한다. (권한을 준다.)
  • DCL : 권한 주기
  • DML : 데이터를 조작한다. (우리가 주로 하는 것)

  • CUD는 변경과 관련되어 있다.

  • workbench는 개발툴이다. sql을 개발하는 툴. ERD를 그리거나.

데이터베이스 특성

  • 실시간접근, 계속변화, 동시 공유, 내용 참조(데이터 값의 참조, 객체지향X)

엑셀과 DBMS 차이

DBMS는 데이터 종속성을 보완(데이터 간의 연관관계)하고 중복성을 제거한다.

관계형데이터베이스

  • PK는 변하면 안 된다.

  • 정규화된 엔터티, 테이블

linux에서 mariadb 계정 만드는 방법

mysql workbench

  • 실행: ctrl+enter

  • 주석 : –

—- mariadb-practice
        |---sql연습
        |---sql-practices
        |---model
        |---jdbc-practies
	
	            |---pom.xml
	            |--- src

employees db restor(install)

  1. 지금 내 데탑에 있는 파일을 linux로 옮겨가야함. 새로운 창을 열어서 진행.

image

sftp:/home/webmaster> put employees_db.zip

이러고 다시 root로 돌아가서 작업!!!!

  1. db백업 파일 (employees_db.zip)압축 풀기
# move employees_db.zip ~
# unzip employees_db.zip
  1. employees 데이터베이스 생성 및 hr 계정 생성 /권한 주기
# mysql -u root -p
# create database employees;
# create user 'hr'@'192.168.%' identified by 'hr';
# grant all privileges on employees.* to 'hr'@'192.168.%';
# flush privileges;
  1. restore
#pwd
/root/employees_db

mysql

mysql -u root -D employees -p < employees.sql (얘를 읽어서 쿼리를 실행시킴)

mysql 워크벤치에서의 실습

image

SELECT

SELECT(DISTINCT) 칼럼명(ALIAS)
FROM 테이블명;
  • SELECT : 검색하고자하는 데이터(칼럼)을 나열한다.
  • DISTINCT : 중복행을 제거한다.
  • ALIAS : 나타날 칼럼에 대한 다른 이름을 부여한다.
  • FROM: 선택한 칼럼이 있는 테이블을 명시한다.
SELECT(DISTINT) 칼럼명(ALIAS)
FROM 테이블명
WHERE 조건식
ORDER BY 칼럼이나 표현식 (ASC 또는 DESC)


-- EX --
SELECT *
FROM EMPLOYEES
WHERE TITLE='STAFF'
ORDER BY SALARY BETWWN 100 AND 3000

SELECT 문의 작성 순서

  • SELECT 컬럼명, FROM 테이블명, WHERE 테이블 조건, GROUP BY 컬럼명, HAVING 그룹 조건, ORDER BY 컬럼명

SELECT 문의 해석 순서

  • FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY

  • ORDER BY 는 거의 필수이다.

image