분류 전체보기 210

DBeaver)컬럼에 안전하게 제약 (Constraints) 주기

컬럼에 Constraints (제약조건) 주기 컬럼만들 때 제약조건을 걸어둘 수 있습니다. - 이 컬럼은 NOT NULL 해야한다 (텅빈 데이터 집어넣지 말아라)- 이 컬럼에 있는 데이터들은 항상 UNIQUE 해야한다 - 여기에 음수말고 양수만 들어오는지 CHECK 하라- 이 컬럼을 PRIMARY KEY로 설정하라등 여러가지 설정이 가능합니다.    1. NOT NULL 제약조건 CREATE TABLE new_table ( id INT NOT NULL, 이름 VARCHAR(100) NOT NULL, 나이 INT) 컬럼 만들 때 우측에 NOT NULL을 체크해주면 NULL 금지라는 제약을 걸 수 있습니다.원래 데이터넣을 때 까먹고 안넣으면 자동으로 NULL이 됩니다. 텅비어있다는 뜻임 그래..

Mysql&DBeaver 2024.09.06

DBeaver)중요한 IF / CASE 문법

자주 쓰는 IF 함수 SQL 짜다 보면 문자나 숫자같은 데이터 넣는 곳이 많습니다.근데 그 곳에 고정된 값이 아니라 조건에 따라서 각각 다른 값을 넣고 싶은 경우 사용하면 됩니다.  IF(조건식, 조건식맞으면이거, 조건식틀리면이거); IF() 안에 차례로 이것들 넣으면 됩니다. 조건식은 WHERE 뒤에 쓰던거 그대로 사용가능합니다.    SELECT IF(1 + 2 = 3, '맞음', '틀림'); 조건식이 맞으니 '맞음'이라는 문자가 그 자리에 남겠군요.진짠지 궁금하면 출력해봅시다. IF()는 문자 숫자 등의 데이터가 들어가는 곳에 전부 넣을 수 있기 때문에 이렇게 사용할 수도 있습니다.       예를 들어서 card 테이블에서 사용금액이 20만원이 넘는 경우 "우수" 그게 아니면 "거지"를 출력하고 ..

Mysql&DBeaver 2024.09.06

DBeaver)그룹지어 통계낼 땐 GROUP BY

데이터에서 의미를 찾고 싶으면 전체를 통계내는 것 보다 특정 그룹을 뽑아서 통계를 내는게 훨씬 의미찾기 쉽다고 했습니다.특정 그룹을 뽑고 싶으면 WHERE 써서 필터링하면 되는데그룹 뽑을게 많다면 GROUP BY 문법 사용하면 편리할 수 있습니다.       GROUP BY  SELECT 고객등급 FROM card GROUP BY 고객등급 저번시간 card 테이블에서 GROUP BY 문법을 써봅시다. 1. SELECT FROM 뒤에 GROUP BY 컬럼명을 붙일 수 있는데2. 그럼 그 컬럼에 있는 카테고리끼리 그룹지어서 보여줍니다.  ▲ 실행해보니까 진짜 카테고리끼리 그룹지어줌 (실은 DISTINCT 동작방식이랑 유사합니다.) 근데 그룹만 지으면 아무 쓸모가 없습니다. GROUP BY는 전에 했던 MIN..

Mysql&DBeaver 2024.09.06

DBeaver)SELECT 안에 SELECT 또 쓸 수 있음 (서브쿼리)

실은 SELECT 문법안에 SELECT 이런걸 또 사용할 수 있습니다. 서브쿼리라고 하는데 언제 어떻게 쓰는지 알아봅시다.       Q. 위의 card테이블에서 "사용금액들의 평균"보다 더 큰 사용금액을 가진 사람만 출력하고 싶으면 어떻게하죠?  1. 사용금액의 평균을 구해서 2. 사용금액 > 평균인 행만 출력해주쇼라고 코드짜면 되는거 아닙니까     SELECT AVG(사용금액) FROM card 1. 컬럼에 있는 값을 평균내고 싶으면 AVG() 쓰면 된다고 했습니다.그걸 써서 평균을 구합니다. 대충 245000원이 나옵니다.  SELECT * FROM card WHERE 사용금액 > 2450002. 그 다음에 평균 245000보다 높은 것들만 출력하라고 조건문 쓰면 됩니다.  근데 이걸 수동으로 2..

Mysql&DBeaver 2024.09.06

DBeaver)숫자 조작하는 SQL 함수들

숫자 자료에 쓰는 함수들도 있습니다.글로 대충 몇개만 알아보고 지나갑시다.    GREATEST / LEAST SELECT GREATEST(5, 3, 2, 1, 4);SELECT LEAST(5, 3, 2, 1, 4);여러 숫자들을 입력하면 최댓값, 최솟값 하나만 뽑아줍니다. 전에 했던 MAX(), MIN() 는 하나의 컬럼 안에서 최대, 최소를 1개 뽑아주는데GREATEST(), LEAST() 는 하나의 행이나 숫자배열 안에서 최대, 최소를 뽑아줍니다. 위 코드는 뭐가 나오나 한줄 씩 실행해봅시다.      FLOOR/CEIL SELECT FLOOR(10.1);SELECT FLOOR(10.9);SELECT CEIL(10.1);SELECT CEIL(10.9);소수점 들어있는 숫자들을 정수로 변환할 때 씁니..

Mysql&DBeaver 2024.09.06

DBeaver)컬럼 출력시 사칙연산 넣기 & 문자다루는 함수

컬럼에 있던 데이터를 정직하게 출력만 하는건 재미가 없습니다.실은 컬럼에 있던 데이터를 덧셈 뺄셈 곱셈 나눗셈으로 조작해서 출력하는 것도 가능한데 그래서 오늘은 컬럼에 있던 데이터를 내 입맛에 맞게 조작해서 출력하고 회계 조작으로 검찰에 고발되는 법을 알아봅시다.     컬럼에 사칙연산 가능  저번시간에 쓰던 card 테이블 보면 '사용금액' 컬럼이 있었습니다. 근데 그 금액엔 10% 부가세가 포함이 되어있기 때문에10% 부가세를 제외한 사용금액만 출력하고 싶으면 어떻게하죠? 엑셀이면 = 옆의컬럼 * 0.9 라고 코드를 짰을 텐데 SQL도 비슷합니다.   select 사용금액 * 0.9 FROM card그냥 컬럼명에 0.9 곱해버리면 됩니다.그럼 사용금액 컬럼이 출력되는데 0.9 곱해져서 나옵니다.   ..

Mysql&DBeaver 2024.09.06

DBeaver)MIN, MAX, AVG, SUM 집계함수로 통계내기

데이터 분석같은걸 잘하고 싶습니까데이터 분석은 기본적으로 데이터에서 의미를 찾는 과정인데의미같은걸 억지로 잘 만들어내면 분석 잘하는 것임 가장 쉽게 의미찾는 법은 통계를 내는 겁니다.합계, 평균, 최댓값 이런거 구해주면 됩니다.  SQL에서 통계내는것도 되게 쉽게 할 수 있는데SQL의 집계함수 (aggregate function) 를 사용하면 됩니다.집계함수는 특정 컬럼의 합계, 평균, 최댓값 등 통계를 내주는 함수인데 엑셀함수랑 사용법이 비슷하고 쉬움        그래서 오늘은 카드회사 취직했다고 가정하고 돈 많이쓰는 핵심 고객을 색출해봅시다. 우선 새로운 card라는 이름의 테이블 하나 만들고 강의하단 csv 데이터를 card 테이블에 불러오면 됩니다. 이번달의 고객별 카드 사용금액 테이블입니다.  ..

Mysql&DBeaver 2024.09.06

DBeaver)LIKE, %, _ 연산자로 간단하게 검색가능

WHERE 조건식 자리에는 = > LIKE 도 넣을 수 있습니다. 그거 쓰면 원하는 단어 검색이 가능합니다.       특정 단어가 들어있는지 검색하려면 LIKE 저번시간에 만든 테이블에서 계속 진행해볼 것인데  저기서 상품명이 '소파'가 들어있는걸 찾고 싶다면 WHERE 조건식에서 LIKE 문법 사용하면 됩니다.  SELECT * FROM productWHERE 상품명 LIKE '소파' WHERE 뒤에 컬럼명 LIKE '값' 이런 식으로 작성하면 됩니다.LIKE 뒤에 검색어를 적으면 그 글자만 정확히 들어있는 행만 찾아주는데 그럼 아무 쓸데없겠죠?그래서 % 기호를 붙입니다.   SELECT * FROM productWHERE 상품명 LIKE '%소파%' % 기호는 아무글자라는 뜻입니다. 전문용어로 와일..

Mysql&DBeaver 2024.09.06

DBeaver)WHERE 뒤에 조건식을 여러개 쓰려면

AND / OR / NOT으로 조건식 업그레이드 가능   가끔은 여러 조건을 넣고싶을 때가 있습니다.예를 들어서 1. 카테고리가 가구 2. 가격이 5000원인 것들만 필터링하고 싶으면 어떻게합니까. 조건식이 2개 이상 필요한 경우 조건식 2개를 AND, OR, NOT 붙여서 연결해줄 수 있습니다.   SELECT * FROM product WHERE 카테고리 = '가구' AND 가격 = 5000; AND는 왼쪽 오른쪽 조건이 전부 맞으면~ 이라는 뜻입니다. 그래서 위 코드를 실행하면 카테고리가 '가구' 이면서 가격이 5000인 것을 출력해줍니다.  SELECT * FROM product WHERE 카테고리 = '가구' OR 가격 = 5000; OR는 왼쪽 오른쪽이 둘 중 하나만 맞아도~ 라는 뜻입니다.그..

Mysql&DBeaver 2024.09.06

DBeaver)SQL WHERE로 데이터 필터링하기

▲ 오늘은 데이터를 좀 많이 넣어두고 수업을 진행해봅시다. 직접 적어도 되는데 귀찮으면 강의하단 파일 다운받아서 DBeaver에서 불러오면 됩니다.  csv 파일을 테이블에 불러오려면0. 기존 데이터는 전부 드래그해서 삭제 & 저장1. 왼쪽 파일트리에서 테이블에 우클릭 - 데이터 가져오기2. 'csv에서 가져오기' 클릭 후 csv 파일 업로드하기    ▲ 3. 한글 들어있는 데이터의 경우 인코딩부분을 euc-kr로 변경해야 안깨집니다. 4. 그럼 파일명과 동일한 이름으로 테이블을 하나 생성해서 데이터를 담아줍니다. (그래서 기존에 동일한 이름의 테이블이 있으면 지우고 하는게 좋음) [collapse]    원하는 행만 필터링 할 수 있는 WHERE 문법  출력되는 행이 너무 많다면 WHERE 문법을 뒤에..

Mysql&DBeaver 2024.09.06