Database/MySQL

(MySQL) 데이터베이스 생성, 사용자 생성, 테이블 생성, 데이터 입력

고니자니 2023. 2. 7. 18:26
반응형

이번 포스팅을 실습하기 위해서는 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;

Workbech에서 데이터베이스생성하기

  

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을 생성합니다.

새로운 Connection 생성
"user1" Connection
생성된 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;

 

 

$

반응형