코드 그라데이션
Day02. 트리거, 백업과 복원, 사용자 권한, 데이터 추출 본문
수업 자료(ppt)
#C: Create → Insert
#R: Read → select
#U: Update`
#D: Delete
수업 쿼리문
# CRUD
# C : Create R: Read U: Update D: Delete
# inset select update delete
INSERT INTO memberTBL VALUES ('Figure', '연아', '경기도 군포시 당정동');
SELECT * FROM membErTBL ;
SET SQL_SAFE_UPDATES = 0;
UPDATE memberTBL SET mEMBERAddress = '서울 강남구 역삼동' WHERE mEmberName = '연아';
DELETE FROM MEMBErTBL WHERE mEmberName = '연아';
CREATE TABLE delETEDMemberTBL (
memberID chAR(8) ,
MEMberName char(5) ,
memberAddress CHAR(20),
deletedDaTE DATE -- 삭제한 날짜
);
DELIMITER //
CREATE TRIGGER TRg_deletedMemberTBL -- 트리거 이름
AFTER DELETE -- 삭제 후에 작동하게 지정
ON memberTBL -- 트리거를 부착할 테이블
FOR EACH ROW -- 각 행마다 적용시킴
BEGIN
-- OLD 테이블의 내용을 백업테이블에 삽입
INSERT INTO deletedMemberTBL
VALUES (OLD.MEMbERID, OLD.memberName, OLD.memberAddress, CURDATE());
END //
DELIMITER ;
select * from deletedmembertbl;
SELeCT * from indextbl;
DELETE FROM indExtbl;
Show Tables;
usE empLoyees;
SELECT * FROM EMPLoyEES;
use shopDB;
select * from membertbl;
CREATE TABLE test (id INT);
CREATE TABLE test (id INT); -- 에러
INSERT INTO test VALUES(1);
select * from test;
USE employees;
SELECT * FROM employees;
CREATE USER director@'%' IDENTIFIED BY 'director';
GRANT ALL ON *.* TO director@'%' WITH GRANT OPTION;
CREATE USER ceo@'%' IDENTIFIED BY 'ceo';
GRANT SELECT ON *.* TO ceo@'%';
CREATE USER staff@'%' IDENTIFIED BY 'staff';
GRANT SELECT, INSERT, UPDATE, DELETE ON shopdb.* TO staff@'%';
GRANT SELECT ON employees.* TO staff@'%';
use employees;
select * from employees;
select * from titles;
select first_name from employees;
select first_name, last_name from employees;
show databases;
show table status;
SELECT first_name AS 이름 , gender 성별, hire_date '회사 입사일' FROM employees;
DROP DATABASE IF EXISTS sqldb; -- 만약 sqldb가 존재하면 우선 삭제한다.
CREATE DATABASE sqldb;
USE sqldb;
CREATE TABLE usertbl -- 회원 테이블
( userID CHAR(8) NOT NULL PRIMARY KEY, -- 사용자 아이디(PK)
name VARCHAR(10) NOT NULL, -- 이름
birthYear INT NOT NULL, -- 출생년도
addr CHAR(2) NOT NULL, -- 지역(경기,서울,경남 식으로 2글자만입력)
mobile1 CHAR(3), -- 휴대폰의 국번(011, 016, 017, 018, 019, 010 등)
mobile2 CHAR(8), -- 휴대폰의 나머지 전화번호(하이픈제외)
height SMALLINT, -- 키
mDate DATE -- 회원 가입일
);
CREATE TABLE buytbl -- 회원 구매 테이블(Buy Table의 약자)
( num INT AUTO_INCREMENT NOT NULL PRIMARY KEY, -- 순번(PK)
userID CHAR(8) NOT NULL, -- 아이디(FK)
prodName CHAR(6) NOT NULL, -- 물품명
groupName CHAR(4) , -- 분류
price INT NOT NULL, -- 단가
amount SMALLINT NOT NULL, -- 수량
FOREIGN KEY (userID) REFERENCES usertbl(userID)
);
INSERT INTO usertbl VALUES('LSG', '이승기', 1987, '서울', '011', '1111111', 182, '2008-8-8');
INSERT INTO usertbl VALUES('KBS', '김범수', 1979, '경남', '011', '2222222', 173, '2012-4-4');
INSERT INTO usertbl VALUES('KKH', '김경호', 1971, '전남', '019', '3333333', 177, '2007-7-7');
INSERT INTO usertbl VALUES('JYP', '조용필', 1950, '경기', '011', '4444444', 166, '2009-4-4');
INSERT INTO usertbl VALUES('SSK', '성시경', 1979, '서울', NULL , NULL , 186, '2013-12-12');
INSERT INTO usertbl VALUES('LJB', '임재범', 1963, '서울', '016', '6666666', 182, '2009-9-9');
INSERT INTO usertbl VALUES('YJS', '윤종신', 1969, '경남', NULL , NULL , 170, '2005-5-5');
INSERT INTO usertbl VALUES('EJW', '은지원', 1972, '경북', '011', '8888888', 174, '2014-3-3');
INSERT INTO usertbl VALUES('JKW', '조관우', 1965, '경기', '018', '9999999', 172, '2010-10-10');
INSERT INTO usertbl VALUES('BBK', '바비킴', 1973, '서울', '010', '0000000', 176, '2013-5-5');
INSERT INTO buytbl VALUES(NULL, 'KBS', '운동화', NULL , 30, 2);
INSERT INTO buytbl VALUES(NULL, 'KBS', '노트북', '전자', 1000, 1);
INSERT INTO buytbl VALUES(NULL, 'JYP', '모니터', '전자', 200, 1);
INSERT INTO buytbl VALUES(NULL, 'BBK', '모니터', '전자', 200, 5);
INSERT INTO buytbl VALUES(NULL, 'KBS', '청바지', '의류', 50, 3);
INSERT INTO buytbl VALUES(NULL, 'BBK', '메모리', '전자', 80, 10);
INSERT INTO buytbl VALUES(NULL, 'SSK', '책' , '서적', 15, 5);
INSERT INTO buytbl VALUES(NULL, 'EJW', '책' , '서적', 15, 2);
INSERT INTO buytbl VALUES(NULL, 'EJW', '청바지', '의류', 50, 1);
INSERT INTO buytbl VALUES(NULL, 'BBK', '운동화', NULL , 30, 2);
INSERT INTO buytbl VALUES(NULL, 'EJW', '책' , '서적', 15, 1);
INSERT INTO buytbl VALUES(NULL, 'BBK', '운동화', NULL , 30, 2);
728x90
'Database > Mega-MySQL' 카테고리의 다른 글
Day04-3. MySQL 내장 함수 (0) | 2023.06.20 |
---|---|
Day04-1. UPDATE, DELETE FROM (0) | 2023.06.19 |
Day03-3. SQL의 분류, INSERT (0) | 2023.06.18 |
Day03-1. SQL 기본 - SELECT, 관계연산자, DISTINCT, LIMIT (0) | 2023.06.15 |
Day01. MySQL 설치와 수업 쿼리문 (0) | 2023.06.15 |
Comments