인파

You Can Become A

늦게 시작해도 누구든지 노력하면 개발자가 될수 있어요 !

공부한 내용을 정리합니다
DBMS/MySQL

[MYSQL] 📚 트리거(Trigger) 개념 & 사용법

Trigger (트리거) 트리거(Trigger)는 사전적 의미로 '방아쇠'라는 뜻이다. MySQL에서 트리거는 테이블에서 어떤 이벤트가 발생했을 때 자동으로 실행되는 것을 말한다. 즉, 어떤 테이블에서 특정한 이벤트(update, insert, delete)가 발생했을 때, 실행시키고자 하는 추가 쿼리 작업들을 자동으로 수행할 수 있게끔 트리거를 미리 설정해 두는 것이다. 예를 들어 고객이 물건을 구매해 구매 테이블에 정보가 insert되면, 등록된 트리거가 발동해 물품 테이블을 자동으로 update 쿼리문을 실행하게 하고, 또 등록된 트리거가 발동해 배송테이블에 insert 쿼리문을 실행시키게 끔 할 수 있다. 데이터베이스 트리거(Database Trigger)는 테이블에 대한 이벤트에 반응해 자동으로..

category_image
인파_
2021.11.08
(0)
DBMS/MySQL

[MYSQL] 📚 스토어드 프로시저 & 스토어드 함수 사용법

스토어드 프로시저 프로시저는 일련의 쿼리를 모아 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이다. ​ [ 프로시저 장점 ] 하나의 요청으로 여러 SQL문을 실행할 수 있다.(네트워크에 대한 부하를 줄일 수 있다.) 미리 구문 분석 및 내부 중간 코드로 변환을 끝내야 하므로 처리 시간이 줄어든다. 데이터베이스 트리거와 결합하여 복잡한 규칙에 의한 데이터의 참조무결성 유지가 가능하게 된다. 간단히 말하면 응용 프로그램 측 로직을 가지지 않고도 데이터베이스의 데이터 앞뒤가 맞게 될 수 있다. ​ [ 프로시저 단점 ] 코드 자산으로서의 재사용성이 나쁘다.(이부분 때문에 실무에서 거의 안쓰는 편이다) 업무의 사양 변경 시 외부 응용 프로그램과 할께 프로시저의 정의를 변경할 필요가 있다. 스토어드 프로시저 사용..

category_image
인파_
2021.11.08
(0)
DBMS/MySQL

[MYSQL] 📚 변수 종류 정리 (사용자 변수 / 지역 변수 / 시스템 변수)

사용자 정의 변수 사용자 정의 변수 선언 및 초기화 SET @변수이름 = 대입값; -- or SET @변수이름 := 대입값; SELECT @변수이름 := 대입값; ​SET 이외의 명령문에서는 = 가 비교연산자로 취급되기 때문에, SELECT 로 변수를 선언하고 값을 대입할 때는 := 를 사용한다. 사용자 정의 변수 사용법 SET @start = 15, @finish = 20; -- 또는 SELECT @start := 15, @finish := 20; SELECT * FROM employee WHERE id BETWEEN @start AND @finish; [참고사항] 저장하는 값에 의해 자료형이 정해지며, Integer, Decimal, Float, Binary 그리고 문자열 타입만 취급할 수 있다. 또..

category_image
인파_
2021.11.08
(0)
DBMS/MySQL

[MYSQL] 📚 제어문 (case / if) 문법 정리

MYSQL 제어문 기본 적으로 제어문은 무얼 조회하는데 보다는, 새로운 필드를 생성해서 뷰로 만드는데 목적을 둔다. 새로운 필드를 생성하고 각 필드값을 제어문으로 조건을 줘서 값을 결정하는 방식이다. CASE 문 CASE는 두가지 문법이 가능하다. 하나는 switch 같이 쓸 수 있고, 하나는 if문 같이 쓸 수 있다. ​ switch문 value와 compare_value 값이 같으면, THEN 절을 반환 한다. 만약 서로 값이 같지 않으면, ELSE 절을 반환한다. 이때 ELSE 절이 없으면, NULL을 반환한다. CASE value WHEN compare_value THEN '반환 값' WHEN compare_value THEN '반환 값' ELSE 'WHEN 조건에 해당 안되는 경우 반환 값' E..

category_image
인파_
2021.11.08
(0)
DBMS/MySQL

[MYSQL] 📚 뷰(view) 사용법 정리

뷰(view)란? 뷰(view)는 데이터베이스에 존재하는 일종의 가상 테이블을 의미합니다. 이러한 뷰는 실제 테이블처럼 행과 열을 가지고 있지만, 실제로 데이터를 저장하고 있지는 않습니다. create view 뷰명 as select문~ alter view 뷰명 as select문~ with check option 뷰를 호출하는 순간에 뷰 create문안에 써있는 select문이 실행되는 것입니다. 뷰의 특징 뷰를 update 가능은 합니다. 뷰를 insert하는 것은 조건이 있습니 다. 테이블의 모든 필드의 값을 넣어줘야하는데 일부만 넣어주게 되면 불가능. 그래서 넣으려면 전체를 다 넣거나 디폴트를 지정해줍니다. 집계함수가 들어가느 뷰는 수정 불가능 with check option을 주면 체크조건이 들..

category_image
인파_
2021.11.08
(0)
DBMS/MySQL

[MYSQL] 📚 테이블 제약 조건 정리

제약 조건(constraint) 제약 조건(constraint)이란 데이터의 무결성을 지키기 위해, 데이터를 입력받을 때 실행되는 검사 규칙을 의미합니다. 이러한 제약 조건은 CREATE 문으로 테이블을 생성할 때나 ALTER 문으로 필드를 추가할 때도 설정할 수도 있습니다. NOT NULL - NULL 비허용 - 중복값 허용 NOT NULL 제약 조건은 CREATE 문으로 테이블을 생성할 때나, 나중에 ALTER 문으로 추가할 수도 있습니다. CREATE TABLE Test ( ID INT NOT NULL, Name VARCHAR(30), ReserveDate DATE, RoomNum INT ); ALTER TABLE 테이블이름 ADD 필드이름 필드타입 NOT NULL -- 새로운 not null 지정..

category_image
인파_
2021.11.08
(0)
DBMS/MySQL

[MYSQL] 📚 내장함수 종류 정리

집계 함수 COUNT(필드명) --NULL 값이 아닌 레코드 수를 구한다. SUM(필드명) - 필드명의 합계를 구한다. AVG(필드명) - 각각의 그룹 안에서 필드명의 평균값을 구한다. MAX(필드명) - 최대값을 구한다. MIN(필드명) - 최소값을 구한다. select userId, sum(amount) as 'SUM' # as안쓰면 sum(amount)이 컬럼 이름이 되니까 깔끔하게 별칭 사용 from buyTbl group by userid; #그룹핑을 안해주면 sum이 전체를 더해버린다. 그룹을 해줘야 그룹된 id에 맞게 sum을 해준다 select name, height from userTbl where height = (select max(height) from usertbl) or heig..

category_image
인파_
2021.11.07
(0)
DBMS/MySQL

[MYSQL] 📚 연산자 종류 정리

산술 연산자 산술 연산자 설명 +, - ,*, / 덧셈, 뺄셈, 곱셈, 나눗셈 DIV 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후, 소수 부분을 버림. %또는 MOD 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후, 그 나머지를 반환함. SELECT 504.7 + 13, 504.7 * 0.9, 504.7 / 2, 504.7 DIV 2, 504.7 % 2; 대입 연산자 대입 연산자 설명 = 왼쪽 피연산자에 오른쪽 피연산자를 대입함. (SET 문이나 UPDATE 문의 SET 절에서만 대입연산자로 사용됨) := 왼쪽 피연산자에 오른쪽 피연산자를 대입함. MySQL에서 '=' 연산자는 두 가지 의미로 해석됩니다. 우선 SET 문이나 UPDATE 문의 SET 절에서 사용되면, 왼쪽 피연산자에 오른쪽 피연산자를 대입하는 ..

category_image
인파_
2021.11.07
(0)
DBMS/MySQL

[MYSQL] 📚 자료형 타입 종류 정리

숫자 데이터 형식 DECIMAL은 정확한 수치를 저장하지만 FLOAT, REAL은 근사치 값을 저장합니다. 대신에 FLOAT, REAL은 더 큰 숫자를 저장할 수 있습니다. 부호없는 숫자를 저장할 때에는 UNSIGNED 예약어를 같이 사용합니다. 데이터 타입 바이트 수 숫자 범위 설명 BIT(N) N/8 ​ 1 ~ 64bit를 표현합니다. b'0000' 과 같이 표현 TINYINT 1 -128 ~ 127 정수 SMALLINT 2 -32,768 ~ 32,767 정수 MEDIUMINT 3 -8,388,608 ~ 8,388,607 정수 INT INTEGER 4 약 -21억 ~ +21억 정수 BIGINT 8 약 -900경 ~ +900경 정수 FLOAT 4 -3.40E+38 ~ -1.17E-38 소수점 아래 7자..

category_image
인파_
2021.11.07
(0)
DBMS/MySQL

[MYSQL] 📚 기본 SQL문법 정리 (테이블 조회, 생성, 수정, 삭제)

DB 다루기 구문 -- 데이터베이스 보기 show databases; -- 만약 sqlDB가 존재하면 우선 지운다. drop database if exists sqlDB; -- 데이터베이스 생성 create database sqlDB; -- 데이터베이스 선택 use sqlDB; ⚠️ 유닉스 환경의 MySQL에서는 데이터베이스 이름의 대소문자를 구분합니다. 그러나 윈도우 환경의 MySQL에서는 데이터베이스의 이름에 대소문자를 구분하지 않습니다. 하지만 될 수 있으면 언제나 데이터베이스의 이름은 대소문자를 구분하여 사용하는 것이 가독성 측면에서도 좋습니다. 테이블 생성 CREATE TABLE db명.테이블명 ( 컬럼명1 INT PRIMARY KEY AUTO_INCREMENT, -- 기본키 숫자 자동 증가 설..

category_image
인파_
2021.11.06
(0)