어제에 이어
문제 1) 새로운 전체 관리자 계정을 만들고, sawondb DB만 관리할 수 있는 계정을 만든다. 그리고 “sawondb” 데이타베이스 생성
>mysql -u root -h localhost -p
password :
mysql> grant all on *.* to rhinoceros identified by ‘*****’ with grant option;
mysql> grant all on sawondb.* to rhinoc identified by ‘*****’ ;
mysql> create database sawondb;
mysql> quit
sawondb만 관리할 수 있는 계정으로 접속
> mysql -u rhinoc -h IP주소 -p
password :
mysql> use sawondb
문제 2) sawondb에 테이블생성person 테이블
pno | pname | job | manager | startdate | pay | bonus | dno |
int not null primary key | varchar(9) not null | varchar(9) not null | int | date not null | int not null | int | int not null |
division 테이블
dno | dname | phone | position |
int not null primary key | varchar(15) not null | varchar(15) not null | varchar(10) not null |
,pname varchar(9) not null
,job varchar(9) not null
,manager int
,startdate date not null
,pay int not null
,bonus int
,dno int not null,primary key(pno));
,dname varchar(15) not null
,phone varchar(15) not null
,position varchar(10) not null);
mysql> desc person;
mysql> desc division;
■ DML (Data Manipulation Language)
1. 데이타 삽입
형식)
insert into 테이블명 values(값,값,값,…);
– primary key가 부여된 필드에 동일한 데이타 저장시 에러가 발생한다.
– 저장되는 값들은 테이블에 나열된 필드 순서에 따라 입력한다. => 값을 생략할 수 없다.
– 저장되는 값은 숫자형을 제외한 데이타는 ‘ ‘ 안에 입력한다. (‘홍길동’,123,’2009-01-07′)
단,null 데이타는 대.소문자 구분없이 null로 저장
insert into 테이블명(필드명,필드명,…) values(값,값,…);
– 저장되는 값은 나열된 필드의 순서에 따라 입력한다.
– 생략된 필드에는 default 값이 자동으로 저장된다.
– 필드의 순서에 제약을 받지 않는 장점이 있다.
replace 명령어로 가능
replace into 테이블명 values(값,값,값,…);
=> primary에 중복된 데이타 저장시 덮어씌우기가 된다.
ex) 제공한 데이터들을 입력해본다.
mysql> insert into person values(1001,’bill’,’president’,null,’1999-01-10′,7000,null,10);
.
.
.
mysql> select * from person;
※ 데이타 파일을 이용한 데이타 저장방법
형식)
load data infile “데이타파일명” into table 테이블명 ;
load data infile “데이타파일명” replace into table 테이블명 ;
※ load 명령을 사용하려면 계정이 File 관련 명령을 사용할 수 있는 권한이 있어야 한다.
– 데이타 파일 만드는 방법
1. 값과 값의 구분자는 tab을 이용한다.
2. 한 행 입력 후 다른 행을 입력하려면 Enter를 이용한다.
=> 마지막 행 데이타 입력 후 Enter치면 안된다.
10 finance 032-277-0411 inchon
20 research 061-535-1212 busan
30 sales 02-555-4985 seoul
40 marketing 031-284-3800 suwon
C:에 division.txt 파일로 저장하였다면
mysql> load data infile “c:/division.txt” into table division;
mysql> select * from division;
2. 데이타 삭제
형식)
delete from 테이블명 where 조건절 limit 갯수 ;
where 조건절 : 조건에 맞는 데이타 검색(생략가능)
limit 갯수 : 갯수만큼 삭제 (생락가능)
※ 삭제된 것은 복구를 못한다.
ex)
mysql> delete from division; =>모든 데이타 삭제 (auto_increment 수치는 이어짐)
mysql> delete from person limit 2 ; => person 테이블의 데이타 상위 2개 삭제
mysql> delete from person where pno=1118 ; => pno가 1118인 데이타를 삭제
문제)급여가 3000 이상인 사원 2명 삭제
mysql> delete from person where pay>=3000 limit 2 ;
3. 데이타 변경
형식)
update 테이블명 set 필드명=값,필드명=값,….where 조건;
필드명=값 : 변경되는 값
ex)
mysql> update person set pay=pay+200; =>급여에 200씩 더하라
mysql> update person set pname=’choi’,pay=4000 where pno=1123;
문제) 부서코드가 20인 사원의 급여 10% 인상으로 변경
mysql> update person set pay=pay*1.1 where dno=20 ;