본문 바로가기

DB7

[MySQL/MariaDB] 사용자 계정 및 권한 관리 (grant, revoke) 사용자 계정 생성 create user '사용자'@'호스트' [identified by '비밀번호']권한 부여(grant) grant 권한1[,권한2, 권한3,..] on DB명.table명 to '사용자'@'호스트'; grant all privileges on *.* to '사용자'@'호스트'; # 모든 db, table에 모든 권한 부여 grant all privileges on DB명.table명 to '사용자'@'호스트'; # 특정 db, table 모든 권한 부여 grant select, insert on DB명.table명 to '사용자'@'호스.. 2022. 4. 18.
[MySQL/MariaDB] 트랜잭션(Transaction) 개념과 사용 (+ save point) 트랜잭션(Transaction)이란? 한 기능을 수행하기 위해 한꺼번에 수행되어야 하는 연산을 의미한다. DB의 일관성을 유지하며 문제 발생시 수월하게 복구할 수 있게 해준다. 하나의 트랜잭션을 DB에 반영하는 것을 커밋(commit) 이라고 하며 문제가 발생했을 때 트랜잭션을 반영하지 않고 원래 상태로 돌리는 것을 롤백(roll back)이라고 한다. MySQL/MariaDB 에서는 default로 auto commit 모드가 TRUE로 설정되어있다. 트랜잭션을 사용하기 위해서는 auto commit 모드를 FALSE로 바꾸어주거나 start transaction으로 사용할 수 있다. 세이브 포인트(save point) ... savepoint a; ... rollback to a; 세이브 포인트는 트.. 2022. 3. 31.
[SQL] DB 테이블 구조, 데이터 복사 기존 테이블의 primary key, auto_increment 포함된 컬럼은 복사할 수 없거나 설정이 적용되지 않고 값만 복사된다. 구조 복사 CREATE TABLE [IF NOT EXISTS] 새테이블 LIKE 기존테이블 구조 및 데이터 복사 CREATE TABLE [IF NOT EXISTS] 새테이블 SELECT 컬럼 FROM 기존테이블 [WHERE 조건식] 데이터 모두 복사 INSERT INTO 새테이블 (SELECT 컬럼 FROM 기존테이블 [WHERE 조건식]) 데이터 일부 복사 INSERT INTO 새테이블 (컬럼1[, 컬럼 2..])(SELECT 컬럼1[, 컬럼2..] FROM 기존테이블 [WHERE 조건식]) 2022. 3. 31.
[SQL] group by - 그룹 함수, 그룹 조회 group by 함수를 이용하여 특정 컬럼(1개 또는 복수개)을 기준으로 그룹화하여 테이블을 조회할 수 있다. 이를 이용하여 어떤 상품이 많이 팔렸는지, 어떤 카테고리의 상품이 많이 팔렸는지 등의 통계를 쉽게 낼 수 있다. sum, avg, min, max 등 집계함수와 같이 사용할 때 유용하다. 구조 SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 대상컬럼 사용예시 원본 테이블 주문 번호, 주문한 갯수, 상품명, 카테고리가 있는 테이블이다. create table group_test ( orderNo int auto_increment primary key, orderNum int, name varchar(100), category varchar(100) ) character set utf8;.. 2022. 3. 30.
[SQL] DISTINCT 키워드 (중복제거) DISTINCT 키워드는 중복을 제거한 결과를 보여준다. 구조 select distinct 컬럼(1개 이상) from 테이블; 사용예시 원본테이블 distinct 사용하지 않고 출력 distinct category : 중복된 카테고리 제외하고 출력 distinct name, category : (제품명, 카테고리) 레코드 중복 제외하고 출력 2022. 3. 29.
[SQL] lpad/rpad 함수 사용하여 특정 문자로 자릿수 채우기 lpad 함수는 지정한 길이만큼 왼쪽부터 문자를 채우고, rpad 함수는 오른쪽부터 문자를 채운다. lpad lpad(필드, 길이, 채우는 문자) 채우는 문자를 지정하지 않으면 공백으로 채워진다. lpad 컬럼과 lpad1 컬럼의 값이 동일하게 나타난다. rpad rpad(필드, 길이, 채우는 문자) 2022. 3. 29.