MYSQL 설치 SQL언어 SQL언어의 활용 웹과 SQL언어와의 연동
개요 실험제목 목표 목차 SQL언어를 사용하여 데이터베이스 조작하기 테이블 생성과 구조변경, 삭제 하기 데이터 입력, 삭제, 수정 하기 목차 입문예제 SQL언어의 종류 DDL언어 CREATE절 연습 ALTER절 연습 DML언어 INSERT절 연습 UPDATE절 연습 DELET절 연습 DQL언어 Select절 연습 Distinct절 연습 Order by절 연습 Where절 연습 요약 연습문제 실습과제
입문 예제 테이블 생성 ,입력 후 name = “DATA MINING”인 정보를 출력하여라. 실행 결과 Create table book ( Isbn varchar(40), Name varchar(100) ); Insert into book values(“0-324-32136-7”, “DATA MINING”); Insert into book values(“1-323-45732-1”, “ALGORITHMS”); Select * from book where name = “DATA MINING”; 실행 결과
(Data Controm Language) 이론 : SQL언어의 종류 구 분 형 식 비 고 DQL (Data Query Language) SELECT column-1, column-2, ... FROM table명 WHERE 조건절; 테이블 내의 데이터 조회할 때 사용 DML (Data Manipulation Language) UPDATE table명 ...; INSERT INTO table명 ...; DELETE table명 ...; 테이블 내의 데이터 수정, 입력, 삭제할 때 사용 DDL (Data Definition CREATE TABLE table명 ....; DROP TABLE table명 ....; ALTER TABLE table명 ....; 테이블을 생성하고 변경, 삭제할 때 사용 TCL (Transaction Control COMMIT; ROLLBACK; SAVEPOINT; Transaction 종료 및 취소 DCL (Data Controm Language) GRANT ...; REVOKE ...; 권한 부여 및 취소
이론 : DDL언어 Alter table student ADD( Grade int); CREATE 데이터베이스 내의 모든 객체를 생성할 때 사용함. 문법 ALTER 이미 생성된 객체의 구조를 변경할 때 사용됨. DROP 생성되어 있는 객체를 삭제할 때 사용됨. RENAME 기존의 파일명을 다른 이름으로 변경할 때 사용되는 명령어. CREATE TABLE 테이블명( 컬럼명1 데이터타입, 컬럼명2 데이터타입, … ); ALTER TABLE 테이블명 ADD(추가하고자하는 컬럼, 데이터 타입) 테이블 생성 후 데이터 입력 DROP 테이블명 ALTER TABLE 테이블명 RENAME COLUMN 현재컬럼명 TO 새로운컬럼명
연습: CREATE절 Create table student( Id int, Name varchar(30), Student table 만들기 Employee table 만들기 [우측란에는 실행결과를 보여줌] 보충설명 Create table student( Id int, Name varchar(30), Address varchar(100), mobilnumber varchar(50) ); Create table student( empid int, Name varchar(30), Address varchar(100), Salary int ); TYPE 의 미 INT 정수 FLOAT 보동소수 CHAR 고정 길이 문자열 VARCHAR 가변 길이 문자열 TEXT 텍스트 문자열 DATE 날짜 값 ‘CCYY-MM-DD'포맷임 TIME 시간 값 'hh:mm:ss'포맷임
연습 : ALTER절 이미 만들어진 Student table에 grade컬럼 삽입 <Alter실행 전> Alter table student ADD( Grade int); <Alter실행 전> <Alter실행 후>
이론 : DML(Data manipulation language) INSERT 테이블에 데이터를 저장할 때 사용. 문법 UPDATE 테이블에 저장되어 있는 데이터 변경시 사용. DELETE 테이블에 저장되어 있는 데이터를 삭제할 때 사용. INSERT INTO 테이블 [(컬럼1,컬럼2…)] VALUES (컬럼1의값, 컬럼2의 값…); 테이블 리스트에 있는 컬럼 개수와 VALUES절의 값 개수는 같아야 함. [ ]부분은 생략 가능. UPDATE 테이블 SET 컬럼1 = 변경될값1[,컬럼2 = 변경될값2] DELETE [FROM] 테이블 SET 컬럼1 = 변결될값1
WHERE절은 조건절로 생략하면 전체 행이 변경된다. 연습 :INSERT절, UPDATE절 Student table 에 Jane의 정보 입력(INSERT) INSERT INTO STUDETN VALUES (22, “Jane”,”LA”,”000-222-0987”,3); <INSERT실행 전> Student table의 Tedy의 Grade정보 변경(UPDATE) <INSERT실행 후> UPDATE STUDENT SET GRADE = 2 WHERE ID = 11; <UPDATE실행 전> WHERE절은 조건절로 생략하면 전체 행이 변경된다. <UPDATE실행 후>
WHERE절은 조건절로 생략하면 전체 행이 삭제된다. 연습: DELETE절 Student table의 Jane의 정보 삭제 DELETE STUDENT WHERE ID = 22; <UPDATE실행 전> WHERE절은 조건절로 생략하면 전체 행이 삭제된다. <UPDATE실행 후>
이론 : DQL(Data Query language) SELECT 데이터베이스 내의 테이블로부터 데이터를 조회할 때 사용. 문법 DISTINCT 키워드 중복되는 값은 하나만 출력. ORDER BY 지정된 컬럼을 기준으로 분류하여 출력 WHERE FROM절에 의해 검색된 데이터 중에서 조건에 맞는 ROW들만 제한하여 검색 SELECT [ DISTINCT]{*, 컬럼…} FROM 테이블명 [WHERE 조건] SELECT:원하는 컬럼을 선택 FROM:원하는 데이터가 저장된 테이블명을 기술 WHERE:조회되는 행을 선택 SELECT [ DISTINCT]{*, 컬럼…} FROM 테이블명 ORDER BY [컬럼명1],[컬럼명2]..[ASC/DESC]
연습: SELECT절 SELECT * FROM STUDENT; SELECT name, grade FROM STUDENT; Student table 모든 정보 출력 Student table의 name과 grade컬럼 출력 SELECT * FROM STUDENT; SELECT name, grade FROM STUDENT;
Grade값 중 중복이 되는 3은 한번만 출력되게 된다. 연습: DISTINCT절 SELECT DISTINCT Grade FROM STUDENT; Grade값 중 중복이 되는 3은 한번만 출력되게 된다. <DISTINCT 실행 후>
연습: ORDER BY절 <내림차순 정렬 후> SELECT * FROM STUDENT [우측란에는 실행결과를 보여줌] SELECT * FROM STUDENT ORDER BY Grade DESC; Student의 모든 값을 Grade의 내림 차순으로 출력, ORDER BY는 default값이 오름차순임 <내림차순 정렬 후>
연습: ORDER BY절 <오름차순 정렬 후> SELECT * FROM STUDENT ORDER BY Grade; [우측란에는 실행결과를 보여줌] SELECT * FROM STUDENT ORDER BY Grade; Student의 모든 값을 Grade의 오름 차순으로 출력, ORDER BY는 default값이 오름차순임 <오름차순 정렬 후>
Student의 Grade가 2인 모든 값을 출력 연습: WHERE 절 SELECT * FROM STUDENT WHERE Grade = 2; Student의 Grade가 2인 모든 값을 출력
연습문제(구현) 아래 제시한 관계형 테이블을 생성하는 SQL문을 작성하시오. 개체 타입 테이블명은 Professor 위에서 제시한 Professor 테이블에서 교수번호가 146001인 데이터를 삭제 후 테이블의 정보를 출력하시오. 개체 타입
연습문제(구현) Emp 테이블을 생성하고 INSERT를 이용하여 데이터를 입력하는 SQL문을 작성하시오. Emp 테이블을 이용하여 중복된 직무를 제외하고 출력하는 SQL문을 작성하 시오. Emp 테이블을 이용하여 직무별, 부서번호별 중복된 값을 제외하고 출력하 는 SQL문을 작성하시오. Emp 테이블을 이용하여 모든 사원의 부서번호를 출력하는 SQL문을 작성하 시오. 사원번호 사원명 직급 급여 부서번호 5 유관순 이사 550 40 2 주영현 과장 250 10 주일환 차장 300 4 홍길동 부장 350 30 3 홍경욱 200 20 Emp 테이블
연습문제(구현) Emp 테이블을 이용하여 급여가 적은 사람부터 출력하는 SQL문을 작성하시 오.
요약 [실험수행을 효과적으로 수행하기 위한 tip] SQL문의 작성 SQL문 작성시 주의사항 CREATE절 ALTER절 데이터베이스 내의 모든 객체를 생성 ALTER절 이미 생성된 객체의 구조를 변경 DROP절 생성되어 있는 객체를 삭제 RENAME절 기존의 파일명을 다른 이름으로 변경 INSERT절 테이블에 데이터를 저장 UPDATE절 테이블에 저장되어 있는 데이터 변경 DELETE절 테이블에 저장되어 있는 데이터를 삭제 SELECT절 데이터베이스 내의 테이블로부터 데이터를 조회 DISTINCT절 중복되는 값은 하나만 출력 ORDER BY절 지정된 컬럼을 기준으로 분류 WHERE절 FROM절에 의해 검색된 데이터 중에서 조건에 맞는 ROW 들만 제한하여 검색 [실험수행을 효과적으로 수행하기 위한 tip] SQL문의 작성 키워드는 대문자로 작성하는 것이 바람직함 각 절을 구분하여 작성 의미있는 단어를 사용하여 작성 SQL문 작성시 주의사항 문장의 끝에는 항상 ; 사용. 문자 입력시 “ “ 사용. 윈도우에서는 대소문자 구분하지 않는다.
실습과제 1. Emp 테이블에서 사원번호가 5인 사원의 사원명, 직급, 부서번호를 출력하는 SQL문을 작성하시오. 급여 부서번호 5 유관순 이사 550 40 2 주영현 과장 250 10 주일환 차장 300 4 홍길동 부장 350 30 3 홍경욱 200 20 부서번호 사원명 지역코드 10 전산과 1 20 경영지원과 30 총무과 40 기술지원과 Dept테이블 Emp 테이블