MY SQL

2. MYSQL - DML , DCL

미스터 한뺑 2022. 8. 11. 23:27
반응형

1. DML

-- 테이블의 데이터를 조작하는 명령어
 
-- insert: 테이블에 데이터를 삽입하는 명령어
 
-- update: 테이블에 데이터를 수정하는 명령어
 
-- delete: 테이블에 데이터를 삭제하는 명령어
 
-- select: 테이블에 데이터를 조회하는 명령어

<<< 예시 >>>

use shop;
select database();

# 데이터 삽입하기
 
-- 하나씩 삽입하기
desc tb_user;
insert into tb_user(user_name,user_phone,user_addr)
values("이관수","010-0000-0000","서울시 중랑구");
select * from tb_user;  

-- user_name의 varchar 길이가 10으로 설정되어있어 에러발생
insert into tb_user(user_name,user_phone,user_addr)
values("11111111111","010-1111-0000","서울시 서초구");

desc tb_user;
 
-- not null 조건을 갖고 있는 컬럼에 데이터를 안 넣을경우 에러 발생
insert into tb_user(user_name)
values("이관수");

-- 여러 데이터 삽입하기
 
insert into tb_user(user_name,user_phone,user_addr)
values("민수","010-1111-0000","서울시 강남구"),
        ("철수","010-2222-0000","서울시 서초구"),
      ("만수","010-3333-0000","서울시 종로구"),
      ("훈수","010-4444-0000","서울시 중구");
select * from tb_user;
 
 
 
desc tb_product;
insert into tb_product(product_name,product_price)
values("에어컨",1200000),
      ("스마트tv",2000000),
      ("컴퓨터",1000000),
      ("모니터",200000);
select * from tb_product;

-- unique 제약이 있는 컬럼에 중복 데이터를 넣을경우 에러발생
insert into tb_product(product_name,product_price)
values("에어컨",00000);

desc tb_order;
select * from tb_user;
select * from tb_product;

insert into tb_order(user_id,product_id)
values(1,3);
select * from tb_order;

-- 부모의 기본키 없는 값을 외래키에 넣을 경우 안들어간다.
insert into tb_order(user_id,product_id)
values(6,1);
# 데이터 수정하기
 
select * from tb_product;
update tb_product
set product_name="삼성에어컨"
where product_id = 1;
select * from tb_product;

# 데이터 삭제하기
 
select * from tb_user;
delete from tb_user
where user_id = 5;
select * from tb_user;

-- 만약 자식 테이블에서 참조하는 값이 있는 부모키의 값은 삭제가 안된다.
-- 자식 테이블에 참조하는 값을 먼저 삭제하고 해당 부모키를 삭제해야한다.
 
# DCL
-- grant : 사용자 계정에 대한 권한을 주는 명령어
 
-- revoke: 사용자 계정에 대한 권한을 회수하는 명령어
 
-- commit: insert,update,delete 대한 데이터베이스에 실제 반영
 
-- rollback: insert,update,delete 대한 복구

 

<<<예시>>>

use mysql;
 
select database();
 
-- mysql에 계정생성하기
create user 'ID'@'IP' identified by '비밀번호';
 
 
-- 권한 부여하기
grant select,insert,delete,update(권한부여할 것) on *.* to 'ID'@'%';
select * from user;
 
-- 권한 해제하기
revoke select,insert,delete,update on *.* from 'ID'@'%';
select * from user;
 
-- 계정 삭제
drop user 'ID'@'%';
select * from user;
 
반응형