DataBase/MariaDB

    728x90
DataBase/MariaDB

[MariaDB] 값 누적 합계하여 보여주기

아래 나의 경우 입력시간에 따른 금액의 누적 합계를 출력해야 했다. SUM(합계할 값) OVER (ORDER BY 누적 기준) AS 컬럼명 사용 시 유의할 점은, 누적 기준이 같은 값일 경우 모든 값의 합만 나온다. 뿐만 아니라, order by 기준에 따라 원하지 않는 값으로 나올 수 있으니 전체 데이터의 order by 와 일치 시키는게 좋을 것 같다. order by 는 ','를 이용해 여러개 입력할 수 있다.

DataBase/MariaDB

[MariaDB] 테이블 백업, 복사 하는방법

테이블 구조 + 데이터 복사아래와 같이 작성하면 새테이블명의 새로운 테이블이 생성되고, 새테이블이 기존테이블의 데이터와 컬럼으로 채워진다.create table 새테이블명 (select * from 기존테이블명)  테이블 구조 복사CREATE TABLE 새테이블 LIKE 기존테이블  테이블 데이터 복사INSERT INTO 새테이블 (SELECT * FROM 기존테이블)

DataBase/MariaDB

[MariaDB] DataBase 계정 생성 및 권한 부여

권한을 부여하는 것은 관리자 계정의 콘솔 창에서 진행해도 무방하다.단, 관리자 계정이 다른 계정을 생성할 권한이 있어야 한다. 어디까지 허용할지 권한 주는 것도 허용되어 있어야 한다. 확인계정 관리자 권한 확인show databases;select * from mysql.user; 자세한 권한 확인show grants for '계정명'@'호스트이름'  계정 생성계정 생성CREATE USER 'readonly_user'@'localhost' IDENTIFIED BY '비밀번호';  계정 권한 부여  GRANT SELECT ON `my_database`.* TO 'readonly_user'@'localhost'; // my_database 에만 조회 권한 부여GRANT SELECT ON *.* TO 'rea..

DataBase/MariaDB

[MariaDB] 콘솔 console 에서 변수 사용법

쿼리문을 작성하다보면 변수로 받아오는 부분에 실제 데이터를 넣어 테스트해야 한다.해당 변수를 실제 값으로 변경해주면, 테스트 할때마다 해당 값을 바꿔줘야 한다. 변경해야하는 부분이 많을때, ctrl+ R 로 replace 해줘도 되지만 다른 부분이 바뀔 염려도 있고 생각보다 번거롭다.아래와 같이 변수를 설정해주면 변수 값을 바꿀때 한번만 바꿔도 된다. 훨씬 찾기도 쉽고. 해당 console 세션에 잠시 변수를 선언하는 방식이라, 시간이 지나면 풀려서 다시 선언해줘야 한다.해당 콘솔 외에는 사용할 수 없기도 하다. SET @vTEST = 'skylar';SELECT * FROM MEMBERWHERE USER_ID = @vTEST ;

DataBase/MariaDB

[MariaDB] 문자열 데이터 길이 재는 법

타입이 VARCHAR(20) 인 데이터의 문자열 길이 재는법 count 사용 시 아래와 같은 에러 메세지가 발생한다.count 대신 length 를 사용해주면 된다.SELECT LENGTH(컬럼명) FROM 테이블명

DataBase/MariaDB

[MariaDB] 프로시저 수정 이력, 기록 확인하기

프로시저의 수정 이력을 확인해야 하는 일이 생겼다.INFORMATION_SCHEMA.ROUTINES 에서 프로시저의 생성일, 최근 수정일이 확인 가능하다. SELECT ROUTINE_NAME, LAST_ALTEREDFROM INFORMATION_SCHEMA.ROUTINESWHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_NAME = '프로시저명';

DataBase/MariaDB

[MariaDB] SQL 쿼리문 검색결과 중 설정된 개수만 보여주고 싶을 때

SQL 쿼리문에서 나온 검색결과 100+ 개중 가장 최신의 1개만 보여주고 싶을때 어떻게 해야할까?LIMIT 숫자 를 사용하면 검색 결과를 숫자대로 자를 수 있다.SELECT * FROM TEST_TABLE A LIMIT 1; 여기에 ORDER BY 도 같이 사용하여 최신의 파일 순서대로 정렬하여 원하는 데이터를 선택한다.SELECT * FROM TEST_TABLE A ORDER BY INS_DATE DESCLIMIT 1; LIMIT 옆의 숫자에 따라 나오는 개수가 달라진다. 10개만 나오게 하고싶으면 10, 5개만 나오게 하고싶으면 5 입력.SELECT * FROM TEST_TABLE A ORDER BY INS_DATE DESCLIMIT 10;

DataBase/MariaDB

[MariaDB] 검색조건 넣기, 파라미터가 null 일때 조건 안 걸기 (IFNULL, NVL)

SQL 문에서 파라미터가 null 로 넘어올 경우 해당 조건을 쿼리문에서 제외하려면 어떻게 해야할까?아래의 쿼리문에서 iDEPARTMENT 가 NULL 로 넘어올 경우 해당 조건이 NULL 인 TEST_TABLE 의 결과만 나오게 된다. 그러면 DEPARTMENT 를 같이 넘길때만 검색조건으로 추가하고 싶을 경우가 있을 것이다. -- iNAME, iDEPARTMENTSELECT *FROM TEST_TABLEWHERE NAME = iNAME AND DEPARTMENT = iDEPARTMENT 검색조건으로 iDEPARTMENT 를 넘길 경우, 검색조건에 문자를 입력하지 않으면 NULL 로 넘어간다.이때 쿼리문에 NULL 로 넘어올 경우에 대한 처리문을 추가해주면 된다. -- iNAME, iDEPARTMENT..

DataBase/MariaDB

[MariaDB] SQL 에서 SUBSTRING,LEFT,RIGHT 사용법

SUBSTRING이란substring은 문자열을 자르기 위해 사용하는 함수이다. DataBase 시스템마다 문법이 조금 다를 수 있다. SUBSTRING(문자열, 시작위치, 길이)LEFT(문자열, 길이)RIGHT(문자열, 길이)   SUBSTRINGSUBSTRING 은 지정한 시작위치에서 길이만큼 자를때 사용한다.예를 들어, SUBSTRING('TEST TEST SUBSTRING',6,4) 의 경우 6번째 자리인 T부터 길이 4까지인 TEST까지 자른다.TEST TEST (생략)12345678910(...)     시작 1234     LEFT왼쪽에서부터 지정한 길이만큼 자른다.   RIGHT오른쪽에서부터 지정한 길이만큼 자른다.

DataBase/MariaDB

[MariaDB] 오늘 날짜, 현재 날짜, 현재 시간 출력하기

오늘날짜CURDATE()CURRENT_DATENOW()SYSDATE()    * CURDATE() 와 CURRENT_DATE 의 차이두 함수는 기능적으로 동일하지만, 사용 방식에 차이가 있다. CURDATE() 는 함수 형태로 사용되며 괄호를 사용하여 호출해야한다. CURRENT_DATE는 키워드 형태로 사용되며 괄호 없이 사용할 수 있다. 따라서 기능적으로는 동일하므로 개인의 선호에 따라 선택하여 사용하면 된다. * CURDATE() 의 인자값CURDATE() 는 인자값을 받지 않기 때문에 괄호 안에 어떠한 값도 넣으면 안된다. * SYSDATE() 와 NOW() 의 차이SYSDATE() 는 날짜 조회를 기준으로 날짜 및 시간을 반환한다. 호출할 때마다 현재 시각을 반영하기 때문에, 같은 트랜잭션 내에..

    반응형