[포스코DX|SQL|4주] 15일차 수업
포스코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)
- 지금 내 데탑에 있는 파일을 linux로 옮겨가야함. 새로운 창을 열어서 진행.
sftp:/home/webmaster> put employees_db.zip
이러고 다시 root로 돌아가서 작업!!!!
- db백업 파일 (employees_db.zip)압축 풀기
# move employees_db.zip ~
# unzip employees_db.zip
- 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;
- restore
#pwd
/root/employees_db
mysql
mysql -u root -D employees -p < employees.sql (얘를 읽어서 쿼리를 실행시킴)
mysql 워크벤치에서의 실습
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 는 거의 필수이다.