MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18
SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition Language: DDL) : 데이터의 저장구조를 정의하는 언어로 스키마 정의 수정, 삭제하는 명령문과 인덱스의 생성 및 삭제 데이터조작 언어(Data Manipulation Language: DML) : 데이터에 접근 및 조작하는 언어로 튜플의 검색, 삽입, 삭제 수정과 같은 명령문 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 2 / 18
데이터베이스리스트출력 SHOW DATABASES; Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 3 / 18
데이터베이스 생성 CREATE DATABASE [db_name]; 이 문장을 실행하면 MySQL data 디렉토리에 db_name이란 서브디렉토리가 생성된다. 만일 같은 이름의 data base디렉토리가 있으면 에러메시지를 내보낸다. (예) 새로운 database world를 만들고, 이를 handling하기 위한 명령문은 다음과 같다. CREATE DATABASE world; USE world; Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 4 / 18
데이터베이스 삭제 DROP DATABASE [IF EXISTS] db_name DROP DATABASE IF EXISTS: 삭제하려는 데이터베이스가 없는 경우에 에러메시지를 막아줌 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 5 / 18
DATABASE: 한글처리 문자셋(Character Set): 문자의 인코딩 규칙이 정의된 집합 (ASCII, EUC-KR, UTF-8 등) 콜레이션(Collation): 문자셋으로 인코딩된 문자들간 비교시 사용하는 규칙집합 데이터베이스 생성시 character set과 collation을 지정하는 방법: CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 6 / 18
테이블생성시한글처리 CREATE TABLE mytbl( 테이블정의문 ;...... ) DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 7 / 18
테이블에자료입력 외부파일에서입력 : LOAD DATA 구문의이용레코드단위의입력 : INSERT 문사용 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 8 / 18
외부파일에서입력 : LOAD DATA LOAD DATA LOCAL INFILE "file_name" INTO TABLE tbl_name; FIELDS TERMINATED BY ","... ; FIELDS TERMINATED BY, : 컬럼간구분자표시 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 9 / 18
예제데이터 ( 외부데이터파일 ) Fluffy Harold cat f 1993-02-04 \N Claws Gwen cat m 1994-03-17 \N Buffy Harold dog f 1989-05-13 \N Fang Benny dog m 1990-08-27 \N Bowser Dianne dog m 1998-08-31 1995-07-29 Chirpy Gwen bird f 1998-09-11 \N Whistler Gwen bird \N 1997-12-09 \N Slim Benny snake m 1996-04-29 \N Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 10 / 18
테이블생성 CREATE TABLE pet( name VARCHAR(20) NOT NULL PRIMARY KEY, owner VARCHAR(20), species VARCHAR(20), sex VARCHAR(1), birth DATE, death DATE ); Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 11 / 18
레코드단위입력 INSERT INTO pet VALUES('Puffball','Diane','hamster','f','1999-03-30' INSERT INTO pet VALUES('Fluffy','Harold','cat','f','1993-02-04',NULL INSERT INTO pet VALUES('Claws','Gwen','cat','m','1994-03-17',NULL);... Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 12 / 18
외부파일을이용한입력 LOAD DATA LOCAL INFILE "/home/jskim/tmp/pet.txt" INTO TABLE pet FIELDS TERMINATED BY "\t"; Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 13 / 18
뉴스테이블생성 CREATE TABLE test_db.news( journal VARCHAR(20) NOT NULL, title VARCHAR(200), pub_date DATE, reporter VARCHAR(20), contents text ); Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 14 / 18
외부파일을 이용한 입력 엑셀 데이터 변환 기사내용의 줄나눔(개행) 문자를 공백으로 치환 탭구분 텍스트 파일로 저장 Linux에서는 한글 인코딩 UFT-8로 변환 아래의 SQL구문 사용 LOAD DATA LOCAL INFILE "/var/www/lectures/2016-2/db/news-tab-utf8 INTO TABLE test_db.news; /* FIELDS TERMINATED BY "\t" LINES TERMINATED BY "EOL\n";*/ SELECT journal FROM test_db.news LIMIT 10; Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 15 / 18
조회 SELECT journal FROM test_db.news LIMIT 10; SELECT title FROM test_db.news LIMIT 50; SELECT journal, title, pub_date, reporter FROM test_db.news LIMIT SELECT contents FROM test_db.news LIMIT 2; Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 16 / 18
R iris data head(iris, 2) ## Sepal.Length Sepal.Width Petal.Length Petal.Width Species ## 1 5.1 3.5 1.4 0.2 setosa ## 2 4.9 3.0 1.4 0.2 setosa write.table(iris, file="h:/lectures/2016-2/db/iris.csv", sep=",", col.names = FALSE, row.names = FALSE, quote=false) Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 17 / 18
iris 테이블생성 CREATE TABLE test_db.iris( Sepal_Length DOUBLE, Sepal_Width DOUBLE, Petal_Length DOUBLE, Petal_Width DOUBLE, Species VARCHAR(20), ); Sepal.Length Sepal.Width Petal.Length Petal.Width Species ## R iris data LOAD DATA LOCAL INFILE "C:/tmp/iris.csv" INTO TABLE test_db.iris FIELDS TERMINATED BY ","; Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 18 / 18