SQL 기초 | 개념, table 관리 방법

소리·2023년 10월 25일
0

세팅

MYSQL 설치 > MYSQL command line client 실행 > root password 입력
MYSQL Workbench 실행 > Local instance > root password 입력 > show database; 입력 후 노란색 번개 표시를 선택해 쿼리 실행

database 란?

여러 사람이 공유해 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합체

DBMS(Database management system)

사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성하고 DB를 관리하는 소프트웨어

관계형 데이터베이스(RDB : Relational database)

서로 간 관계가 있는 데이터 테이블을 모아둔 데이터 저장 공간

SQL

데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어 (SQL은 데이터베이스 관리 시스템(DBMS)에서 사용되고 있는 언어)

* 데이터 정의 언어(DDL : DATA DEFINITION LANGAUAGE) - CREATE, ALTER, DROP
* 데이터 조작 언어(DML : DATA MANIPLATION LANGUAGE) - INSERT, UPDATE, DELETE, SELECT
* 데이터 제어 언어(DCL : DATA CONTROL LANGUAGE) - GRANT, REVOKE, COMMIT, ROLLBACK

DB 관리

1. root 계정으로 mysql 접속

% mysql -u root -p
Enter password :

2. 현재 데이터베이스 목록 확인

SHOW DATABASES;

3. 데이터베이스 이름을 지정하여 생성

CREATE DATABASE dbname;

4. 해당 데이터베이스로 이동(사용)

USE dbname;

5. 데이터베이스 삭제

DROP DATABASE dbname;

USER 관리

  • 사용자 정보는 mysql에서 관리하므로 일단 데이터 베이스로 이동한 후 조회
use mysql;
SELECT host, user FROM user;
  • 현재 pc에서만 접속 가능한 사용자를 비밀번호와 함께 생성
CREATE USER 'username'@'localhost' identified by 'password';
  • 외부에서 접속 가능한 사용자를 비밀번호와 함께 생성
CREATE USER 'username'@'%' identified by 'password';
  • 접근 범위에 따라 같은 이름의 사용자여도 별도로 삭제
DROP USER 'username'@'localhost'
DROP USER 'username'@'%'
  • 권한 확인 및 변경
#어떤 권한이 있는지 확인
show grants for 'zero'@'%'

#zero 호스트에게 zerobase에서 모든 걸 할 수 있는 권한 부여
grant all on zerobase.* to 'zero'@'%';

#권한 삭제
revoke all on zerobase.* to 'zero'@'%';

TABLE

데이터 베이스 안에서 실재 데이터가 저장되는 형태로 행과 열로 구성된 데이터 모음

  • 생성
CREATE TABLE tablename
(
	columnname datatype,
    columnname datatype,
    ...
)

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

CREATE TABLE mytable(id int, name varchar(16));
  • 테이블 목록 확인 방법
SHOW TABLES;
DESC tablename;
  • 테이블 이름 변경 문법
ALTER TABLE tablename RENAME new_tablename;
  • 테이블 열 추가 문법
ALTER TABLE tablename ADD COLUMN columnname datatype;
  • 테이블 열 변경 문법
테이블의 컬럼의 테이터 타임을 변경
ALTER TABLE tablename MOTIFY COLUMN columnname datatype;
테이블의 컬럼 이름을 다음으로 변경
ALTER TABLE tablename CHANGE COLUMN old_columnname new_columnname new_datatype;
  • 테이블 열 삭제 문법
ALTER TABLE tablename DROP COLUMN columnname;
  • TABLE 삭제 문법
DROP TABLE tablename;

추가

#환경 만들기
USE zerobase; #zerobase 사용(이동)
CREATE TABLE person   #테이블 생성
(
	id int,
    name varchar(16),
    age int,
    sex CHAR
);

DESC person; #데이터 확인
  • 데이터 추가
INSERT INTO tablename (column1, column2, ...)
VALUES (value1, value2, ...);
  • 모든 컬럼값을 추가하는 경우
    컬럼 이름을 정하지 않아도 되지만, 입력하는 값 순서가 테이블의 컬럼 순서와 일치하도록 주의
INSERT INTO tablename
VALUES (value1, value2, ...);

조회

  • 특정 칼럼에 대한 데이터를 조회
SELECT column1, column2, ...  FROM tablename;
  • 테이블 내 모든 칼럼에 대한 데이터를 조회
SELECT * FROM tablename;
  • where 조건
    테이블 내 조건을 만족하는 데이터 조회
SELECT column1, column2, ...  FROM tablename WHERE condition;

수정

UPDATE tablename
SET column1 = value1, column2 = value2, ...
WHERE condition;

예)

UPDATE person SET age = 23 WHERE name='이효리';

삭제

DELETE FROM tablename
WHERE condition;

정렬

SELECT column1, column2, ...
FROM tablename
ORDER BY column1, column2 .. ASC | DESC;

비교 연산자

예)
SELECT name, age FROM celeb WHERE age = 29 ORDER BY age;
SELECT name, age FROM celeb WHERE age < 29 ORDER BY age;

profile
데이터로 경로를 탐색합니다.

0개의 댓글