DS 스터디 노트 - SQL

Syl·2024년 4월 24일

DS Journey

목록 보기
32/38

8주차
Wed. 23. 4.

수강한 분량: SQL 기초

학습한 핵심 내용:

-database 관리

-user 관리

ㄴ사용자 정보는 mysql에서 관리함
ㄴ사용 중인 root 계정 보임

-사용자 생성

ㄴ현재 PC에서만 접속 가능: localhost
ㄴ비번 by

ㄴ외부에서 접속 가능: %
ㄴ호스트 정보가 다른 유저는 이름이 같아도 됨

-유저 삭제

-다른 프로그램에서 실행 시 mysql -u root -p(password)

-실습: select host, user from user;

-user 권한 관리

ㄴ특정 데이터 베이스에서 특정 유저에게 사용 권한 부여

  • create user

  • mysql로 먼저 이동 후 사용자 생성

  • 유저 권한 목록 확인

ㄴ'localhost' or '%'

  • 권한 부여

ㄴ 참고: 수정 내용이 적용되지 않은 경우 새로고침

FLUSH PRIVILEAGES;
  • 권한 삭제

mysql> create database mydb;
Query OK, 1 row affected (0.02 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| testdb             |
| world              |
+--------------------+
8 rows in set (0.00 sec)

mysql> create user 'zero'@'localhost';
Query OK, 0 rows affected (0.09 sec)

mysql> select host, user from user
    -> ;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
| localhost | zero             |
| localhost | zerro            |
+-----------+------------------+
6 rows in set (0.00 sec)

mysql> grant all on mydb.* to 'zero'@'localhost';
Query OK, 0 rows affected (0.02 sec)

mysql> show grants for 'zero'@'localhost';
+--------------------------------------------------------+
| Grants for zero@localhost                              |
+--------------------------------------------------------+
| GRANT USAGE ON *.* TO `zero`@`localhost`               |
| GRANT ALL PRIVILEGES ON `mydb`.* TO `zero`@`localhost` |
+--------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> show grants for 'zero'@'localhost';
+--------------------------------------------------------+
| Grants for zero@localhost                              |
+--------------------------------------------------------+
| GRANT USAGE ON *.* TO `zero`@`localhost`               |
| GRANT ALL PRIVILEGES ON `mydb`.* TO `zero`@`localhost` |
+--------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> revoke all on mydb.* from 'zero'@'localhost';
Query OK, 0 rows affected (0.01 sec)

mysql> show grants for 'zero'@'localhost';
+------------------------------------------+
| Grants for zero@localhost                |
+------------------------------------------+
| GRANT USAGE ON *.* TO `zero`@`localhost` |
+------------------------------------------+
1 row in set (0.00 sec)

-Table 사용

  • 실습 환경 만들기

ㄴutf8mb4: 기본 자료형이 다국어 지원, 이모지 문자 쓰기

  • 테이블 생성

ㄴdatatype도 명시 해주어야 함

  • table 정보 확인

ㄴNull 허용, key 설정, default

  • 잘못 입력했을 때 빠져나가: Ctrl+C

-실습

ㄴvarchar(16): python으로 치면 string, pandas에선 object 데이터 타입과 비슷

  • Table 이름 변경 문법

ㄴpandas의 rename() 함수와 기능 비슷

  • column 추가 문법

  • column 수정

  • column 이름 변경과 데이터 타입 재정의

  • column 삭제

  • Table 삭제

-> table 이름 변경: rename
-> column 이름/데이터 타입 변경: change
-> column 데이터 타입 변경: modify

0개의 댓글