MySQL 관련 (성별, 권한 설정)

5w31892p·2023년 10월 20일
0

1. 필드 생성 및 수정

-- 필드 생성
ALTER TABLE 생성할테이블명 ADD COLUMN 생성할필드명 TYPE;

-- 필드 생성 및 자리 지정 한번에!
ALTER TABLE 생성할테이블명
MODIFY COLUMN 생성할필드명 TYPE 
AFTER 생성할필드 앞에 올 기존필드명;

-- 성별 구분 (dash 다음 숫자가 짝수면 F, 아니면 M)
UPDATE 테이블명
SET 성별 넣을 필드명 = CASE
    WHEN CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(CAST(BIRTH AS CHAR), '-', -1), '-', 1) AS SIGNED) % 2 = 0 THEN 'F'
    ELSE 'M'
END;

-- 생년월일만 남겨놓고 -와 뒷자리 삭제 (생년월일 - [1~8])
UPDATE 테이블명
SET 해당 필드명 = SUBSTRING_INDEX(해당 필드명, '-', 1);

-- 년도 앞 2자리 붙히기 (앞자리가 0, 1, 2일 경우에만 20, 그 외에는 19)
UPDATE 테이블명
SET 해당 필드명 = 
  CASE 
    WHEN SUBSTRING(해당 필드명, 1, 1) IN ('0', '1', '2') THEN CONCAT('20', 해당 필드명)
    ELSE CONCAT('19', 해당 필드명)
  END;

2. 권한설정

-- 가장 먼저 root로 로그인 --

-- 권한을 부여할 사용자 생성
CREATE USER '새로운_사용자'@'호스트' IDENTIFIED BY '비밀번호';
-- 권한 부여
GRANT 권한_종류 ON 데이터베이스.테이블 TO '새로운_사용자'@'호스트';
-> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

-- 권한 적용
FLUSH PRIVILEGES;


-- root사용자에게 GRANT OPTION 권한 부여
GRANT GRANT OPTION ON *.* TO 'root'@'localhost'; -- root는 생성된 username으로 수정 가능
FLUSH PRIVILEGES;  -- 변경사항 적용

-- 사용자 권한 조회
SHOW GRANTS FOR 'username'@'localhost';

0개의 댓글