MSSQL T-SQL 개념 소개 및 UPDATE 전 BEGIN TRAN 연습
Data Science Life Cyle에서의 SQL
- Business Understanding
- Data Mining
- Data Cleaning
- Data Exploration
- Feature Engineering
- Predictive Modeling
- Data Visualizing
위의 진한 부분에서 SQL은 강력한 툴이 된다.
Data에 대한 이해
- 빈 값(0)과 Null의 차이 -> Survivalship Bias(생존자 편향의 오류)
- 빈 값 = 0 = 정보량이 0이라는 말
- Null 정보량이 아예 없다는 말
- 0을 빠트리지 말자 - 각 부분에 대한 평균이 크다고 해서 전체의 평균이 크지 않다 -> Simpson's Padadox(심슨의 역설)
- 전체에 대한 이해 = 주요 변수, 주요 차원(한 단계 아래 차원의 변수)에 대한 이해가 없다면 결과를 왜곡
- 수술 성공률만 보지말고, 무슨 수술인지도 봐야한다.
SQL(Structured Query Language) = 언어의 그룹이다.
BASE : Standard SQL 위에 4가지 종류가 있다.
- PL/SQL(Procedural Language for SQL)
- T-SQL(Transaction SQL)
- Extended SQL/PSM(SQL/Persistent Stored Modules)
- PL/pgSQL(Procedural Language/PostgreSQL)
DBMS(Database Mnangement System)
데이터를 저장하기 위한 [ 데이터 + 스크립트 + 저장장치 ]를 잘 다루기 위해 기능을 제공하는 시스템
SQL의 구조
- DML(데이터 조작 어) : SELECT, INSERT ,UPDATE, DELETE ( S U I D)
- DDL(데이터 정의 어) : CREATE DROP TRUNCATE(메모리절약) ALTER(수정, TSQL용) RENAME(MySQL용) ( C D T A R )
- DCL(데이터 제어 어) : GRANT REVOKE ( G R )
- TCL(트랜젝선 제어 어) : COMMIT ROLLBACK - data의 퀄리티를 높힐 수 있다.
Transacation
data가 양방향에서 깨지지 않게, 한 묶음으로 한번에 실행하는 것
- 이것을 활용하여 UPDATE 전/후의 비교를 통해 쿼리문을 확인할 수 있다.
- data 백업이 어려운 상황에서수정을 해야할 때 활용할 수 있다.
연습 쿼리문
--DDL(CREATE)--
--계좌 1--
CREATE TABLE BANK_A (
이름 CHAR(20), -- 이름은 조금 크게 잡을 수 있다.
계좌 TEXT, -- 20글자보다 이상 들어간다.
잔고 INT
)
--계좌 2--
CREATE TABLE BANK_B (
이름 CHAR(20),
계좌 TEXT,
잔고 INT
)
--DML--
--돈 미리 넣어놓기--***
INSERT BANK_A VALUES ('조재성', '1', '500000');
INSERT BANK_B VALUES ('김석영', '2', '0');
--계좌 확인--
SELECT * FROM BANK_A
SELECT * FROM BANK_B
--TRANSACTION으로 송금해보기--***
--UPDATE 테이블 SET 바꾸고 싶은 칼럼 = 가지고 계산 WHERE ***
--DELETE와 UPDATE시 WHERE 조건 꼭 달아줄 것***
-- 1. 먼저 한쪽에서 보낸 것만 해보고 ROLLBACK 해보기
BEGIN TRAN
UPDATE BANK_A SET 잔고 = 잔고 - 50000 WHERE 이름 = '조재성'
SELECT * FROM BANK_A
SELECT * FROM BANK_B
--여기 전까지 한꺼번에 선택해서 F5
ROLLBACK --TRAN이 맘에 안들어서 취소
-- 2. 한쪽에서 보내고, 한쪽은 받는 로직까지
BEGIN TRAN
UPDATE BANK_A SET 잔고 = 잔고 - 50000 WHERE 이름 = '조재성'
UPDATE BANK_B SET 잔고 = 잔고 + 50000 WHERE 이름 = '김석영'
SELECT * FROM BANK_A
SELECT * FROM BANK_B
--여기 전까지 한꺼번에 선택해서 F5
COMMIT --TRAN이 맘에 든 것을 저장
'한의대 생활 > └ MySQL & MSSQL' 카테고리의 다른 글
MSSQL JOIN 개념 및 연습 + DELETE, SELECT 팁 (1) | 2019.01.16 |
---|---|
MSSQL INDEX (1) | 2019.01.16 |
MSSQL 기본 쿼리 연습하기 (0) | 2019.01.16 |
MSSQL 설치 및 DB생성 후 CSV파일들 table로 올리기 (0) | 2019.01.16 |
8. 인터넷과 Database client, server / 2번째 database Client Workbench (0) | 2019.01.05 |