제로베이스 DA 1일차
SQL 1,2강의 내용 정리
SQL은 세가지로 분류 할 수 있음, ---정보처리기사 필기 공부에서 나온 내용이 이렇게 쓰이다니, ,
DDL(Data Definition Language) : 데이터 정의언어 / Create, alter,drop ~
데이터 베이스 생성 변경 삭제에 관여
DML(Data Manipulation Language) : 데이터 조작언어 / select ~
정의된 데이터 구조에 실제 데이터를 넣거나 업데이트, 삭제, 조회해서 가져옴
" 우리는 조작언어에 집중해야함 "
DCL(Data Control Language) : 데이터 제어 언어 / Revoke, Grant ~
계정별 권한 설정, 실행단위 묶어서 롤백 등의 제어를 해줌, 유저 생성과 삭제
사용자 정보는 ‘mysql’이라는 데이터베이스에서 관리함
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 세트 !! 잘 기억하자.