본문 바로가기
728x90
반응형

Database38

[MYSQL / Database] proceduer/view/role 실습2 create database db01; use db01; create table persons( personID int primary key, lastname varchar(30), firstname varchar(30), age int); desc persons; select * from information_schema.table_constraints where table_name='persons'; alter table persons drop primary key; alter table persons add constraint personID_pk primary key(personID); insert into persons values(1,'Hansen','ola',30),(2,'Svedson','.. 2023. 4. 14.
[MYSQL / Database] TABLE 제약조건 설정하기 create database db01; use db01; 2023.04.10 - [Server/Database] - [MYSQL/ Databas] MYSQL DDL 명령어(CREATE,DROP,ALTER,RENAME,TRUNCATE) [MYSQL/ Databas] MYSQL DDL 명령어(CREATE,DROP,ALTER,RENAME,TRUNCATE) MYSQL을 사용하여 실습해 보았습니다. DDL CREATE : 데이터베이스내 개체 (테이블, 인덱스 제약조건, 프로시저, 펑션 등)을 생성 할 때 DROP : 데이터베이스내 개체를 삭제할 때 ALTER : 데이터베이스내 codejinjinh.tistory.com CREATE TABLE 제약조건 설정하기 create table CHT( C1 Type1, C2.. 2023. 4. 14.
[MYSQL / Database] GRANT 권한 GRANT - 데이터베이스 사용자에게 권한을 부여함 1) 권한부여 GRANT [권한] ON [DB].[TABLE] TO [유저_ID]@[호스트]; 2) 권한확인 SHOW GRANTS FOR [유저_ID]@[호스트]; -- 다른 사용자 권한 확인 SHOW GRANTS; -- 내게 부여된 권한 확인 SHOW GRANTS FOR current_user; -- 내게 부여된 권한 확인 SHOW GRANTS FOR current_user(); -- 내게 부여된 권한 확인 3) ROLE 에 권한 부여 GRANT 권한 ON [DB].[TABLE] TO [ROLE NAME]; 4) PROCEDURE에 대해서만 권한 부여 GRANT EXCUTE ON PROCEDUER [DB].[PROCEDURE NAME] TO [ROLE.. 2023. 4. 14.
[MYSQL / Database] view 생성 방법 view 생성 create view [view name] as [ 선택할 조건 ] ; create view v1 as select * from table1; 뷰에 대한 권한 주는 방법 grant select on db.v1 to [user 또는 role] 2023. 4. 14.
[MYSQL / Database] 프로시저 (Procedure) 프로시저(PROCEDURE) - 쿼리문의 집합 - 프로그래밍 할 때 우리가 만드는 함수와 거의 비슷하다. - 반환값이 없는 함수 변수 사용 - 무조건 변수명 앞에 @를 붙여줘야 함 set @my = 1; 또는 set @my := 1 - 프로시저, 사용자 정의 함수 만들때 변수 선언 많이 사용함 프로시저 특징 - 보안을 강화할 수 있다.(뷰와 같음) - 유지보수가 편하다. - 프로시저 호출시 처음 1회 컴파일 이후 메모리에 로딩되어서 성능 향상이 있다. - 긴 수십줄의 쿼리 문자열을 생성할 필요없이 프로시저 이름만 호출 프로시저 생성 /제거 더보기 DROP DATABASE IF EXISTS sqldb; -- 만약 sqldb가 존재하면 우선 삭제한다. CREATE DATABASE sqldb; USE sqld.. 2023. 4. 13.
[MYSQL / Database] 제약조건 설정 방식 컬럼 레벨 방식 create table t1( id int primary key, name varchar(30) not null, addr varchar(30) unique, job varchar(30) references t2(job) ); 테이블 레벨 방식 create table t1( id int, name varchar(30) not null, addr varchar(30), job varchar(30), primary key(id), unique(addr), foreigh key(job) references t2(job) ); 제약조건 설정시 테이블 레벨 방식만 가능한 경우 . 기본키를 복합키로 설정하는 경우 : 2개 이상의 칼럼을 기본키로 설정하는 경우 . alter table로 제약조건을 추.. 2023. 4. 13.
[MYSQL /Database] Foreign key 구성 동작 방식 FOREIGN KEY 구성시 동작 구성 - ON DELETE [?] 참조되는 테이블의 값이 삭제될 경우의 동작을 ON DELETE 구문으로 설정 - ON UPDATE [?] 참조되는 테이블의 값이 수정될 경우의 동작을 ON UPDATE 구문으로 설정 >> [?]에동작 종류 2023. 4. 13.
[MYSQL / Database] 제약조건 적용해보기( NOT NULL, UNIQUE, DEFAULT, CHECK, PRIMARY KEY,FOREIGN KEY) 제약조건 확인 방법 select * from information_schema.table_constraints where table_name = '테이블명'; select constraint_name, constrint_type from information_schema.table_constraints where table_name = '테이블명'; desc '테이블명'; NOT NULL 실습해보기 . 해당 필드는 NULL 값을 저장할 수 없다. . NOT NULL 제약 조건이 설정된 필드는 무조건 데이터를 가지고 있어야 한다. create database mydb01; use mydb01; create table t1(id int, name varchar(30), addr varchar(30) not .. 2023. 4. 13.
[MYSQL / Database] constraint 제약조건 제약조건 CONSTRAINT - 데이터의 무결성을 지키기 위해, 데이터를 입력받을 때 검사 규칙을 의미한다. - 제약조건은 CREATE 문으로 테이블 생성할 때나, ALTER문으로 컬럼을 추가할 때도 설정할 수 있다. - NOT NULL : NULL값을 가지면 안되는 컬럼 - UNIQUE : 같은 컬럼안에서 동일한 값을 가질 수 없다. MYSQL에서는 NULL을 여러번 지정가능 (MSSQL 은 NULL도 한번만 가능하다) - PRIMARY KEY : 행에 반드시 유일한 값이 들어가야함 ( NULL값을 가질 수 없다.) - FOREIGN KEY - DEFAULT - CHECK 제약조건 사용법 제약조건 확인 SELECT * FROM INFORMATION_SCHEMA.TABLE_CONST.. 2023. 4. 12.
[MYSQL / Database] Role 생성, 퍼미션 할당, 권한취소 기본 설정 create database db01; use db01; create table t1( id int, name varchar(30) ); insert into t1 values (1,'홍길동') ,(2,'서길동'); select * from t1; Role 생성 CREATE ROLE [ROLENAME]; create role role1; create role role2; create role role3; ROLE 에 퍼미션 할당 grant all on db01.* to role1; grant select on db01.* to role2; grant select,update,delete on db01.* to role3; 퍼미션을 주어도 ROLE이 바로 적용되어지지 않는다. 사용자에게 role.. 2023. 4. 12.
728x90
반응형