SQL 1, 2

이재훈·2024년 2월 2일
1

Zerobase_DA3_SQL

목록 보기
1/16
post-thumbnail

제로베이스 DA 1일차
SQL 1,2강의 내용 정리

  1. Database는 => 여러사람이 공유하여 쓸 수 있는 데이터들의 집합체
    -> 내가 사용할 데이터들이 모여있는 그룹? 이라고 이해하면 편할 듯
  2. DBMS는 => 사용자 & 데이터베이스 사이에서 사용자의 요구에 따라 정보를 주고 수정할 수 있 해주는 소프트웨어
    -> 사용자가 사용하는 언어 그리고 데이터베이스가 구성된 언어가 다르기 때문에
    그 중간에서 MySQL이라는 언어를 통해 데이터를 다양하게 다룰 수 있게 해준다 라는 개념
  3. SQL이란 => Sturctured Query Language의 약자로 구조화된 무언가에서 얻어낼 수 있는 언어라고 직역할 수 있음 , " 데이터베이스에서 데이터를 < 정의 조작 제어 > 하기 위해 사용

SQL은 세가지로 분류 할 수 있음, ---정보처리기사 필기 공부에서 나온 내용이 이렇게 쓰이다니, ,

DDL(Data Definition Language) : 데이터 정의언어 / Create, alter,drop ~
데이터 베이스 생성 변경 삭제에 관여
DML(Data Manipulation Language) : 데이터 조작언어 / select ~
정의된 데이터 구조에 실제 데이터를 넣거나 업데이트, 삭제, 조회해서 가져옴
" 우리는 조작언어에 집중해야함 "
DCL(Data Control Language) : 데이터 제어 언어 / Revoke, Grant ~
계정별 권한 설정, 실행단위 묶어서 롤백 등의 제어를 해줌, 유저 생성과 삭제 
사용자 정보는 ‘mysql’이라는 데이터베이스에서 관리함
  1. MySQL 사용
    설치과정을 각설하고, 터미널을 통해 접속 할 수 있음.
    1) 일단 로그인 먼저 한다고 생각하자
    -> 이렇게 "mysql -u root -p"엔터하고 비밀번호를 치거나


    -> 또는 "mysql -u root -p본인설정비밀번호"엔터하면 바로 꺽쇠가 나온다.

5.오늘 배운 명령어 정리
1) database를 생성하고 삭제하고, 현재 데이터 베이스 현황을 검색할 수 있는 명령어
create databse mydb; 이 녀석은 mydb라는 DB를 생성한다
-> 기본적인 포맷은 create database ~~;
create databses; 입력 시 내가 위에서 만든 mydb를 볼 수 있음


이렇게 볼 수 있고, 갑자기 이 DB들이 정렬되는 기준은 무엇인가 싶어서 aaa라는 녀석을 만들어보니
맨위로 올라가더라! 아마도 abc차순으로 정리가 되는 것 같다.

2) 사용자 생성과 관리에 대한 명령어
- SQL에서는 사용자에 대한 정보는'mysql'이라는 내재 DB에서 관리
그래서 ? 사용자 정보에 대해 접근하기 위해서는 use mysql을 사용
이는 어떤 DB를 사용하던 동일!! use ~~~!

위의 사진을 보면 create user'anotheroot'@'localhost' identified by 'root';
이는 사용자를 생성하는 명령어이다.
첫 번째 작은 따옴표는 사용자의 이름이고, 두번째 작은 따옴표는 내/외부 사용자이다.
localhost는 현재PC에서면 접근하는 사용자이고, 외부에서 접속가능한 사용자는 '%'를 사용하면 된다.
identified는 이 사용자가 어떤 비밀번호를 사용할 것인지 설정하는 용도임.

Q1) 생성한 사용자로 로그인 할 때는 내가 처음 터미널로 로그인 할 때처럼
이름과 비밀번호만 바꿔서 접속하면 되는건가 해봐야겠다...
결과 : ㅇㅇ로그인되고 그렇게 접속하면 mysql이라는 저장소에 접근할 수 없음...

내가 자주 실수한 부분은 "identified"를 계속 오타쳐서 사용자 생성을 몇번을 실수했다.

사용자를 추가한 이후, 어떤 사용자가 현재 있는지 조회하기 위해서는?
select host, user from user1; 라는 명령어 사용.

선택한다 "호스트, 유저"라는 정보는 user1라는 테이블로부터 이렇게 생각하면된다.

강의를 듣다보면 " select host, user from user " 구문이 자주 나오는데
select user, host from user; 이 구문은 어떤 결과가 나올지 궁금했다.

이미 예상했겠지만, 내가 선언하는 column부터 보여준다. 결과가 예상이 되더라도
항상 눈으로 확인을 해야한다는 강사님의 말씀처럼.....

사용자 삭제는 drop user'anotheroot'@'localhost';
만약 이름이 겹치는 내. 외부 사용자가 있다면 각각 명시해서 삭제해야함....~!!!!

3) 사용자에 대한 권한부여와 삭제
먼저 noma라는 사용자에 대한 권한을 조회하기 위한 명령어는 아래와 같다.
show grants for 'noma'@'localhost';

noma라는 사용자는 어떤 DB에도 권한이 없다. noma라는 사용자에게 권한을 주기위해서
아래와 같은 명령어를 사용한다.

모든 권한을 부여한다 testdb에 대한 to noma라는 local한테
grant all on testdb.* to 'noma'@'localhost';

noma라는 사용자가 testdb에 대한 권한을 부여받은 것을 확인 할 수 있다.

반대로 noma로부터 testdb에 대한 모든 권한을 박탈하고 싶다면 아래와 같은 명령어 사용!
revoke all on testdb.* from 'noma'@'localhost';

grant to / revoke from 세트 !! 잘 기억하자.

profile
💻 To be a Data analyst

0개의 댓글