본문 바로가기

db

[IT도서] 이경오의 SQL+SQLD 비밀노트 보통 개발공부를 하면서 가장 많이 따는게 정보처리기사 자격증이랑 SQLD 이다 나는 직장다니면서 db관련 자격증 sqld를 땄었다! 몇년전이라 가장 유명했던 책은 주황색표지였던 그 책... 나온지 꽤 된 책이라 보기 조금 어려웠던 것 같은데 대중화 된 책이 그거 하나라 그것만 보고 공부했던 기억이 난다 이번에 리뷰할 책으로 내가 준비했던 sqld 자격증 책이라 더 비교하기 쉬웠다! 사실 sqld를 내가 준비하게 된 이유는 DB공부를 직장인으로써 더 확실히 개념화하자는 목표가 컸다 근데 기존 책은 책으로만 보기엔 이해가 잘 안가고 개념위주가 많았어서 정말 책을 보고 공부하는 느낌이 들었다. (사실 눈으로 보는 것 보다 직접 쳐보고 결과를 보는게 뇌에 잘들어온다 내기준.) 우선 이 책의 장점은 1. 초보자들.. 더보기
[IT도서] SQL 쿡북 리뷰 (부제 : SQL문 백과사전) 개발자라면 SQL문은 필수다 DB와 SQL문에 대해서 정확히 배우지는 않았지만 개발을 하게된다면 자연스럽게 알게될 (필수로 알아야 할과 같은 말ㅎ) SELECT, UPDATE, DELETE 등등의 DML, DDL 문들... 회사에 들어가면서 오라클 프로시저를 사용하게 되었고 SQL문의 다양한 쓰임을 보고 놀랐더랬다 솔직히 학생때 해봤자 뭐하겠음.....? 복잡한 SQL문의 세상을 보고 "와 원하는 데이터를 뽑기 위해서는 머리를 엄청 써야하는구나" 라고 생각했다 하나 잘못 써도 엉뚱한 데이터가 나오고 여러 조건들이 붙게 되면 머리가 하얘진다 여기서 이제 여러 테이블을 가져오게 된다면....? 이제 머리 터지는거다(っ °Д °;)っ 땀흘리는거다ㅎ 쨌든 초보 개발자는 사내의 프로시저를 보고 기겁한 뒤 SQL문.. 더보기
DB tool에서 한글 깨짐현상!! (?????? 물음표로 뜬다) 갑자기 프로시저를 수정했는데 한글이 깨졌다; 그냥 로그찍는 부분 주석만 풀고 저장했을뿐인데....;;;;;;;;;;; 아무것도 설정 안했는데.. 그냥 금요일에 컴퓨터끄고 월요일에 출근했을뿐... 월요일 아침부터 당황스럽다. 결론은 간단했다. 1. 제어판> 시스템 및 보안 > 시스템 > 고급 시스템 설정 환경변수 > 시스템 변수 > 새로만들기 2. 새 시스템 변수 등록 > 확인!(저장) 변수 이름 : NLS_LANG 변수 값 : KOREAN_KOREA.KO16MSWIN949 근데 왜이렇게 된건지는 이유는 모르겠다^ㅠ^ 다들 당황하지말고 저 설정값만 넣어주세요! 더보기
[Mysql] Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails 🙄 FK 설정하고 DELETE 와 UPDATE를 칠때 나오는 에러 1. 앞으로 계속 FK설정하고도 그냥 연결되어있는 것을 다 DELETE 해버리고 싶을때 on delete cascade 사용 2. 임시방편으로 그냥 잘못넣은 데이터 하나 지우고 싶을때 SET FOREIGN_KEY_CHECKS=0; //잠시 FK설정 풀고 하고싶은 SQL문 실행; SET FOREIGN_KEY_CHECKS=1; //다시 FK설정 등록 더보기
[mysql] datetime 형식 지정하기 DATE_FORMAT() MYSQL에서 날짜를 저장하는 datetime 형식을 사용했다 기본값은 이렇게 ('2021-01-28 11:22:24') 되어있다 값을 불러올때 날짜만 가져오는 등 형식을 지정하고 싶다면 DATE_FORMAT()을 사용하면된다! 써보면 알테지만,,, 🥴 가장 기본인 날짜만 뽑고싶다! : date_format(datetime, '%Y-%m-%d') : 출력값('2021-01-28') SELECT date_format(datetime, '%Y-%m-%d') FROM 'datetest' WHERE id=1; 🥴 중간에 '-'가 없는 '20210128'을 뽑고 싶으면 : date_format(datetime, '%Y%m%d') SELECT date_format(datetime, '%Y%m%d') FROM 'da.. 더보기
[mysql] auto_increment 시작번호 설정 컬럼에 ai(auto_increment) 설정값 줬을때 시작번호를 다시 하고싶다!? alter table 테이블명 auto_increment = 시작할번호; 더보기
[mysql] 구분자로 문자열 자르기(substring_index) substring_index 함수를 사용하면 된다. SUBSTRING_INDEX(문자열, 구분자, 구분자 Index) 예시) SELECT SUBSTRING_INDEX('안녕,나는,줄리엣,이야', ',', 2); /*앞에서 두번째꺼까지*/ >> 안녕,나는 SELECT SUBSTRING_INDEX('안녕,나는,줄리엣,이야', ',', -3); /*뒤에서 세번째꺼까지*/ >> 나는,줄리엣,이야 예시2) 핸드폰 번호가 있는데 cell1 cell2 cell3 으로 나누고싶다 주어진 핸드폰 번호(cell 컬럼) : 010-8888-3333 구분자: "-" select substring_index(cell,"-",1) as cell1, substring_index(substring_index(cell,"-",2),".. 더보기
[Mysql] 열/컬럼 개수 확인 열의 개수 SELECT COUNT(*) FROM information_schema.columns WHERE table_name='테이블이름'; 행의 개수 SELECT COUNT(1) FROM 테이블이름 ; 더보기