목록db (10)
개발은 처음이라 개발새발
프로시저는 SQL Server에 저장되는 하나의 작업 단위로, 미리 정의된 SQL 문의 집합입니다. 데이터베이스에서 자주 사용되는 쿼리들을 하나의 함수처럼 실행할 수 있게 해줍니다.프로시저의 장점재사용성: 동일한 쿼리를 여러 번 작성할 필요 없이 저장된 프로시저를 호출하여 사용성능: 최초 실행 시 최적화된 실행 계획을 캐시하여 재사용유지보수: 프로시저 수정 시 이를 사용하는 모든 애플리케이션에 자동 반영보안: 테이블에 직접 접근하지 않고 프로시저를 통해 접근하도록 제한 가능프로시저 기본 구조CREATE PROCEDURE 프로시저_이름 @파라미터1 데이터타입, @파라미터2 데이터타입ASBEGIN SET NOCOUNT ON; -- SQL 문장들 SET NOCOUNT OFF;END주..
우선 group by를 소개했을 때 예제로 적어보았던 사용자별 총 구매액을 다시 불러 와보겠습니다. select userid as '사용자 아이디', sum(price*amount) as '총 구매액' from buytbl group by userid; +---------------+-----------+ | 사용자 아이디 | 총 구매액 | +---------------+-----------+ | BBK | 1920 | | EJW | 95 | | JYP | 200 | | KBS | 1210 | | SSK | 75 | +---------------+-----------+ 지난 번에는 이렇게 총 구매액만을 구해봤는데 여기에서 더 나아가 총 구매액이 1000 이상인 사용자에게만 사은품을 증정하고 싶다면 어떻게..

SQL에서 group by와 함께 사용하는 집계함수에 대해 간단하게 알아보겠습니다. 위 표는 group by와 함께 사용되는 집계 함수입니다. 그렇다면 위의 것들 중에 예제로 간단하게 어떻게 노출되는지 확인해보겠습니다. 우선 평균을 구해보겠습니다. 지난 편에 이어 buytbl에서 전체 구매자가 구매한 물품의 개수를 구해보겠습니다. select avg(amount) as '평균 구매 개수' from buytbl; +----------------+ | 평균 구매 개수 | +----------------+ | 2.9167 | +----------------+ 이렇게 전체 평균 구매 개수를 구하는 걸 넘어 사용자별로 평균 구매 개수를 한번 내보겠습니다. select userid , avg(amount) as '..
SQL에는 파이썬 처럼 group by가 존재합니다. group by는 말그대로 그룹으로 묶어주는 역할을 합니다. 이를 통해서 그룹별로 수량이 어떻게 되는지 그리고 품목 남은 수량의 가격이나 구매자가 총 얼마를 결재 했는지에 대해 알 수 있습니다. 우선 buytbl에서 사용자별 구매한 물품 개수에 대해 알아보겠습니다. select userid, sum(amount) from buytbl group by userid; +--------+-------------+ | userid | sum(amount) | +--------+-------------+ | BBK | 19 | | EJW | 4 | | JYP | 1 | | KBS | 6 | | SSK | 5 | +--------+-------------+ 네 ..
이번에 간단하게 소개해볼 연산자는 LIKE 입니다. 가끔 where 조건을 적을 때 컬럼명은 기억이 나는데 조건으로 적을 데이터가 기억이 안날 때가 있습니다. 저같은 경우는 이름을 등록할 데이터베이스의 경우 성은 기억이 나는데 이름이 기억이 안 날때가 많더라고요. 이럴 때 LIKE 연산자를 사용하면 여러분의 기억을 찾는데 도움이 될 겁니다. ### LIKE select name,height from usertbl where name like '김%'; +--------+--------+ | name | height | +--------+--------+ | 김범수 | 173 | | 김경호 | 177 | +--------+--------+ 위 사용한 조건은 맨앞에 이름이 김이고 %는 뒤에 몇글자든 허용한다..
이번 시간에는 WHERE 절에 대해 알아보겠습니다. WHERE절은 조회하는 결과에 특정한 조건을 줘서 원하는 데이터만 보고 싶을 때 사용하는 구문입니다. 우선 지난 시간에 소개한 SQL의 기본적인 쿼리 구문을 다시 보겠습니다. ####SELECT 구문 기본 구조 SELECT 열 이름 FROM 테이블 이름 WHERE 조건 지난 시간에는 from까지 해봤는데 이번 시간에는 where 조건식에 대해 해보겠습니다. 저는 sqldb의 usertbl에 있는 데이터를 가지고 조건을 입혀 추출해볼건데요. 이름이 '김경호'인 사람의 데이터를 찾아보겠습니다. use sqldb; select * from usertbl where name = '김경호'; +--------+--------+-----------+------+-..

인덱스 맛보기에 이어 트리거 맛보기를 해보겠습니다. 트리거는 테이블에 부착되엇 테이블에 insert, update, delete 작업이 발생되면 실행되는 코드입니다. 쉽게 설명하면 '자동'으로 위와 같은 쿼리가 실행된다는 겁니다. 자세한 내용은 다음 시간에 다뤄보도록 하고 이번 시간은 맛보기로 해보겠습니다. 우선 shopdb에 있는 memeber_tbl에서 삭제된 데이터를 트리거 통해 삭제된 데이터를 담는 테이블에 넣어보려고 합니다. 그러면 우선 member_tbl에 삭제할 데이터를 입력해보도록하겠습니다. 그리고 삭제한 데이터를 담을 테이블까지 생성해보겠습니다. insert into shopdb.member_tbl values('figure','연아','경기도 군포시'); #데이터 변경 update sh..

데이터베이스는 데이터를 효율적이고 안전하게 저장하는 역할을 해야 할 뿐만 아니라 조회 역시 빠르게 하는 게 좋습니다. 이를 위해서 필요한 것은 여러 가지가 있는데요. 그중에서 인덱스를 지정해 조회를 하는 시간을 줄이는 방법이 있습니다. 이번 시간에는 이것이 MySQL이다 3장에서 간략히 소개된 인덱스 활용 맛보기에 대해 소개해보겠습니다. 우선 새로운 테이블을 만들고 데이터를 삽입해야 합니다. 데이터는 이것이 MySQL이다 초반 다운받을 수 있는 employees 데이터베이스에서 가져오려고 합니다. #새로운 테이블 만들기 create table shopdb.indexTBL ( first_name varchar(14), last_name varchar(16), hire_date date); #새로운 테이블에..
지난 편에서 데이터를 담을 테이블을 생성했으니 이번엔 그 테이블 안에 데이터를 입력해보도록하겠습니다. 데이터를 입력하는 문법은 insert into 입니다. 먼저 쿼리를 보겠습니다. INSERT INTO `member_tbl` (`member_id`, `member_namel`, `member_addres`) VALUES ('Dang', '당탕이', '경기 부천시 중동'); INSERT INTO `member_tbl` (`member_id`, `member_namel`, `member_addres`) VALUES ('Han', '한주연', '인천 남구 주안동'); INSERT INTO `member_tbl` (`member_id`, `member_namel`, `member_addres`) VALUES ..
오늘은 책 한권을 소개해볼까 합니다. 데이터 분석을 하는 데 있어서 파이썬도 중요하지만 데이터를 저장하고 관리하는 것도 매우 중요한대요. 그러기 위해서는 DBMS라고 하는 데이터베이스를 관리하고 운영하는 시스템 공부도 중요합니다. 그래서 소개해 드릴 책은 그중에서 가장 기본서라고 할 수 있는 "이것이 MySQL이다"라는 책입니다. 저는 올해 들어서 파이썬과 판다스 공부를 열심히 하고 있는데요. SQL에 대해서 아주 모르는 것은 아니지만 좀 더 역량을 쌓기 위해서 하반기부터는 이것이 MySQL이다를 통해 SQL 공부도 열심히 해서 포스팅을 남겨보려 합니다. https://book.naver.com/bookdb/book_detail.nhn?bid=16345347 이것이 MySQL이다 - 『이것이 MySQL이..