SQL 사용자 생성, 데이터베이스를 불러오는 방법

hoonssac·2024년 1월 4일

Database

목록 보기
1/5
post-thumbnail

안녕하세요.
오늘은 SQL 사용자 생성을 해보고, 데이터베이스를 불러오는 방법에 대해 알아보겠습니다!


SQL(Structed Query Language)

  • SQL은 데이터를 보다 쉽게 검색하고 추가, 삭제, 수정 같은 조작을 할 수 있도록 고안된 컴퓨터 언어입니다.
  • 관계형 데이터베이스에서 데이터를 조작하고 쿼리하는 표준 수단입니다.
  • DML(Data Manipulation Language) : 데이터를 조작하기 위해 사용합니다.
    INSERT, UPDATE, DELETE, SELECT 등이 여기에 해당합니다.
  • DDL(Data Defination Language) : 데이터베이스의 스키마를 정의하거나 조작하기 위해 사용합니다.
    CREATE, DROP, ALTER 등이 여기에 해당합니다.
  • DCL(Data Control Language) : 데어터를 제어하는 언어입니다.
    권한을 관리하고, 데이터의 보안, 무결성 등을 정의합니다.
    GRANT, REVOKE 등이 여기에 해당합니다.

데이터베이스 생성하기

콘솔에서 다음과 같이 명령을 실행합니다.
MYSQL 관리자 계정인 root로 데이터베이스 관리 시스템에 접속하겠다는 것입니다.

mysql -uroot -p

window 사용자는 설치 시에 입력했던 암호를 입력합니다.
맥 사용자는 암호가 없으니 그냥 엔터를 입력하면 됩니다.
MySQL DBMS에 접속하면 “mysql>” 프롬프트가 보입니다.

관리자 계정으로 MySQL에 접속했다면, 다음과 같은 명령으로 데이터베이스를 생성합니다.

mysql> create database DB이름;

저는 다음과 같은 명령을 실행하여 DB이름을 "connectdb" 로 생성하도록 하겠습니다.

mysql> create database connectdb;

데이터베이스 사용자 생성과 권한 주기

  • 데이터베이스를 생성했다면, 해당 데이터베이스를 사용하는 계정을 생성해야 합니다.
  • 또한, 해당 계정이 데이터베이스를 이용할 수 있는 권한을 줘야 합니다.
  • 아래와 같은 명령을 이용해서 사용자 생성과 권한을 줄 수 있습니다.
  • db이름 뒤의 * 는 모든 권한을 의미합니다.
  • @’%’는 어떤 클라이언트에서든 접근 가능하다는 의미이고, @’localhost’는 해당 컴퓨터에서만 접근 가능하다는 의미입니다.
  • flush privileges는 DBMS에게 적용을 하라는 의미입니다.
  • 해당 명령을 반드시 실행해줘야 합니다.

사용자 생성

어떤 클라이언트에서든 접근 가능

CREATE USER '사용자 이름'@'%' IDENTIFIED BY '암호';

해당 컴퓨터에서만 접근 가능

CREATE USER '사용자 이름'@'localhost' IDENTIFIED BY '암호';

사용자 계정이름은 'connectuser', 암호는 'connect123!@#', 해당 사용자가 사용하는 데이터베이스는 'connectdb'로 계정을 생성하려면 다음과 같이 명령을 수행합니다.

CREATE USER 'connectuser'@'%' IDENTIFIED BY 'connect123!@#';

권한 부여

GRANT ALL PRIVILEGES ON 데이터베이스 이름.* TO '사용자 이름'@'%';
GRANT ALL PRIVILEGES ON connectdb.* TO 'connectuser'@'%';

생성한 사용자로 다시 mysql 로그인을 하니,

성공적으로 실행이 되는 것을 볼 수 있습니다!

데이터베이스 확인하기

작업하기 위한 데이터베이스를 선택하기 위해서는 어떤 데이터베이스가 존재하는지 알아보아야 합니다.
현재 서버에 존재하는 데이터베이스를 찾아보기 위해서 다음과 같이 명령을 실행합니다.

mysql> show databases;

사용중인 데이터베이스 전환하기

데이터베이스를 선택하기 위해, use 명령어를 사용합니다.

mysql> use connectdb;

데이터베이스를 전환하려면, 이미 데이터베이스가 존재해야 하며 현재 접속 중인 계정이 해당 데이터베이스를 사용할 수 있는 권한이 있어야 합니다.

성공적으로 데이터베이스가 전환된 것을 확인할 수 있습니다!

데이터를 저장하는 공간 테이블(Table)

  • 마이크로소프트의 엑셀(Excel)을 실행하면 표가 나옵니다. 이러한 표에 각종 값을 저장할 수 있습니다.
  • 데이터베이스도 엑셀의 표와 유사한 테이블을 가질 수 있습니다.
  • 엑셀과 다른 점은 데이터베이스를 생성해도 테이블은 존재하지 않는다는 것입니다.
  • 테이블을 사용하려면 테이블을 생성하는 SQL을 사용해야 합니다.
  • 그리고, 테이블에 값을 저장하려면 저장하기 위한 SQL을 사용해야 합니다.

테이블(table)의 구성요소

  • 테이블 : RDBMS의 기본적 저장구조 한 개 이상의 column과 0개 이상의 row로 구성합니다.
  • 열(Column) : 테이블 상에서의 단일 종류의 데이터를 나타냄. 특정 데이터 타입 및 크기를 가지고 있습니다.
  • 행(Row) : Column들의 값의 조합. 레코드라고 불림. 기본키(PK)에 의해 구분. 기본키는 중복을 허용하지 않으며 없어서는 안 됩니다.
  • Field : Row와 Column의 교차점으로 Field는 데이터를 포함할 수 있고 없을 때는 NULL 값을 가지고 있습니다.

현재 데이터베이스에 존재하는 테이블 목록 확인하기

Database를 선택 후, Database의 전체 테이블 목록을 출력합니다.

mysql> show tables;

“Empty set” 은 데이터베이스에 어떤 테이블도 아직 생성되지 않았다는 것을 알려줍니다.

SQL 연습을 위한 테이블 생성과 값의 저장

저는 해당 강의에서 제공하는 examples.sql을 사용하였습니다.
이 examples.sql에는 연습을 위한 테이블 생성문과 해당 테이블에 값을 저장하는 입력문이 존재합니다.

해당 sql을 불러오기 위해 터미널에서 examples.sql이 있는 폴더로 이동한 후, 다음과 같이 명령을 수행합니다.

mysql -uconnectuser -p connectdb < examples.sql

mysql –uconnectuser -p  connectdb

그리고 위의 명령으로 connectdb에 접속한 후, 테이블을 조회해 봅시다.

mysql> show tables;

테이블들이 잘 들어있는 것을 확인할 수 있습니다!

테이블 구조를 확인하기 위한 DESCRIBE 명령

table 구조를 확인하기 위해, DESCRIBE 명령을 사용할 수 있습니다.
짧게 DESC라고 사용해도 됩니다.

예시로 "EMPLOYEE" 테이블의 구조를 확인해 봅시다.

mysql> desc EMPLOYEE;


이런 식으로 간단하게 테이블의 구조를 확인할 수 있습니다.


📚Reference
boostcourse - 웹 백엔드

profile
훈싹의 개발여행

0개의 댓글