본문 바로가기

Study/Database

[MySQL]MySQL 데이터 생성 (CRUD)

MySQL은 Oracle과 같이 RDBMS(관계형 데이터베이스 관리 시스템) 중 하나다. 윈도우에서 사용 가능하고, 기본 SQL 언어를 바탕으로 한다. 오라클과 크게 다르지 않기 때문에 같이 쓰기도 쉽다. JSP 수업에서 DB(데이터베이스) 연동 방법을 배우기 위해 mysql을 사용할 텐데, 연동하기에 앞서 mysql에 데이터를 만들어야 한다.

MySQL을 사용하는 방법은 CUI와 GUI가 있다. GUI가 익숙하고 편하지만 먼저 CUI로 작성을 했고, 아래쪽에 GUI인 MySQL Workbench 사용법도 적어놓았다.

 

먼저 MySQL Command Client 또는 윈도우 cmd 창의 mysql -u root -p 명령으로 mysql을 접속한다. mysql의 데이터베이스 내에 테이블이 존재하고, 행열로 이루어진 테이블에 데이터들이 저장되어 있다. 데이터를 저장하려면 데이터베이스와 테이블을 생성해야 하기 때문에, 그에 맞는 명령어를 사용해야 한다.

데이터베이스(DB) 관련 명령어

  • 생성 : create database DB명;
  • 삭제 : drop database DB명;
  • 목록 조회 : show databases;
  • 사용 : use DB명;

데이터베이스를 생성하고 나서, 그 안에 있는 테이블에 접근할 때는 꼭 use DB명; 을 먼저 해야 한다.

 

테이블 관련 명령어

  • 생성 : create table 테이블명 ( 필드명1 데이터타입1 제약조건, 필드명2 데이터타입2 제약조건, ... );

      제약조건 생략 가능  /  데이터 자릿수 지정 가능: 데이터타입(숫자)

      여기서 필드란 오라클의 컬럼과 같고, 데이터타입 중 varchar, int 는 오라클의 varchar2, number 와 같다.

  • 삭제 : drop table 테이블명;
  • 내부 구조 확인 : desc 테이블명;
  • 목록 조회 : show tables;

제약조건은 같은 필드 데이터가 중복 가능한지, null 값이 들어가도 되는지 등을 결정하는 요소다. 많이 사용되는 조건으로는 이 4개가 있다. unique(UQ)는 중복 불가, not null(NN)은 null값 불가, auto increment(AI)는 자동 카운팅, 그리고 primary key(PK)는 유일한 고윳값(중복과 null값 모두 불가)을 나타낸다.

 

데이터 관련 명령어 (CRUD)

  • 삽입(Create) : insert into 테이블명 (필드명1, 필드명3, ...) values(데이터1, 데이터3, ...);

      모든 필드에 데이터를 넣을 경우, 필드명 부분 생략 후 필드 순서대로 데이터 모두 입력

  • 검색(Read) : select 필드명 from 테이블명;

      필요시 뒤에 where절, group by절, order by절 등 입력

  • 수정(Update) : update 테이블명 set 필드명1=수정데이터1, 필드명2=수정데이터2, ... [where절];

      where절이 없으면 해당 테이블 데이터 모두 수정됨

  • 삭제(Delete) : delete from 테이블명 [where절];

      where절이 없으면 해당 테이블 데이터 모두 삭제됨

이 4가지를 통틀어 CRUD라고 부르는데, DB를 다룰 때 가장 중요하며 특히 select는 사용 빈도가 매우 높다.

아래 화면 상단의 구문은 auto increment를 사용하여 idx를 자동 1씩 증가시키고, 날짜 타입 3가지를 비교해봤다.

 

혹시 명령어 입력에 문제가 있을 때는 Ctrl + Shift + C 를 누르면 되고, 커서가 깜빡이는 채로 상하 방향키를 누르면 이전 명령들을 불러올 수도 있다.

 

MySQL Workbench(워크벤치)

이전에 MySQL을 설치하면서 워크벤치도 같이 설치되었을 텐데, 시작 메뉴 - MySQL 폴더에 있을 것이다.

워크벤치를 켜면 위의 화면이 나오고, 저 박스 친 것을 눌러서 root 비밀번호로 로그인하면 아래 화면이 뜬다. 여기서 저 Navigator에 있는 목록들 중 몇 개에 에러가 나기 때문에, 워크벤치를 삭제 후 다시 다운로드해야 한다.

 

먼저 시작 메뉴에서 MySQL - MySQL Installer를 켜고 Remove에 들어가 워크벤치 선택, next 하고 execute 한다. 제거가 완료되면 Add를 클릭하여 Applications - MySQl Workbench 하위 폴더를 전부 열고 8.0.19 버전을 아래 화면처럼 옮겨준 뒤 next, execute를 반복하면 완료된다.

 

이렇게 재설치 후에 워크벤치를 다시 켜서 목록들을 눌러보면 작동되는 것을 볼 수 있다. 그럼 이제 Navigator 하단의 Schemas를 눌러서 내 데이터베이스와 테이블을 볼 수도 있다. 

위의 화면은 테이블에 마우스를 올렸을 때 나타나는 두 번째 아이콘을 클릭한 것이다. 테이블 내 필드의 정보를 볼 수 있고, 제약조건을 설정하거나 필드를 늘릴 수 있다. 필드를 변경하고 나면 꼭 화면 우측의 Apply를 해줘야 적용된다.

그리고 위 화면은 세 번째 아이콘을 클릭한 것인데, 바로 여기서 쿼리 구문들을 작성하고 실행할 수 있다. 구문 작성 후 상단의 번개 모양을 클릭하면 실행되며, 왼쪽 번개는 구문 전체 실행, 오른쪽 번개는 한 줄 실행이다.

참고로 워크벤치 주석문은 3가지로, #주석, --주석--, /*주석*/ 이 있다. 단축키(Ctrl + /)를 누르면 --주석--이 나온다.

 

위에서 커맨드 라인으로 작성하나 워크벤치에서 작성하나 똑같은 동작이기 때문에, 편한 방법으로 쓰면 된다. 보통은 GUI 환경이 익숙해서 워크벤치를 쓰지만, 혹시 GUI를 못 쓸 경우 CUI로 다룰 수 있어야 한다.