분류 전체보기 196

DBeaver)index 개념정리

테이블 안에 데이터가 1억개 있는데 거기서 'age' 컬럼이 20인 사람을 찾고 싶으면 어쩌죠? SELECT 명령을 내리면 되는데 그럼 컴퓨터는 1억개의 행을 다 뒤져봐야합니다. (매우느림)그게 싫으면 index를 만들어두면 됩니다.     업다운놀이  방금 1부터 100까지 써있는 카드를 책상에 진열해놨습니다.제가 지금 어떤 숫자를 생각하고 있는지 맞춰보십시오.저는 "예/아니오" 로만 대답할 수 있습니다.   멍청한 사람은 1입니까? / 아뇨2입니까? / 아뇨3입니까? / 아뇨이렇게 계속 물어보겠지만 똑똑한 사람은50보다 큽니까? / 넹그렇다면 75보다 작습니까? /넹그럼 68보다 큽니까? / 아뇨이런 식으로 반을 자르면서 답이 아닌걸 소거합니다. 그럼 훨씬 적은 질문으로 답을 찾아낼 수 있으니까요. ..

Mysql&DBeaver 2024.09.08

DBeaver)procedure, function 안에서 쓸 수 있는 IF

뭘 하든 경우에 따라 다른 코드를 실행하고 싶은 경우가 많습니다. 그럴 때 IF / THEN / ELSE 문법을 사용합시다.    조건에 따라 다른 SQL 문장을 실행하고 싶다 예를 들어봅시다. card테이블의 '사용금액' 컬럼 총 합계를 구하는데총 합계가 500만원이 넘지 않으면 SELECT '분발하세요'총 합계가 500만원이 넘으면 SELECT '잘했어요'를 실행하고 싶으면 어떻게 코드를 짜죠? 예전에 배운 IF() 또는 CASE 써도 가능하겠지만그 문법들은 "이 경우엔 A, 저 경우엔 B를 그 자리에 남겨주세요" 이렇게경우에 따라 문자나 숫자자료를 1개 남겨주는 문법일 뿐이라조건에 따라 SELECT같은 쿼리문은 남기지 못합니다.       조건에 따라 다른 코드를 실행하고 싶으면 IF THEN EL..

Mysql&DBeaver 2024.09.08

DBeaver)procedure와 비슷한 function 문법

실은 procedure와 비슷한 문법이 하나 있습니다.function (함수) 문법인데 용도는 같습니다만 기능만 살짝 다릅니다.procedure 왜 만들어쓴다고 했죠? 그냥 자주 쓰는 긴 코드 한 단어로 만들어놓고 싶을 때 쓴다고 했습니다.function도 똑같음      DBeaver에서 function 만드는 법   ▲ 데이터베이스 누르면 있는 procedure 만드는 곳에서 똑같이 만들 수 있습니다.다만 procedure 말고 function으로 선택하고 이름 아무렇게나 작명하면 됩니다.     ▲ 그리고 똑같이 BEGIN / END 사이에 자주 쓸 코드 집어넣어두고 저장하면 됩니다. 그럼 앞으로 함수명() 사용할 때 마다 BEGIN / END 사이에 있던 긴 코드가 실행됩니다. 용도는 proced..

Mysql&DBeaver 2024.09.08

DBeaver)날짜 & 시간데이터 다루기

오늘은 날짜, 시간 다루는 법을 알아봅시다. 강의하단 csv 파일로 연습용 테이블 하나 생성해서 시작합시다.      날짜 저장하려면  MySQL의 경우 이런 것 중에 고르면 됩니다.  DATEYYYY-MM-DD 형식9999년까지 저장가능DATETIMEYYYY-MM-DD hh:mm:ss 형식9999년까지 저장가능TIMESTAMPYYYY-MM-DD hh:mm:ss 형식2038년까지 저장가능 TIMESTAMP는 현재 DB시간 기록용 말고는 잘 안씁니다.테이블 만들 때 DATETIME(6) 이렇게 1~6 숫자를 넣으면 초단위 소수점 6자리까지 기록해줍니다.    Postgres는 DATE, TIME, TIMESTAMP, TIMESTAMPTZ가 있고YYYY-MM-DD hh:mm:ss 형식으로 저장해주는 TIME..

Mysql&DBeaver 2024.09.08

DBeaver)procedure 많이 만들기 싫으면 파라미터

저번 시간에 procedure 만들면 같은 코드를 쉽게 재사용할 수 있다고 했습니다. SELECT * FROM product WHERE 가격 > 5000;이런걸 procedure로 만들어서 써봤는데그럼 나중에 가격이 6000 이상인걸 조회하고 싶으면 어쩌죠? 그러면 만들어둔 procedure는 아무 쓸모가 없어지겠군요. 하지만 오늘 배울 파라미터 문법을 사용하면 하나의 procedure로 다양한 상황 대응가능  전에 했던 procedure 만드는 코드 DROP PROCEDURE IF EXISTS mart.get_all;DELIMITER $$$$CREATE PROCEDURE mart.get_all()BEGIN SELECT * FROM product where 가격 > 6000;END $$DELIMITER..

Mysql&DBeaver 2024.09.08

DBeaver)procedure에서 많이 쓰는 변수 문법

자료를 잠깐 저장하고 싶으면 변수를 만들어서 사용합니다.변수는 숫자, 문자 등의 간단한 자료를 잠깐 저장해두는 통입니다. 만들어서 사용해봅시다.     변수 문법 변수는 길고 복잡한 자료를 잠깐 보관하는 통일 뿐인데 SET 키워드 이용해서 만들면 됩니다.   SET @age = 20;SELECT @age := 20;SET @변수명 = 저장할값; 문법 쓰면 됩니다. SET @변수명 := 저장할값; 써도 같은 뜻입니다.  SELECT @변수명 := 저장할값; 써도 같은 뜻입니다.셋 중 하나 쓰십쇼 그래서 위처럼 작성하면 age 라는 변수명에 20이라는 값이 저장됩니다.     SET @age = 20;SELECT @age;그럼 앞으로 @변수명이라고 쓸 때마다 그 자리에 저장해뒀던 자료가 남습니다.그래서 위처..

Mysql&DBeaver 2024.09.08

DBeaver) 저장 프로시저 stored procedure 쓰면 간지남

하루에 10번도 더 쓰는 SQL 문장이 있다고 칩시다.그 때마다 직접 문장을 길게 타이핑하는게 귀찮으면  stored procedure (저장프로시저) 를 만들어서 사용하면 됩니다.       stored procedure는 코드 덩어리 저장가능  그래서 SELECT FROM 이런 긴 문장같은걸 저장해서 재사용하고싶으면stored procedure 기능을 사용하면 됩니다. 문장저장기능임  프로그래밍 배경이 있는 분들은 이해가 쉬울텐데그냥 평소에 쓰던 함수 문법이라고 생각하면 됩니다. 그거랑 똑같음 ▲ 이런소리하는 책과 강의가 있으면 당장 불태워야합니다. 프로그래밍 배경이 없으니까 이딴거 읽고있는 것 아님?      stored procedure 쓰는 법  ▲ 전에 JOIN 배울 때 쓰던 product 테..

Mysql&DBeaver 2024.09.08

DBeaver) table 대신 view 쓰는 이유

간혹 create table 말고 create view 하는 경우가 있습니다. 테이블이랑 똑같은 view 라는 친구가 있는데 뭔지 알아봅시다. 짧아서 글만 읽고 지나갑시다.    view가 뭐냐면  SELECT 로 찾은 행들이 너무나 마음에 들어서테이블로 두고두고 저장해서 쓰고 싶습니까? 그럼 실제 테이블로 저장해도 되겠지만 더 간단하게 view로 만들어둘 수도 있습니다. view는 가상의 테이블입니다. 테이블처럼 사용할 수 있습니다.     CREATE VIEW 뷰이름 ASSELECT 컬럼1, 컬럼2, ...FROM 테이블명 view 만드는 문법은 이렇습니다. SELECT로 찾은 행들을 view로 만들어달라는 코드입니다.     그럼 시간드릴테니 전에 사용하던 테이블들 아무거나 JOIN해서 view로 ..

Mysql&DBeaver 2024.09.08

DBeaver)SELECT 결과들을 합치려면 UNION

오늘은 UNION 문법을 매우 짧고 쉽게 알아봅시다. 코드 열심히 짜다보면 SELECT 여러개를 사용해야하는 경우가 있습니다. SELECT문을 여러개 쓰면 결과를 각각 다른 탭에 보여줄텐데 이게 싫으면 하나의 결과로 합쳐놓을 수 있습니다.UNION 문법 쓰면 됩니다.     UNION 사용법   ▲ 저번시간의 insert_test 데이터베이스에 비슷한 테이블 2개를 만들어놨습니다. 이 2개의 테이블을 전부 출력하고 싶으면 어떻게 코드짭니까 SELECT * FROM insert_test.stock;SELECT * FROM insert_test.stock2;각각 출력해보면 되지 않겠습니까 근데 이러면 결과를 다른 탭으로 출력해줍니다.   이게 싫고 결과를 하나로 합치고 싶으면 UNION 문법을 씁시다.   ..

Mysql&DBeaver 2024.09.08

DBeaver)수정 삭제는 UPDATE / DELETE (WHERE 안쓰면 퇴사각)

오늘은 수정, 삭제문법 빠르게 배우고 집에 가도록 합시다.   UPDATE / SET 특정 행의 데이터를 수정하고 싶으면 UPDATE 문법을 씁시다.  UPDATE 테이블명 SET 컬럼1 = 값, 컬럼2 = 값WHERE 조건식  SET 뒤엔 컬럼마다 어떤 값으로 수정할 것인지 선택하면 됩니다. WHERE 뒤엔 어떤 행을 업데이트할 것인지 조건식을 넣어줍니다.물론 믿을 수 없으니 테스트해봐야합니다.      ▲ 저번 시간에 썼던 product 테이블을 가져와서id가 1인 데이터의 가격을 5000, 상품명을 단무지로 수정해봅시다.   UPDATE productSET 가격 = 5000, 상품명 = '단무지'WHERE id = 1 이러면 수정되는군요.  문자자료는 언제나 따옴표 칩시다.       UPDATE ..

Mysql&DBeaver 2024.09.07