[SQL] 01. MySQL 설치 & 02. Database 사용 & 03. Table 사용

쩡이·2023년 8월 16일
0

SQL

목록 보기
1/10

1. SQL 설치 (for Windows)

https://dev.mysql.com/downloads/windows/installer/8.0.html

위 페이지에서 용량이 큰 아래 파일을 다운로드

설치 첫 단계는 Setup Type 설정인데
Developer Default 칸이 없어서
Custom을 선택하고, 필요한 것들을 직접 넣어서 설치했다.

비밀번호는 절대 잊어버리지 않도록!!!

설치 후 My SQL Command Line Client와 Workbench가 자동 실행된다.

My SQL Command Line Client 실행하면
다음과 같이 비밀번호 입력 문구가 뜬다.

비밀번호 입력 후, 간단한 테스트를 해보았다.

show databases;

Workbench에서도 동일하게 사용 가능하고, 코드를 넣고
번개모양을 누르면 실행된다.

2. 기본 개념

  • Database
    여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합체
    .xlsx, .json 같은 파일들도 database라고 볼 수 있다.

  • DBMS(Database Management System)
    사용자와 데이터베이스 사이에 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어, 앞서 설치한 mySQL도 DBMS에 해당함

  • RDB(Relational Database)
    관계형 데이터베이스
    서로 관계가 있는 데이터 테이블들을 모아둔 데이터 저장공간

  • SQL(Structured Query Language)
    데이터베이스에서 데이트를 정의, 조작, 제어하기 위해 사용하는 언어

    • 데이터 정의 언어 DDL(Data Definition Language)
      : CREATE, ALTER, DROP 등의 명령어
    • 데이터 조작 언어 DML(Data Manipulation Language)
      : INSERT, UPDATE, DELETE, SELECT 등의 명령어
    • 데이터 제어 언어 DCL(Data Control Language)
      : GRANT, REVOKE, COMMIT, ROLLBACK 등의 명령어

3. Database 사용

터미널에서 사용시, 코드마다 ;를 붙여줘야 바로 실행됨
workbench에서는 ; 생략가능

show databases; : 현재 데이터베이스 목록을 보여줌
create database 데이터베이스이름; : 데이터베이스 이름을 지정하여 생성
use database 데이터베이스이름; : 해당 데이터베이스로 이동(사용)
drop database 데이터베이스이름; : 데이터베이스 삭제

4. User 관리

user 조회

use mysql;
사용자 정보는 mysql에서 관리하므로 mysql 데이터베이스로 이동 후 조회

user, host 목록 조회

select host, user from user;

user 생성

create user '유저이름'@'localhost' identified by '비밀번호';
create user '유저이름'@'%' identified by '비밀번호';
현재 pc에서 접속 가능한 사용자(localhost), 외부에서 접속 가능한 사용자(%)
호스트 정보가 다른 user는 이름이 동일해도 됨

user 삭제

drop user '유저이름'@'localhost';
drop user '유저이름'@'%';
같은 이름의 사용자여도 localhost, % 는 각각 별도로 삭제해야 함

user 권한 설정

user 권한 조회

show grants for 'username'@'localhost';
show grants for 'username'@'%';

user 권한 설정

grant all on 데이터베이스이름.* to '유저이름'@'localhost';
grant all on 데이터베이스이름.* to '유저이름'@'%';

권한 삭제

revoke all on 데이터베이스이름.* from '유저이름'@'localhost';
revoke all on 데이터베이스이름.* from '유저이름'@'%';

새로고침

flush privileges;

예제) zero에게 mydb 권한을 부여하고, 삭제하기

create database mydb;
show databases; #데이터베이스 생성 확인

use mysql;
create user 'zero'@'localhost' identified by '1234';
select host, user from user; #유저 생성 확인

grants all on mydb.* to 'zero'@'localhost'; #권한부여
show grants for 'zero'@'localhost'; #권한 확인
revoke all on mydb.* from 'zero'@'localhost'; #권한삭제

5. Table 사용

Table

데이터베이스 안에서 실제 데이터가 저장되는 형태이고, 행(row)과 열(column)으로 구성된 데이터 모음

데이터베이스 생성

create database 데이터베이스이름 default character set utf8mb4;
utf8mb4 : 다국어, 이모지문자(이모티콘)까지 지원

table 생성

create table 테이블이름
(
    컬럼명 데이터타입,
    컬럼명 데이터타입,
    ...
);

예제) id(int)와 name(varchar(16)) 컬럼을 가지는 mytable이라는 테이블 생성

create table mytable( id int, name varchar(16));
또는
create table mytable
(
    id int,
    name varchar(16)
);

table 확인

show tables; : 테이블 생성 여부 확인
desc 테이블이름; : 테이블 상세 정보 확인가능(테이블 명, 데이터타입 등)

table 변경

alter table 테이블명 rename 변경할 테이블명; : 테이블명 변경
alter table 테이블명 add column 추가컬럼명; : 컬럼 추가
alter table 테이블명 modify column 컬럼명 변경할타입; : 컬럼 데이터타입변환
alter table 테이블명 change column 기존컬럼명 변경할컬럼명 변경할타입; : 컬럼명, 데이터타입(그대로 유지도 가능) 같이 변경 가능
alter table 테이블명 drop column 컬럼명;
drop table 테이블명; : 테이블 삭제

0개의 댓글