본문 바로가기

sql

(30)
update auto_increment 컬럼, order by 로 error-1062 없이 실행 하기 update auto_increment 컬럼, order by 로 error-1062 없이 실행 하기 안녕하세요. 혹시, auto_increment 로 된 primary key 컬럼을 업데이트 할때 error-1062 Duplicate entry '1' for key 'orderby_test.PRIMARY' 에러가 나는것을 경험 하신적 있으신가요? 꼭 auto_increment가 아니더라도, 숫자로된 primary key 컬럼의 값을 균일하게 변경 하면서 update 할때 에러가 나는 경우가 있으셨을 겁니다. 해당 내용에 대한 실습을 한번 해보도록 하겠습니다. update, order by와 함께! 자, 실습에 필요한 데이터를 생성 해보도록 하겠습니다. 다음과 같이 테이블을 만들고 데이터를 넣도록 할께요..
mysql 실무에 유용한 sql 로직 모음 #02 mysql 실무에 유용한 sql 로직 모음 #02 지난 1편에 이어서 mysql 실무에 유용한 sql 로직 모음 2탄을 준비했습니다. 지난번과 마찬가지로 케이스 별로 유용한 sql 로직들에 대한 실습과 설명으로 진행해 나가겠습니다. Let's Go! 데이터를 가공하여 join 하기 테이블 두개를 join 해야하는데, 뭔가 연결고리가 있긴한데, 딱떨어지는게 없을때.. 데이터를 가공하여 join을 할 수 있답니다. 먼저 아래와 같이 두개의 테이블이 있습니다. 위에 있는 두테이블을 join 해야 하는데, 우선 join1 테이블의 text 컬럼과 join2 테이블의 text 컬럼을 보면 완전히 매칭이 되지 않습니다. 이럴때 어떻게 join을 하여 데이터를 연결 할 수 있을까요? 먼저 sql을 보고, 그리고 설명..
mariadb procedure 소스 보는 권한 해결 mariadb procedure 소스 보는 권한 해결 안녕하세요. 얼마전 사내 개발자분이 생성 되어 있는 procedure의 내부 소스를 보고 싶다는 요청을 하셨습니다. 그래서 실행이 되면 당연히 보실수 있을꺼라 생각하여 execute 권한이 있는 것을 확인하고 되실꺼라 했는데, 어랏? 보이지 않는다고 하시네요. 현재 권한 확인 그래서 지금 부여된 권한은 확인 해보았습니다. 저희는 dev라는 role을 생성해서 개발자분들의 권한을 관리하고 있기 때문에 해당 role에 부여된 권한을 확인 했습니다. show grants for dev; 결과, usage와 더불어 업무상 필요한 schema들에 적당하게 select, insert, update, delete, execute가 들어가 있는것을 확인 했습니다. ..
mysql 실무에 유용한 sql 로직 모음 #01 mysql 실무에 유용한 sql 로직 모음 #01 안녕하세요. mysql 또는 mariadb를 사용하시면서 실무에서 만나게 되는 다양한 sql 로직들에 대해서 정리를 해보도록 하겠습니다. 물론, 오라클이나 mssql등에서도 약간만 수정하시면 사용 하실 수 있는 로직들이니 한번씩 참고 하시면 되겠습니다. 많은 SQL 강의 수강생들이 문의 하시는 내용들 위주로 정리를 해보았습니다. 그럼 시작해 볼께요! #우선 아래 데이터를 직접 mysql DB나 mariadb에 넣으시고 테스트 해보셔도 되고, 아니면 본인 DB에 있는 데이터에 맞게 컬럼등을 수정해서 사용 하시면 됩니다. class_table_ddl.sql을 먼저 실행하고, 나머지 데이터를 insert 하시면 됩니다. 특정 컬럼의 유니크한 데이터 건수 카운트..
프로그래머스 SQL 답 GROUP BY 문제 풀이 #04 프로그래머스 SQL 답 GROUP BY 문제 풀이 #04 고양이와 개는 몇 마리 있을까 고양이와 개는 몇 마리 있을까? 하는 문제 입니다. 문제에서도 고양이와 개를 따로 세어보는 문제일듯 한 느낌이 듭니다. 문제를 확인 해보겠습니다. 위와 같이 늘 주어지는 ANIMAL_INS 테이블이 주어졌고, 여기서 고양이와 개를 각각 세어주면 됩니다. 그리고, 마지막에 보면 Cat을 Dog보다 먼저 출력 하라고 하네요. 여기서 필요한건 뭘까요? 일단 ROW수를 세어주는 COUNT() 함수와 함께, 고양이와 개로 각각 나워주는 GROUP BY 절이 필요 합니다. 그리고, 마지막에 ORDER BY 절을 이용해서 Cat이 Dog보다먼저 나오도록 오름차순으로 정렬 하면 되겠습니다. GROUP BY에 대해서 장황하게 설명하기..
프로그래머스 SQL 답 SUM, MAX, MIN 문제 풀이 #03 프로그래머스 SQL 답 SUM, MAX, MIN 문제 풀이 #03 안녕하세요. sTricky 입니다!! 프로그래머스 SQL sum, max, min 문제 풀이를 진행 해보도록 하겠습니다. 바로 진행 해보도록 하겠습니다. 어렵지 않습니다! 최댓값 구하기 첫번째 문제는 최댓값 구하는 문제입니다. 문제는 다음과 같이 주어졌습니다. ANIMAL_INS 테이블의 구조와 데이터가 예시로 나와 있구요. 문제는 가장 최근에 들어온 동물은 언제 들어왔느냐 입니다. 여러분들이 날짜의 크고 작고를 구할때 햇갈리시면 안되는게, 날짜가 과거이면 작고, 그다음이 현재, 그리고 미래가 크다는걸 잊으시면 안됩니다. 그러닌깐, 가장 최근, 지금을 기준으로 가장 최근이니 있는 날짜 가운데 가장 큰것을 구하면 되겠죠. 바로 MAX() 함..
프로그래머스 SQL 코딩테스트 select 문제 풀이 #2 프로그래머스 SQL 코딩테스트 select 문제 풀이 #2 지난 1편에 이어서, 이번에도 프로그래머스 SQL 문제를 몇문제 풀어보도록 하겠습니다. 2021.09.09 - [Database/프로그래머스SQL] - 프로그래머스 SQL 코딩 테스트 select 문제 풀이 프로그래머스 SQL 코딩 테스트 select 문제 풀이 프로그래머스 SQL 코딩 테스트 select 문제 풀이 SQL 연습하신다고 프로그래머스 SQL 풀어보시는 분들이 많이 계시네요. 오늘부터 하나씩 풀이를 써볼까 합니다. 자자, 그럼 레고레고~!!! select 모든 stricky.tistory.com 도움이 되셨는지 모르겠습니다. SQL은 어렵지 않아요, 차근 차근 따라오시면 하실 수 있습니다. 그럼 시작해볼께요. select 어린 동물 ..
프로그래머스 SQL 코딩 테스트 select 문제 풀이 프로그래머스 SQL 코딩 테스트 select 문제 풀이 SQL 연습하신다고 프로그래머스 SQL 풀어보시는 분들이 많이 계시네요. 오늘부터 하나씩 풀이를 써볼까 합니다. 자자, 그럼 레고레고~!!! select 모든 레코드 조회하기 첫번째는 모든레코드를 조회하는 문제네요. 우선 테이블명은 ANIMAL_INS 입니다. 동물 보호소에 들어온 동물의 정보를 담은 테이블 이구요. 문제 설명 바로아래 나오는곳 보면 컬럼 목록이 있죠. 옆에 type은 해당 컬럼의 데이터 타입 입니다. 여기서는 varchar 와 datetime만 사용을 하였네요. nullable 부분은 해당 컬럼에 값이 없음을 뜻하는 NULL 데이터가 들어갈수 있는지 여부를 말하는겁니다. NAME 이라는 컬럼만 NULL이 들어갈 수 있습니다. 나머지..