본문 바로가기

반응형

mysql

[MySQL/Oracle] 데이터 있으면 update, 없으면 insert 추가하려는 데이터가 있을 때는 update, 없으면 insert하도록 쿼리에서 처리할 수 있습니다. MySQL은 ON DUPLICATE KEY UPDATE 명령어로, Oracle은 MERGE INTO로 해당 기능을 수행할 수 있습니다. 12345678910111213141516171819202122232425262728293031-- MySQLINSERT INTO HALF_STORAGE( UESR_ID, GROUP_NAME )VALUES ( 'halfJang', 'admin')ON DUPLICATE KEY UPDATE USER_ID = 'halfJang' -- ORACLEMERGE INTO HALF_STORAGE hsUSING DUALON ( hs.USER_ID = 'halfJang' )WHEN MATC.. 더보기
[MySQL, Maria] 계정 생성 및 권한 부여 1. root 계정 로그인 2. 계정 생성 # crate user '계정명'@'접속 위치' identified by '계정 비밀번호'; - 내부만 접속 가능하도록 localhost로 생성 - 외부 접속 가능하도록 생성 3. 권한 부여 # grant all privileges on '스키마명'.'테이블명' to '계정명'@'접속 위치'; privileges로 권한을 부여하면 해당 테이블에 모든 권한을 부여할 수 있습니다. '스키마명'.*로 부여하면 해당 스키마에 모든 권한을 부여할 수 있습니다. # grant select on db스키마.* to `계정명`@`접속 위치` identified by '비밀번호'; 위와 같이 조회 권한만 부여할 수도 있습니다. 4. 권한 확인 더보기
[Oracle, MySQL, MSSQL] PROCEDURE 테스트를 위해 더미 데이터를 생성할 일이 생겼습니다. 프러시저를 통해 데이터를 주입했는데, 고객사별로 DB가 다르다 보니 정리할 필요성을 느꼈습니다. 테이블은 임시로 USER테이블을 만들었습니다. # MySQL 프러시저 DELIMITER $$ CREATE OR REPLACE PROCEDURE PROC_INSERT_USER ( IN grpId INT(11), IN startCnt INT(20), IN cnt INT(20) ) BEGIN DECLARE i INT DEFAULT startCnt; WHILE i 더보기
[MySQL] int(11), ZEROFILL MySQL에서 int로 컬럼을 만들면 기본값으로 int(11)로 생성됩니다. int가 표현할 수 있는 자릿수가 10자리이기 때문에 int(10)으로 생성될 거라고 생각했었는데, 왜 int(11)로 생기는지 궁금증이 생겨 찾아보니 정렬을 위한 여유공간 쯤으로 해석할 수 있었습니다. (정확한 이유는 아직 찾는 중입니다...) 그리고 나머지 크기 int(1)~int(10) 또한 자릿수를 나타내기 위함을 확인할 수 있었습니다. 위에 생성한 테이블에 아래와 같이 데이터를 넣어 확인했습니다. 양수일 경우는 int(11)도 int(10)과 마찬가지로 10자리까지 밖에 적재되지 않습니다. 하지만, int(1)로 선언해도 10자리수를 사용할 수 있기 때문에, 다른 이유를 찾아보니 ZEROFILL을 사용하기 위함이였습니다.. 더보기
[MySQL] Incorrect string value 이모지를 저장해야 할 일이 생겼는데... 현재 사용하고 있는 DB는 MySQL에 utf-8인코딩을 사용하고 있어 4byte를 지원하지 않았습니다. 1. 우선 컬럼의 character set과 collation을 변경하여 테스트했습니다. 결과는 실패 ㅠㅠ 2. 이번에는 스키마의 character set과 collation을 변경하여 테스트했습니다. 이번에도 실패... 아 그리고 'myTable'이 아니라 해당 스키마 입력해주시면 됩니다! 3. DB서버에 설정된 character set과 collation을 변경하여 테스트했습니다. collation은 character set이 변경되면 해당 character의 기본 collation이 반영됩니다. * SET명령어로 변경한 인코딩은 일시적이며, DB 서비스가.. 더보기
[Oracle, MySQL] 시간 계산 1. 현재시간 - MySQL NOW() : 쿼리가 실행되는 시간의 값 SYSDATE() : 해당 함수가 호출되는 시간의 값 - ORACLE SYSDATE : 시스템의 현재 날짜/시간 CURRENT_DATE : 세션별 시간대(TIME_ZONE)를 기준으로 한 날짜/현재 시간 2. 시간 형식 - MySQL SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') 년 : %Y = 2020, %y = 20 월 : %m = 04, %M = April 일 : %d = 10, %D = 10th 시 : %H = 13, %h = 01 (am/pm 구분 없이 출력) 분 : %i = 40 초 : %s = 20 - ORACLE SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24.. 더보기

반응형