MySQL - 명령어
1. 데이터베이스관련명령 2. 데이터베이스테이블관련명령 3. SQL 명령의일괄실행 4. 레코드관련명령 5. 데이터베이스백업및복원명령
1. 데이터베이스관련명령 데이터베이스접속명령 데이터베이스접속명령 mysql -u계정 -p비밀번호데이터베이스명 C: > mysql -ukdhong p1234 kdhong_db 데이터베이스생성명령 데이터베이스생성명령 create database 데이터베이스명 ; mysql> create database sample1; [ 참고 ] 여기에서는 5 장에서만든비밀번호가 1234 인 kdhong 계정과 kdhong_db 데이터베이스를사용한다
1. 데이터베이스관련명령 데이터베이스목록보기 데이터베이스목록출력명령 show databases; mysql> show databases; 데이터베이스삭제 데이터베이스삭제명령 drop database 데이터베이스명 ; mysql> drop database sample1;
2. 데이터베이스테이블관련명령 데이터베이스테이블설계 [ 표 6-1] 주소록데이터베이스테이블설계 ( 테이블명 : friend) 필드명 타입 설명 num int 일련번호 name char(10) 이름 address varchar(80) 또는 char(80) 주소 tel char(20) 전화번호 email char(20) 이메일주소
2. 데이터베이스테이블관련명령 테이블생성명령 데이터베이스테이블생성명령 mysql> create table 테이블명 ( 필드명 1 타입, 필드명 2 타입, 필드명 3 타입,... PRIMARY KEY( 필드명 ) );
2. 데이터베이스테이블관련명령 주소록테이블 (friend) 만들기 ( 표 6-1) C: > mysql -ukdhong -p1234 kdhong_db mysql> create table friend ( -> num int not null, -> name char(10), -> address char(80), -> tel char(20), -> email char(20), -> primary key(num) -> ); [ 그림 6-9] friend 테이블생성
2. 데이터베이스테이블관련명령 데이터베이스테이블의구조확인 데이터베이스테이블의필드구조출력명령 desc 테이블명 ; mysql> desc friend; [ 그림 6-11] friend 테이블의구조확인
2. 데이터베이스테이블관련명령 새로운필드추가명령 데이터베이스테이블의필드추가명령 alter table 테이블명 add 새로운필드명필드타입 [first 또는 after 필드명 ]; ex) 앞서만든 friend 테이블나이필드를정수형으로추가 1. mysql> alter table friend add age int; 2. mysql> desc friend; [ 그림 6-12] friend 테이블에 age 필드추가
2. 데이터베이스테이블관련명령 필드삭제 데이터베이스테이블의특정필드삭제명령 alter table 테이블명 drop 삭제할필드명1, 삭제할필드명2; ex) friend 테이블에서 email 과 age 필드삭제 1. mysql> alter table friend drop email; 2. mysql> alter table friend drop age; 3. mysql> desc friend; [ 그림 6-14] friend 테이블에서 age 와 email 필드삭제
2. 데이터베이스테이블관련명령 필드수정명령 데이터베이스테이블의필드수정명령 alter table 테이블명 change 이전필드명새로운필드명필드타입 ; ex) friend 테이블필드중 tel char(20) 을 phone int 로변경 mysql> alter table friend change tel phone int; [ 그림 6-15] tel char(20) 을 phone int 로변경
2. 데이터베이스테이블관련명령 필드타입수정명령 데이터베이스테이블필드타입수정명령 alter table 테이블명 modify 필드명새로운타입 ; ex) name 필드의타입을 int 로변경 mysql> alter table friend modify name int; 데이터베이스테이블명수정명령 데이터베이스테이블명수정명령 alter table 이전테이블명 rename 새로운테이블명 ; ex) 테이블명 friend 에서 student 로변경 mysql> alter table friend rename student;
2. 데이터베이스테이블관련명령 테이블삭제 데이터베이스테이블삭제명령 drop table 테이블명 ; ex) friend 테이블삭제 1. mysql> drop table friend; 2. mysql> show tables; [ 그림 6-21] friend 테이블의삭제
3. SQL 명령의일괄실행 명령일괄실행과정 1. 텍스트파일에데이터베이스테이블생성명령저장 2. kdhong 폴더로이동 3. SQL 명령일괄실행및실행확인
3. SQL 명령의일괄실행 1. 텍스트파일에데이터베이스테이블생성명령저장 C 드라이브에 [kdhong] 폴더생성 메모장 friend2.sql 이름으로저장 friend2 데이터베이스테이블생성 friend2.sql create table friend2( num int not null, name char(10), address char(80), tel char(20), primary key(num) );
3. SQL 명령의일괄실행 2. kdhong 폴더로이동 1. C: > cd \kdhong 2. C: kdhong> dir 3. SQL 명령일괄실행및실행확인 1. C: kdhong> mysql -ukdhong -p1234 kdhong_db < friend2.sql 2. C: kdhong> mysql -ukdhong -p1234 kdhong_db 3. mysql> show tables; 4. friend 테이블의구조점검 1. mysql> desc friend2;
4. 레코드관련명령 테이블에데이터삽입 레코드삽입명령 insert into 테이블명 ( 필드명1, 필드명2,...) values ( 필드값1, 필드값2,...); ex) 배성진 과관련된데이터를삽입후 select 명령으로확인 1. mysql> insert into friend2 (num, name, address, tel) -> values (1, ' 배성진 ', ' 서울동작구노량진동 ', -> '234-7693'); 2. mysql> select * from friend2; [ 그림 6-25] friend2 테이블에레코드삽입
4. 레코드관련명령 데이터베이스테이블생성및다수의레코드삽입 1. 데이터베이스테이블설계 2. mem.sql 일괄실행 3. 생성된데이터베이스테이블및테이블구조확인 4. 데이터베이스 mem에저장된레코드확인
4. 레코드관련명령 1. 데이터베이스테이블설계 [ 표 6-2] 회원관리데이터베이스테이블설계 ( 테이블명 : mem) 필드명 타입 NULL 설명 num int no 일련번호 id char(15) no 아이디 name char(10) no 이름 gender char(1) yes 성별 ( 남성 : M, 여성 : W ) post_num char(8) yes 우편번호 address char(80) yes 주소 tel char(20) yes 전화번호 age int yes 나이
4. 레코드관련명령 2. mem.sql 일괄실행 mem 데이터베이스테이블생성 create table mem ( num int not null, id char(15) not null, name char(10) not null, sex char(1), post_num char(8), address char(80), tel char(20), age int, primary key(num) ); mem.sql insert into mem values (1, 'yjhwang', ' 황영주 ', 'M', '100-011,' 서울시중구충무로 1 가 ', '234-8879', 35); insert into mem values (2, 'khshul', ' 설기형 ', 'M', '607-010,' 부산시동래구명륜동 ', '764-3784', 33); insert into mem values (3, 'chpark', ' 박철호 ', 'M', '503-200,' 광주시남구지석동 ', '298-9730', 34);
4. 레코드관련명령 2. mem.sql 의일괄실행 1. C: kdhong> mysql -ukdhong -p1234 kdhong_db < mem.sql 3. 생성된데이터베이스테이블및테이블구조확인 2. C: > mysql -ukdhong p1234 kdhong_db 3. mysql> show tables; [ 그림 6-27] mem.sql 일괄실행후, mem 테이블의존재확인
4. 레코드관련명령 3. 생성된데이터베이스테이블및테이블구조확인 1. mysql> desc mem; [ 그림 6-28] mem 테이블의구조확인 4. 데이터베이스 mem 에저장된레코드확인 1. mysql> select * from mem;
4.3 레코드검색명령 특정필드데이터검색명령 특정필드에입력된데이터검색명령 select 필드명1, 필드명2 from 테이블명 ; mysql> select id, name, address from mem; 전체필드데이터검색명령 mysql> select *from mem; 조건에맞는레코드검색명령 조건에맞는레코드검색명령 select 필드명 1, 필드명 2 from 테이블명 where 조건식 ;
4.3 레코드검색명령 ex) 여성의아이디, 이름, 주소, 전화번호, 성별보기 mysql> select id, name, address, tel, -> sex from mem where sex = W ; ex) 50 세이상인레코드의전체필드보기 mysql> select * from mem where age>=50;
4.3 레코드검색명령 ex) 20 대의이름, 아이디, 주소, 우편번호보기 mysql> select name, id, address, post_num from mem -> where age>=20 and age<30; ex) 김진모레코드의아이디, 주소, 우편번호, 나이출력 mysql> select name, id, address, post_num, age -> from mem where name=' 김진모 ';
4.3 레코드검색명령 ex) 40 대남성의이름, 주소, 나이보기 mysql> select name, address, age from mem -> where (age>=40 and age<50) and sex='m'; ex) 20 대또는 40 대여성의이름, 아이디, 주소, 전화번호, 나이성별보기 mysql> select name, id, address, tel, age from mem -> where ((age>=20 and age<30) or (age>=40 -> and age<50)) and sex='w';
4.3 레코드검색명령 특정문자열이포함된레코드검색명령 특정문자열이포함된레코드검색명령 select 필드명1, 필드명2, from 테이블명 where 검색필드 like 조건식 ; 성이김씨인사람의이름, 주소, 전화번호보기 mysql> select name, address, tel from mem where -> name like ' 김 %';
4.3 레코드검색명령 ex) 서울에사는사람의이름, 주소보기 mysql> select name, address from mem where address -> like ' 서울 %'; ex) 부산사는여성의이름, 주소, 성별보기 mysql> select name, address, sex from mem -> where address like ' 부산 %' and sex='w ;
4.3 레코드검색명령 ex) 가운데이름이 용 인사람의이름, 아이디보기 mysql> select name, id from mem where name like ' 용 %' ; ex) 광주에사는김씨의이름, 주소, 전화번호출력 mysql> select name, address, tel from mem -> where address like ' 광주 %' and name like ' 김 %';
4.4 레코드정령명령 레코드정렬명령 select 필드명 1, 필드명 2 from 테이블명 order by 필드명 ; ex) 나이순정렬, age, id, name, tel 필드검색 오름차순정렬명령 mysql> select age, id, name, sex, tel from mem -> order by age; 내림차순정렬명령 mysql> select age, name, address from mem -> where address like ' 서울 %' order by age desc;
4.5 레코드수정명령 레코드수정명령 레코드수정명령 update 테이블명 set 필드명 = 필드값 [where 조건식 ] ex) mem 테이블에서아이디가 yjhwang인레코드의전화번호를 123-4567로변경 1. mysql> update mem set tel='123-4567' where id='yjhwang'; 2. mysql> select id, name, tel from mem where id='yjhwang';
4.5 레코드수정명령 ex) mem 테이블에속한신수진의나이를 27 세로변경 1. mysql> update mem set age=27 where name=' 신수진 '; 2. mysql> select name, age from mem where name=' 신수진 ';
4.6 레코드삭제명령 조건식을만족하는특정레코드삭제명령 delete from 테이블명 where 조건식 ex) mem 테이블에서이름이김길수인레코드를삭제 1. mysql> delete from mem where name= ' 김길수 '; 2. mysql> select * from mem where name= ' 김길수 ';
4.6 레코드삭제명령 30~50 세레코드삭제 나이가 30~50세인레코드를삭제 1. mysql> delete from mem where age>=30 and age<=50; 2. mysql> select name, address, age from mem; 전체레코드삭제 mysql> delete from mem;
5. 데이터베이스백업및복원명령 데이터베이스백업 데이터베이스백업명령 mysqldump -u 계정 -p 비밀번호데이터베이스명 > 백업파일명 kdhong 계정의 kdhong_db 를 kdhong_db.sql 에백업 C: kdhong> mysqldump -ukdhong -p1234 kdhong_db -> kdhong_db.sql 백업파일복원 데이터베이스백업파일복원명령 mysql -u계정 -p비밀번호데이터베이스명 < 백업파일명 kdhong_db.sql 을다른사용자계정에복원 계정 : kim, 비밀번호 : 1234, 데이터베이스명 : kim_db C: kdhong>mysql -ukim -p1234 kim_db < kdhong_db.sql