[sql] sql 기초, 권한 관리, update, delete 등

svenskpotatis·2023년 9월 18일
0

📌 SQL

  • 데이터 정의 언어 (DDL: Data Definition Language)
    - CREATE, ALTER, DROP 등의 명령어
  • 데이터 조작 언어 (DML: Data Manipulation Language)
    - INSERT, UPDATE, DELETE, SELECT 등의 명령어
  • 데이터 제어 언어 (DCL: Data Control Language)
    - GRANT, REVOKE, COMMIT, ROLLBACK 등의 명령어
# root 계정으로 mysql 접속
% mysql -u root -p
Enter password:

📖 Database

  • Database
    : 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합체
  • DBMS (Database Management System)
    : 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어
  • 관계형 데이터베이스 (RDB: Relational Database)
    : 서로간에 관계가 있는 데이터 테이블들은 모아둔 데이터 저장공간
  • SQL (Structured Query Language)
    : 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어
  • root 계정으로 mysql 접속
% mysql -u root -p
# 현재 database 목록 확인
SHOW DATABASES;

# 생성
CREATE DATABASE dbname;

# 이동
USE dbname;

# 삭제
DROP DATABASE dbname;
  • database 생성 - utf8mb4
CREATE DATABASE dbname DEFAULT CHARACTER SET utf8mb4;

User

use mysql;
SELECT host, user FROM user;

# user 생성 - localhost
CREATE USER 'username'@'localhost' identified by 'password';

# user 생성 - % 외부에서 접속 가능한 사용자
CREATE USER 'username'@'%' identified by 'password';

# 삭제
DROP USER 'username'@'localhost';
DROP USER 'username'@'%';

권한 관리

# 권한 목록 확인
SHOW GRANTS FOR 'username'@'localhost';

# 사용자에게 특정 데이터베이스의 모든 권한 부여
GRANT ALL ON dbname.* to 'username'@'localhost';

# 사용자에게 특정 데이터베이스의 모든 권한 삭제
REVOKE ALL ON dbname.* from 'username'@'localhost';

# 새로고침
FLUSH PRIVILEGES;

table

# 생성
CREATE TABLE tablename
(
    name varchar(16),  # varchar: python string, pandas object
    columnname datatype,
    columnname datatype,
    ...
);

# 목록 확인
SHOW TABLES;

# 정보 확인
DESC tablename;
  • table 변경
# table 이름 변경
ALTER TABLE tablename RENAME new_tablename;

# table에 column 추가
ALTER TABLE tablename ADD COLUMN columnname datatype;

# column datatype 변경
ALTER TABLE tablename MODIFY COLUMN columnname datatype;

# column name 변경
ALTER TABLE tablename CHANGE COLUMN old_columnname new_columnname;

# column 삭제
ALTER TABLE tablename DROP COLUMN columnname;

# table 삭제
DROP TABLE tablename;

📖 SELECT, INSERT, UPDATE, DELETE

INSERT - 데이터 추가

  • INSERT 문법
INSERT INTO tablename (column1, column2, ... )
VALUES (value1, value2, ... );
  • INSERT 예제
INSERT INTO person (id, name, age, sex)
VALUES (1, '이효리', 43, 'F');
  • 모든 컬럼값 추가
INSERT INTO tablename
VALUES (value1, value2, ... );

SELECT - 데이터 조회

  • SELECT 문법
SELECT column1, column2, ...
FROM tablename;
  • SELECT 예제 - person table 내의 이름, 나이, 성별 데이터 조회
SELECT name, age, sex FROM person;
  • 모든 칼럼
SELECT * FROM tablename;

WHERE - 조건

  • WHERE 문법
SELECT column1, column2, ...
FROM tablename
WHERE condition;
  • WHERE 예제 - person table에서 성별이 여자인 데이터 조회
SELECT * FROM person WHERE sex='F';

UPDATE - 데이터 수정

  • UPDATE 문법
UPDATE tablename
SET column1 = value1, column2 = value2, ...
WHERE condition;
  • UPDATE 예제 - 이효리 나이를 23세로 수정
UPDATE person SET age=23 WHERE name='이효리';

DELETE - 데이터 삭제

  • DELETE 문법
DELETE FROM tablename
WHERE condition;
  • DELETE 예제 - 이상순 데이터 삭제
DELETE FROM person WHERE name='이상순';

0개의 댓글