본문 바로가기
728x90
반응형

DEV/Database37

[SQL] SQL에서 정규식을 활용한 조건 필터링 - dev는 제외하되 devops는 포함하고 싶다면? 데이터를 다루다 보면 조건 필터링에서 단순한 LIKE 조건만으로는 부족할 때가 있습니다.특히, 특정 키워드를 제외하고 싶지만 그 키워드가 일부 단어에만 포함된 경우, 어떻게 처리해야 할까요?예를 들어 ACCOUNT 테이블의 ACCOUNT_NAME 컬럼에서:-dev-, dev, _dev, dev_ 처럼 독립적인 dev 단어가 들어간 행은 제외하고 싶지만,devops, development, nodev 같은 다른 단어의 일부로 들어간 경우는 포함하고 싶을 수 있습니다.이럴 때 정규식을 활용한 REGEXP 조건이 큰 도움이 됩니다. 단순한 NOT LIKE로는 부족한 이유SELECT * FROM ACCOUNTWHERE ACCOUNT_NAME NOT LIKE '%dev%'; 이 쿼리는 dev라는 문자열이 포함되기.. 2025. 6. 18.
[MySQL] 테이블 및 컬럼 정보 쉽게 확인하기 개발을 하다 보면 DB 테이블이나 컬럼 정보를 직접 조회해야 할 일이 자주 생깁니다.AS-IS 테이블 정의서를 작성할 때기존 테이블 구조를 파악할 때컬럼의 의미나 타입이 궁금할 때등등…매번 MySQL Workbench나 phpMyAdmin을 열고 하나하나 클릭하기보다는,간단한 SQL로 빠르게 조회해서 정리하는 것이 훨씬 효율적입니다. 📌 기준: MySQL📂 1. 데이터베이스 내 테이블 목록 조회SELECT @rownum := @rownum + 1 AS `No.`, TABLE_NAME AS `테이블명`, TABLE_COMMENT AS `테이블 코멘트`FROM INFORMATION_SCHEMA.TABLES, (SELECT @rownum := 0) rWHERE TAB.. 2024. 10. 8.
[Mybatis] Mybatis 설치 1. 데이터설정 create table comment( comment_no bigint(19), user_id varchar(32), comment_content varchar(500), reg_date datetime ); 2. mysql-connector-j 설정 Add JARs... 클릭 3. MyBatis 설치 1. Maven Repo 접속 https://mvnrepository.com/ 2. MyBatis 검색 3. MyBatis 3.5.0 다운로드 4. 라이브러리 등록 2022. 12. 26.
[MySQL] DDL문 ALTER - 컬럼 추가, 수정, 삭제 아래와 같은 board테이블이 있다. desc board; 이 테이블의 컬럼구조를 변경하고 싶을 경우에는 ALTER를 사용한다. [ 추가 - ALTER ADD ] 형식 alter table [테이블명] add [컬럼명] [타입] [옵션]; 예제 EX01. 맨 뒤에 추가 alter table board add imgfile varchar(100) default 'none.gif'; EX02. 맨 앞에 추가 alter table board add imgfile varchar(100) default 'none.gif' first; EX03. 지정한 위치에 추가 alter table board add imgfile varchar(100) default 'none.gif' after content; [ 수정 - .. 2022. 12. 2.
[MySQL] update문에 에러가 날 때, Safe mode 해제 업데이트를 실행하려는데 이런 오류가 난다면 update member set phone='010-9999-9999' where userid='somi'; Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 해당 에러는 Safe Updates에 체크가 되어있는 경우 나타난다. 워크벤치에서 사용자의 실수를 줄이고자 안전모드를 걸어둔 것이다. Edit - Preferences를 선택 SQl Editor을.. 2022. 11. 22.
[MySQL] 테이블생성, 사용해보기 2022.11.22 - [JSP] - [JSP] MySQL 설치 [JSP] MySQL 설치 https://www.mysql.com/ MySQL Over 2000 ISVs, OEMs, and VARs rely on MySQL as their products' embedded database to make their applications, hardware and appliances more competitive, bring them to market faster, and lower their cost of goods sold. Learn More jjh93.com db확인 show database; db생성 create database mydb; mydb가 추가적으로 생성된 것을 확인 할 수 있다. db선.. 2022. 11. 22.
[MySQL] MySQL 설치 https://www.mysql.com/ MySQL Over 2000 ISVs, OEMs, and VARs rely on MySQL as their products' embedded database to make their applications, hardware and appliances more competitive, bring them to market faster, and lower their cost of goods sold. Learn More » www.mysql.com DOWNLOADS 클릭 MySQL Community (GPL) Downloads » 클릭 MySQL Installer for Windows 클릭 하단에 있는 431.7M 짜리 다운로드 No thanks, just start .. 2022. 11. 22.
[Oracle] SQL 복수행 함수 - GROUP 함수 GROUP 함수의 종류 함 수 이 름 의 미 사 용 예 COUNT 입력되는 데이터들의 총 건수를 출력 COUNT(sal) SUM 입력되는 데이터들의 합계값 구해서 출력 SUM(sal) AVG 입력되는 데이터들의 평균값 구해서 출력 AVG(sal) MAX 입력되는 데이터들 중 가장 큰 값을 출력 MAX(sal) MIN 입력되는 데이터들 중 가장 작은 값을 출력 MIN(sal) STDDEV 입력되는 데이터 값들의 표준 편차 값 출력 STDDEV(sal) VARIANCE 입력되는 데이터 값들의 분산 값 출력 VARIANCE(sal) ROLLUP 입력되는 데이터들의 소계값을 자동으로 계산해서 출력 CUBE 입력되는 데이터들의 소계 및 전체 총계를 자동 계산 후 출력 GROUPINGSET 한번의 쿼리로 여러 개의.. 2022. 11. 8.
[Oracle] REGEXP_LIKE() 정규식(Regular Expression) 함수로 다양한 조건 조회하는데 사용된다. 사용 기호 의 미 사 용 예 ^ (캐럿) 해당 문자로 시작하는 line 출력 ‘^pattern’ $ (달러) 해당 문자로 끝나는 line 출력 ‘pattern$’ . S로 시작하여 E으로 끝나는 line ( . è 1 character) ‘S . . . .E ’ * 모든 이라는 뜻. 글자수가 0 일수도 있음. ‘[a–z]*’ [ ] 해당 문자에 해당하는 한 문자 ‘[Pp]attern’ [ ^ ] 해당 문자에 해당하지 않는 한 문자 ‘[^a–m]attern’ -- p.80 연습문제 SELECT * FROM t_reg; -- p.81 소문자를 포함하는 행 SELECT * FROM t_reg WHERE REGEXP_LIKE(t.. 2022. 11. 7.
[Oracle] CASE() CASE 조건 WHEN 결과1 THEN 출력1 [WHEN 결과2 THEN 출력2] ELSE 출력3 END “컬럼명” EX01 Student 테이블을 참조하여 deptno1 이 201 번인 학생의 이름과 전화번호, 지역 명을 출력하세요. 단 지역번호가 02 면 "SEOUL", 031 이면 "GYEONGGI", 051 이면 "BUSAN", 052 이면 "ULSAN", 055 이면 "GYEONGNAM", 나머지는 "ETC" 로 표시하세요. EX02 Student 테이블의 jumin 컬럼을 참조하여 학생들의 이름과 태어난 달 , 그리고 분기를 출력하세요. 태어난 달이 01-03월 은 1/4, 04 – 06월 은 2/4 , 07 – 09 월 은 3/4 , 10 – 12 월은 4/4 로 출력하세요. SELECT n.. 2022. 11. 7.
[Oracle] DECODE( ) 연습문제 2022.11.07 - [Database] - [Oracle] DECODE( ) [Oracle] DECODE( ) DECODE 함수는 일반 개발 언어 등에서 사용중인 분기문인 IF 문을 오라클 SQL 안으로 가져온 함수. DECODE 함수는 오라클에서만 사용되는 함수로 IF 문을 사용해야 하는 조건 문을 처리할 수 있다. 유 jjh93.com EX01 Student 테이블을 사용하여 제 1 전공 (deptno1) 이 101 번인 학과 학생들의 이름과 주민번호, 성별을 출력하되 성별은 주민번호(jumin) 컬럼을 이용하여 7번째 숫자가 1일 경우 “ 남자” , 2일 경우 “여자 ” 로 출력하세요. SELECT name, jumin, DECODE(substr(jumin,7,1), '1', 'MAN', '2'.. 2022. 11. 7.
[Oracle] DECODE( ) DECODE 함수는 일반 개발 언어 등에서 사용중인 분기문인 IF 문을 오라클 SQL 안으로 가져온 함수. DECODE 함수는 오라클에서만 사용되는 함수로 IF 문을 사용해야 하는 조건 문을 처리할 수 있다. 유형 1. A 가 B 일 경우 ‘1’ 을 출력하는 경우 DECODE (A, B, ‘1’, null) 마지막 null은 생략 가능 합니다 EX professor 테이블에서 학과번호와 교수명 , 학과명을 출력하되 deptno 가 101 번인 교수만 학과명을 "Computer Engineering" 으로 출력하고 101번이 아닌 교수들은 학과명에 아무것도 출력하지 마세요 SELECT deptno, name, DECODE(deptno, 101, 'Computer Engineering') "DNAME" FR.. 2022. 11. 7.
[Oracle] NVL( ) NVL( ) NULL 값을 만나면 다른 값으로 치환해서 출력하는 함수 문법 NVL(컬럼 , 치환할 값) 치환값이 숫자일 경우 NVL(sal , 0) : sal 컬럼의 값이 null 일 경우 null 대신 0 으로 치환 NVL(sal , 100) : sal 컬럼의 값이 null 일 경우 null 대신 100 으로 치환 SELECT ename, comm, NVL(comm, 0), NVL(comm, 100) FROM emp WHERE deptno = 30; 치환 값이 문자일 경우 NVL(position , ‘사원’) -> position 값이 null 일 경우 ‘사원’ 으로 치환하라 치환 값이 날짜일 경우 NVL(hiredate,’2014/05/01’) -> hiredate 값이 null일 경우 '2014/0.. 2022. 11. 7.
[Oracle] TO_NUMBER( ) TO_NUMBER( ) 함수 이 함수는 숫자가 아닌 숫자처럼 생긴 문자를 숫자로 바꾸어 주는 함수 SELECT TO_NUMBER('5') FROM dual; 2022. 11. 7.
단일행 함수 TO_CHAR 예제 EX02 professor 테이블을 조회하여 201 번 학과에 근무하는 교수들의 이름과 급여, 보너스, 연봉을 아래와 같이 출력하세요. 단 연봉은 (pay*12)+bonus 로 계산합니다. SELECT name, pay, bonus, TO_CHAR((pay*12) + bonus, '999,999') "TOTAL" FROM professor WHERE deptno = 201; EX03 emp 테이블을 조회하여 comm 값을 가지고 있는 사람들의 empno , ename , hiredate , 총연봉,15% 인상 후 연봉을 아래 화면처럼 출력하세요. 단 총연봉은 (sal*12)+comm 으로 계산하고 아래 화면에서는 SAL 로 출력되었으며 15% 인상한 값은 총연봉의 15% 인상 값입니다. (HIREDATE.. 2022. 11. 7.
[Oracle] 숫자함수 이 름 의 미 사 용 예 ROUND 주어진 숫자를 반올림 한 후 출력함 ROUND(12.345,2) -> 12.35 TRUNC 주어진 숫자를 버림 한 후 출력함 TRUNC(12.345,2) -> 12.34 MOD 주어진 숫자를 나누기 한 후 나머지 값 출력함 MOD(12,10) -> 2 CEIL 주어진 숫자와 가장 근접한 큰 정수 출력함 CEIL(12.345) -> 13 FLOOR 주어진 숫자와 가장 근접한 작은 정수 출력함 FLOOR(12.345) -> 12 POWER 주어진 숫자1의 숫자2 승을 출력함 POWER(3,2) -> 9 ROUND() SELECT ROUND(987.654, 2) "ROUND1", ROUND(987.654, 0) "ROUND2", ROUND(987.654, -1) "ROUND.. 2022. 11. 3.
[Oracle] REPLACE() EX01 emp 테이블에서 아래와 같이 20 번 부서에 소속된 직원들의 이름과 3-4 번째 글자만 '-' 으로 변경해서 출력하세요 . SELECT ename, REPLACE(ename, SUBSTR(ename, 2, 2), '--') "REPLACE" FROM emp WHERE deptno = 20; EX02 Student 테이블에서 아래와 같이 1 전공(deptno1)이 101 번인 학생들의 이름과 주민등록번호를 출력하되 주민등록번호의 뒤 7자리는 ‘-’ 과 '/' 로 표시되게 출력하세요. SELECT name, REPLACE(jumin, SUBSTR(jumin, 7, 7), '-/-/-/-') "REPLACE" FROM student WHERE deptno1 = 101; EX03 Student 테이블.. 2022. 11. 3.
[Oracle] LPAD() LPAD(‘문자열’ 또는 컬럼명, 자리수 , ’채울문자’ ) emp 테이블을 deptno가 10 번인 사원들의 사원이름을 총 9 바이트로 출력하되 빈 자리에는 해당 자리의 숫자로 채우세요. SELECT lpad(ename, 9, '123456789') "LPAD" FROM emp WHERE deptno = 10; 2022. 11. 3.
728x90
반응형