실행환경

 Desktop

 조립식

 CPU

 Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz 3.40GHz

 Memory

 8.00 GB

 OS

 Windows 7 Professional K 64bit

 Java

 1.8.0_05

 MySQL

 Ver 14.14 Distrib 5.6.19, for Win64


함수 만들기

DELIMITER $$
DROP FUNCTION IF EXISTS `db_name.function_name`$$
CREATE  FUNCTION `db_name.function_name`(stID int, endID int, line int) RETURNS int
    DETERMINISTIC
BEGIN

Declare stOrd int;
declare endOrd int;
declare result int;

select ord into stOrd 
from busstoplinelist 
where BusLineID = line and BusStopID = stID;

select ord into endOrd 
from busstoplinelist 
where BusLineID = line and BusStopID = endID;

RETURN endOrd - stOrd;
    END$$
DELIMITER ;

select function_name(421, 423, 1525);
DELIMITER : $$ 문장의 끝을 $$로 바꾸어준다는 뜻
DETERMINISTIC : Link

예외 처리

delimiter $$

DROP PROCEDURE IF EXISTS db_name.procedure_name$$

CREATE PROCEDURE db_name.procedure_name(IN num INT, IN ch VARCHAR(2))

BEGIN

     DECLARE err INT DEFAULT '0'; 
     DECLARE CONTINUE HANDLER FOR SQLEXCEPTION  SET err = -1; 

     START TRANSACTION;

     INSERT INTO table_name VALUES (num, ch);     // 성공
     INSERT INTO table_name VALUES (ch, num);     // 실패

     IF err < 0 THEN 
          ROLLBACK; 
     ELSE 
          COMMIT; 

     END IF; 

END $$

delimiter ;


참고사이트 Link

데이터베이스 생성하기

mysql> create database DB명;

혹은 mysql> create schema 스키마명;

두 명령어는 같은 역할을 한다. 참고


데이터베이스 제거하기

mysql> delete from db where db='DB명';

혹은 mysql> drop database DB명;


! 변경사항 적용하기 위해 아래 명령어 사용.

mysql >flush privileges;




'Database > MySQL' 카테고리의 다른 글

[MySQL] ODBC 설치 및 설치 에러: Error 1918  (0) 2014.06.25
[MySQL] MySQL 설치하기  (0) 2014.06.25
[MySQL] root 계정 비밀번호 변경하기  (0) 2014.03.15
[MySQL] 버전 확인하기  (2) 2014.03.05

사용자 확인, 사용자 추가


▶ 사용자 확인

mysql> use mysql;
mysql> select user, host from user;
▶ 사용자 추가

로컬접근 허용 mysql> insert into user(host,user,password,ssl_cipher,x509_issuer,x509_subject) -> values ('localhost','사용자명',password('비밀번호'),'','','');

외부접근 허용 mysql> insert into user(host,user,password,ssl_cipher,x509_issuer,x509_subject) -> values ('%','사용자명',password('비밀번호'),'','','');

▶ 사용자 삭제
mysql> drop user 사용자명@호스트;
▶ 변경사항 적용
mysql> flush privileges;

사용자 데이터베이스 권한 부여, 박탈(삭제)

*grant 문을 이용하면 flush privileges 를 할 필요가 없다.


▶ 모든 권한 주기
mysql> grant all privileges on *.* to 사용자명@호스트
     -> identified by '비밀번호' with grant option;
▶ 특정 사용자에게 특정 DB의 모든 테이블에 모든 권한 부여하기
mysql> grant all privileges on DB명.* to 사용자명@호스트 identified by '비밀번호';
▶ 특정 사용자에게 특정 DB의 모든 테이블에 select, insert 권한 부여하기
mysql> grant select, insert on DB명.* to 사용자명@호스트 
     -> identified by '비밀번호';
▶ 특정 사용자에게 특정 DB의 특정 테이블의 정해준 컬럼에만 update 권한 부여하기
mysql> grant update(컬럼1,컬럼2,컬럼3) on DB명.테이블명 to 사용자명@호스트
     -> identified by '비밀번호';
▶ 모든 호스트에서 접속가능하고 select 권한만 갖는 사용자를 추가할 땐
mysql> grant select on DB명.* to 사용자명@% identified by '비밀번호';
▶ ip주소가 192.168.0.으로 시작하는 컴퓨터에서 접속가능한 사용자를 추가할 땐
mysql> grant all privileges on *.* to 사용자명@'192.168.0.%' identified by '비밀번호';


▶ 모든 권한 삭제
mysql> REVOKE ALL PRIVILEGES ON *.* FROM 사용자명@호스트;
▶ usage (삭제하면 로그인조차 안됨) 권한 부여, 삭제

usage 권한 부여 mysql> GRANT USAGE ON *.* TO USER_NAME@HOST IDENTIFIED BY 'USER_NAME'; usage 권한 삭제 mysql> REVOKE USAGE ON *.* FROM USER_NAME@HOST;


▶ 권한 확인하기
mysql> SHOW GRANTS FOR 사용자명;


참고사이트



'Database > MySQL' 카테고리의 다른 글

[MySQL] root 계정 비밀번호 변경하기  (0) 2014.03.15
[MySQL] 버전 확인하기  (2) 2014.03.05
[MySQL] 원격 접속 하기  (0) 2014.01.26
[MySQL] 명령문  (0) 2014.01.06

+ Recent posts