이번 포스팅을 실습하기 위해서는 MySQL “root” 사용자로 로그인을 할 수 있어야 합니다.
MySQL이 처음이면 아래의 블로그 글을 먼저 읽어야 합니다.
1. MySQL .zip 파일 실행하기: [ gonyzany.tistory.com/313 ]
2. Workbench 다운로드 및 설치 : [ gonyzany.tistory.com/318 ]
이 포스팅은 다음과 같은 내용에 관한 것입니다.
3. 데이터베이스 생성 및 사용자 생성, 테이블 생성, 데이터 입력
여기에서는 Workbench를 이용해서 실습을 합니다.
명령 프롬프트를 사용해도 동일한 결과를 얻을 수 있습니다.
1. MySQL Workbench 실행하고, root 사용자로 로그인을 합니다.
2. 데이터베이스 생성과 삭제
데이터베이스를 생성하고 삭제하는 명령은 다음과 같습니다.
CREATE DATABASE 데이터베이스명; #데이터베이스 생성
DROP DATABASE 데이터베이스명; #데이터베이스 삭제
여기서는 학사(haksa) 데이터베이스를 생성합니다.
CREATE DATABASE haksa; |
3. 사용자 생성
“haksa” 데이터베이스를 다룰 수 있는 사용자를 생성하고, 권한을 부여합니다.
사용자명은 “user1”, 암호는 “user1pwd”로 생성합니다.
CREATE USER user1 IDENTIFIED BY 'user1pwd'; |
위의 사용자는 로컬컴퓨터에서만 MySQL에 연결할 수 있습니다.
네트워크를 통해서도 연결을 허용하기 위해서는 아래와 같이 생성합니다.
CREATE USER 'user1'@'%' IDENTIFIED BY 'user1pwd';
5. 권한 부여
권한 부여는 GRANT 명령을 사용합니다.
GRANT ALL PRIVILEGES ON 데이터베이스명.테이블명 to user1 WITH GRANT OPTION;
다음 코드는 “user1” 사용자에게 “haksa” 데이터베이스의 모든 테이블에 모든 작업을 할 수 있는 권한을 부여합니다.
GRANT ALL PRIVILEGES ON haksa.* to user1 WITH GRANT OPTION; |
지금까지 작업한 내용를 데이터베이스에 즉시 반영합니다.
FLUSH PRIVILEGES; |
“root”로 로그인한 연결을 끊습니다.
“user1”으로 로그인할 수 있는 connection을 생성합니다.
"user1"으로 로그인하기
위에서 생성한 "user1"을 선택해서 “user1”으로 로그인합니다.
다음과 같이 입력하고, 실행합니다.
“haksa” 데이터베이스를 사용합니다.
use haksa; |
학과코드(department) 테이블을 생성합니다.
-- 학과(department) 테이블 생성 -- 기본키: deptCD -- 필드: 학과코드, 학과명 create table department( deptCD char(2) NOT NULL, department varchar(20), PRIMARY KEY (deptCD) ); |
학생(student) 테이블을 생성합니다.
-- 학생(student) 테이블 생성 -- 기본키: hakbun(학번) -- 외래키: 학과코드(deptCD) -- 필드: 학번, 이름, 성별, 생년월일, 학과코드,학년,주소,전화 create table student( hakbun char(7) NOT NULL, name varchar(20), sx char(1), birthday date, deptCD char(2) NOT NULL, s_year char(1), addr varchar(100), tel varchar(15), PRIMARY KEY (hakbun), FOREIGN KEY (deptCD) REFERENCES department(deptCD) ); |
“department” 테이블에 데이터를 입력합니다.
insert into department(deptCD, department) values('11', '기계공학과'); insert into department(deptCD, department) values('12', '컴퓨터공학과'); insert into department(deptCD, department) values('13', '전기공학과'); insert into department(deptCD, department) values('14', '전자공학과'); insert into department(deptCD, department) values('15', '건축학과'); insert into department(deptCD, department) values('20', '경영학과'); insert into department(deptCD, department) values('30', '철학과'); insert into department(deptCD, department) values('40', '간호학과'); |
“student” 테이블에 데이터를 입력합니다.
insert into student values('2011001', '강백호', '1', '2002-12-31', '11','1','서울', '010-1111-1111'); insert into student values('2011002', '천재', '1', '1999-11-30', '11','2','부산', '010-1111-1112'); insert into student values('2011003', '이순신', '1', '2002-10-03', '11','3','서울', '010-1111-1113'); insert into student values('2012001', '신문지', '1', '2002-09-01', '12','4','인천', '010-2222-1114'); insert into student values('2013001', '홍길동', '1', '2002-08-02', '13','1','부산', '010-3333-1115'); insert into student values('2014001', '김나라', '2', '2001-07-05', '14','2','광주', '010-4444-1116'); insert into student values('2014002', '유소영', '2', '2001-07-07', '14','2','울산', '010-4444-1117'); insert into student values('2014003', '공무원', '1', '2002-06-15', '14','1','서울', '010-4444-1118'); insert into student values('2015001', '새나라', '2', '2002-05-15', '15','3','서울', '010-5555-1119'); insert into student values('2020001', '구석기', '1', '2002-12-17', '20','4','서울', '010-2020-1120'); insert into student values('2020002', '허저', '1', '2002-12-16', '20','1','대구', '010-2020-1121'); insert into student values('2030001', '허난설현', '2', '2001-04-14', '30','2','부산', '010-3030-1122'); insert into student values('2030002', '김구', '1', '2003-04-13', '30','1','서울', '010-3030-1123'); insert into student values('2040001', '오만원', '1', NULL, '40','3','부산', '010-4040-1124'); insert into student values('2040002', '이나라', '2', NULL, '40','4','서울', '010-4404-1125'); |
여기까지의 작업을 데이터베이스에 반영합니다.
FLUSH PRIVILEGES; |
select 구분을 이용해서, 데이터를 조회해 봅니다.
select * from department; |
select * from student; |
$
'Database > MySQL' 카테고리의 다른 글
(MyQL) DESC: 테이블 구조 알아보기 (0) | 2023.02.17 |
---|---|
(MySQL) NULL 검색: IS NULL, IS NOT NULL (0) | 2023.02.15 |
(MySQL) SELECT 명령 (1) (0) | 2023.02.11 |
(MySQL) MySQL Workbench 다운로드 및 실행 (0) | 2023.01.25 |
(MySQL) MySQL 다운로드 및 설치: zip 파일 사용하기 (0) | 2023.01.24 |