본문 바로가기

Database/MySQL

(19)
[연습문제] 서브 쿼리 -- 서브 쿼리 연습문제 /* 연습문제 1. 호날두(고객명)가 주문한 도서의 총 구매량 출력 2. ‘종로출판사’에서 출간한 도서를 구매한 적이 있는 고객명 출력 3. 베컴이 주문한 도서의 최고 주문수량보다 더 많은 도서를 구매한 고객명 출력 4. 서울에 거주하는 고객에게 판매한 도서의 총 판매량 출력 */ -- 1. 호날두(고객명)가 주문한 도서의 총 구매량 출력 SELECT SUM(bsQty) "총 구매량" FROM bookSale WHERE clientNo = (SELECT clientNo FROM client WHERE clientName = '호날두'); -- 서브 쿼리 결과가 단일 행인 경우에는 =과 IN 둘 다 사용 가능 SELECT SUM(bsQty) "총 구매량" FROM bookSale ..
[연습문제] JOIN -- 연습문제 -- 1. 모든 도서에 대하여 도서의 도서번호, 도서명, 출판사명 출력 SELECT B.bookNo, B.bookName, b.bookauthor, P.pubName FROM book B INNER JOIN publisher P ON B.pubNo = P.pubNo ; -- 2. '서울 출판사'에서 출간한 도서의 도서명, 저자명, 출판사명 출력 -- (조건에 출판사명 사용) SELECT B.bookName, B.bookAuthor, P.pubName FROM book B INNER JOIN publisher P ON B.pubNo = P.pubNo WHERE P.pubName = '서울 출판사'; -- 3. '종로출판사'에서 출간한 도서 중 판매된 도서의 도서명 출력 -- 중복된 경우 한 ..
ORDER BY - 한글 영문 숫자 / 영문 한글 숫자 순서로 정렬 - 영어 대문자 A ~ Z : 65 ~ 90 - 영어 소문자 a ~ z : 97 ~ 122 - 숫자 0 ~ 9: 48 ~ 57 한글 - 영문 - 숫자 순서로 정렬 SELECT * FROM book ORDER BY (CASE WHEN ASCII(SUBSTRING(bookName, 1)) BETWEEN 48 AND 57 THEN 3 WHEN ASCII(SUBSTRING(bookName, 1)) < 122 THEN 2 ELSE 1 END), bookName; 영문 - 한글 - 숫자 순서로 정렬 SELECT * FROM book ORDER BY (CASE WHEN ASCII(SUBSTRING(bookName, 1)) BETWEEN 48 AND 57 THEN 3 WHEN ASCII(SUBSTRING(bookNam..
[연습문제] DML INSERT /* 연습문제 INSERT 문을 사용하여 학과 / 학생 테이블에 다음과 같이 데이터 입력 SELECT 문으로 조회 */ -- 학과 테이블 생성 CREATE TABLE department( dptNo VARCHAR(10) NOT NULL PRIMARY KEY, dptName VARCHAR(30) NOT NULL, dptTel VARCHAR(13) ); -- 학생 테이블 생성 CREATE TABLE student ( stdNo VARCHAR(10) NOT NULL PRIMARY KEY, stdName VARCHAR(30) NOT NULL, stdYear INT DEFAULT 4 CHECK(stdYear >= 1 AND stdYear = '2018-01-01' AND bookDate = 25000..
csv 파일 import 시 주의사항 text 타입 데이터들을 VARCHAR() 타입으로 변경 기본키 제약조건을 포함한 필요한 제약조건들 추가 -- 기본키인 prdNo를 VARCHAR(10) NOT NULL로 변경 ALTER TABLE product MODIFY prdNo VARCHAR(10) NOT NULL; -- 모든 text 타입을 VARCHAR 타입으로 변경 ALTER TABLE product MODIFY prdName VARCHAR(20), MODIFY prdMaker VARCHAR(30), MODIFY prdColor VARCHAR(10), MODIFY ctgNo VARCHAR(10); -- 기본키 제약조건 추가 ALTER TABLE product ADD CONSTRAINT PK_product_prdNo PRIMARY KEY (p..
[연습문제] DDL_ALTER /* 테이블 ALTER 연습문제 1. product 테이블에 숫자 값을 갖는 prdStock과 제조일을 나타내는 prdDate 열 추가 2. product 테이블의 prdCompany 열을 NOT NULL로 변경 3. publisher 테이블에 pubPhone, pubAddress 열 추가 4. publisher 테이블에서 pubPhone 열 삭제 */ -- 1. product 테이블에 숫자값을 갖는 prdStock과 -- 제조일을 나타내는 prdDate 열 추가 ALTER TABLE product ADD (prdStock INT, prdDate DATE); -- 2. product 테이블의 prdCompany 열을 NOT NULL로 변경 ALTER TABLE product MODIFY prdCompan..
[DDL] 기본키 제약 조건을 설정하는 다양한 방법 -- 1 CREATE TABLE product( prdNo VARCHAR(10) NOT NULL PRIMARY KEY, prdName VARCHAR(30) NOT NULL, prdPrice INT, prdCompany VARCHAR(30) ); -- 2 CREATE TABLE product2( prdNo VARCHAR(10) NOT NULL, prdName VARCHAR(30) NOT NULL, prdPrice INT, prdCompany VARCHAR(30), PRIMARY KEY(prdNo) ); -- 3 CREATE TABLE product3( prdNo VARCHAR(10) NOT NULL, prdName VARCHAR(30) NOT NULL, prdPrice INT, prdCompany VARC..
파일을 읽어오는 내장함수 LOAD_FILE() & 데이터 파일로 내보내기 LOAD_FILE() 함수 : 대용량 데이터 저장 : LOAD_FILE(파일 경로) : 파일 용량이 현재 설정된 크기보다 큰 경우 데이터 저장 안 됨 -> my.ini 파일에서 파일 최대 크기 변수 변경 -> 파일 업로드/다운로드 하는 폴더 경로를 별도로 허용하는 내용 추가 (파일이 저장 경로 지정) -- movie 테이블 생성 CREATE TABLE movie ( movieId VARCHAR(10) NOT NULL PRIMARY KEY, movieTitle VARCHAR(30), movieDirector VARCHAR(20), movieStar VARCHAR(20), movieScript LONGTEXT, movieFilm LONGBLOB ); -- 데이터 입력 INSERT INTO movie VALU..
데이터베이스 관리 기능 및 DCL 데이터베이스 관리 기능 : 계정 관리 : 사용자 계정 생성 / 조회 / 수정 : 비밀번호 변경 : 계정 잠금 / 잠금 해제 : 관한 관리 : 계정에 권한 부여 / 제거 : 테이블 복사 : 백업 및 복구(Export / Import) DCL (Data Control Language) : 계정 관리 : 데이터의 사용 권한 관리 : 데이터베이스 트랜잭션 명시 (COMMIT / REVOKE) : COMMIT : 작업 완료 : REVOKE : 작업 취소 : 트랜잭션 처리 중에 오류 발생 : COMMIT 하지 않고 REVOKE 작업 처리하기 이전으로 되돌림 : GRANT : 데이터베이스 객체 권한 부여 : REVOKE : 이비 부여된 데이터베이스 객체의 권한 취소 권한 (Privilege) : 특정 유형의 SQL ..