SQL 기초 (1)

subinii·2024년 4월 27일

DS 25기

목록 보기
29/46

SQL

데이터베이스

데이터베이스 정의

  • 데이터베이스 : 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합체
  • DBMS : 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어
  • 관계형 데이터베이스(RDB) : 서로간에 관계가 있는 데이터 테이블들을 모아둔 데이터 저장공간
  • SQL : 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어
  • DDL (데이터 정의 언어) : CREATE, ALTER, DROP
  • DML (데이터 조작 언어) : INSERT, UPDATE, DELETE, SELECT
  • DCL (데이터 제어 언어) : GRANT, REVOKE, COMMIT, ROLLBACK

데이터베이스 관리

  • SHOW DATABASES; : 현재 데이터 베이스 목록 출력
  • CREATE DATABASE testdb; : testdb 생성하기
  • USE testdb : testdb 사용하기
  • DROP DATABASE testdb : testdb 삭제하기

user 관리, user 권한 관리

  • user 조회

    • USE mysql; SELECT host, user FROM user;
  • 현재 pc에서 접속 가능한 사용자 생성, 삭제

    • CREATE USER 'username'@'localhost' identified by 'password’
    • DROP USER 'username’@'localhost’
  • 외부 pc에서 접속 가능한 사용자 생성, 삭제

    • CREATE USER 'username'@'%' identified by 'password';
    • DROP USER 'username'@'%’
  • 실습 위한 테스트 db 만들기

    • CREATE DATABASE testdb

    GRANT

  • user 사용 권한 부여

    • SHOW GRANTS FOR ‘noma’@’localhost’;
  • 사용자에게 특정 데이터 베이스의 모든 권한을 부여

    • GRANT ALL ON testdb.* TO 'noma'@'localhost';
    • 권한 확인 : SHOW GRANTS FOR ‘noma’@’localhost’;
  • 사용자에게 모든 데이터베이스의 모든 권한을 삭제

    • REVOKE ALL ON testdb.* FROM 'noma'@'localhost';
  • 수정 내용이 적용되지 않을 경우 새로고침

    • flush privileges;

TABLE

  1. TABLE
  • 데이터베이스 안에서 실제 데이터가 저장되는 형태
  • 행(column) + 열(row)으로 구성된 데이터 모음
  1. TABLE 생성
  • zerobase라는 이름의 데이터베이스 생성
    • CREATE DATABASE zerobase default character SET utf8mb4;
    • USE zerobase
  • TABLE 생성하기
create table mytable 
(
id int,
name varchar(16)
);
  • desc mytable : docstring 확인하기
  1. TABLE 변경, 삭제
  • TABLE 이름 변경
    • ALTER TABLE mytable(현재 테이블 이름) RENAME person(변경할 테이블 이름);
  • COLUMNS 추가
    • ALTER TABLE person(테이블 이름) ADD COLUMN agee(추가할 컬럼 이름) double(데이터 타입);
  • columns의 데이터 타입 변경하기
    • ALTER TABLE person(테이블 이름) MODIFY COLUMN agee(칼럼 이름) int(변경할 데이터 타입);
  • 칼럼 이름 변경하기
    • ALTER TABLE person(테이블 이름) CHANGE COLUMN agee(현재 칼럼 이름) age(변경할 칼럼 이) int;
  • 칼럼 삭제하기
    • ALTER TABLE person DROP column age;

INSERT

  • INSERT : 데이터를 추가하는 명령어
    • 칼럼과 값이 개수가 같아야 함
    • INSERT INTO person (id, name, age, sex)
      -> VALUES (1, '이효리', 43, 'F');
    • 컬럼 순서에 맞게 값 추가 가능, 개수 같아야 함
    • INSERT INTO person
      -> VALUES(2, '이상순', 48, 'M');

SELECT

  • SELECT : 특정 컬럼 데이터를 조회하는 명령어
    • SELECT(컬럼 이름) FROM (테이블 이름);
    • 모든 컬럼 조회 : SELECT * FROM (테이블 이름);

WHERE

  • WHERE 조건문
  • SELECT, UPDATE, DELETE에도 사용
  • person 테이블의 성별이 F인 값 중 이름과 성별 컬럼만 가져오기

UPDATE

  • UPDATE : 데이터를 수정하는 명령어
  • UPDATE (테이블 이름) SET (칼럼 1 = 값 1)… WHERE ~ ;

DELETE

  • DELETE : 데이터를 삭제하는 명령어
  • DELETE FROM (테이블 이름) WHERE ~ ;

"이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.”

profile
데이터 공부 기록

0개의 댓글