SQL 설치하기(Windows)
- https://dev.mysql.com/downloads/mysql/ 에서 dmg 파일 다운로드
- recommend download 클릭하고 용량이 높은것 선택해서 다운
- 설치 완료 후
developer default 설정
- excute 버튼을 눌러서 부족한 것들 설치 진행.
- next 버튼 누르고 기본설정 진행
- MySQL Root Password: 절대 잃어버리면 안됨. 기억해야함.
- Apply Configuration : excute 선택
- 설치 완료후 MysQL 8.0 command Line Clinet 에서 비밀번호 입력
- command 가 아나콘다 프롬프트 역할
- Workbench 는 jupyter 역할
DB 사용하기
- DB: 여러 사람이 공유하여 사용할 목적으로 체계화해 통합,관리하는 데이터의 집합체
- DBMS: 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 DB를 관리해주는 소프트웨어(MySQL)
- RDB: 서로간에 관계가 있는 데이터 테이블을 모아둔 데이터 저장공간
- SQL: DB에서 데이터를 정의,조작,제어하기 위해 사용하는 언어
- SQL 구성
- 데이터 정의 언어(DDL): CREATE,ALTER,DROP 등
- 데이터 조작 언어(DML): INSERT,UPDATE,DELETE,SELECT
- 데이터 제어 언어(DCL): GRANT,REVOKE,COMMIT,ROLLBACK
show databses;
create database testdb;
use testdb;
drop database testdb;
user 관리
use mysql;
select host, user from user;
create user 'noma'@'localhost' identified by '1234';
create user 'noma'@'%' identified by '1234';
select host,user from user;

- 호스트 정보가 다른 유저는 이름이 같아도 상관없음.
- 유저 삭제
drop user 'noma'@'localhost'
drop user 'noma'@'%'
select host,user from user;

user 권한 관리
- 사용자 정보는 mysql 에서 담당하고 있기 때문에
use mysql; 먼저 실행
create database testdb;
create user 'noma'@'localhost' identified by '1234';
show grants for 'noma'@'localhost';

grant all on testdb.* to 'noma'@'localhost';
show grants for 'noma'@'localhost';

flush privileges;
revoke all on testdb.* from 'noma'@'localhost';
show grants for 'noma'@'localhost';

Table 생성하기
- 'zerobase' 라는 이름의 데이터 베이스 생성
create database zerobase default character set utf8mb4;
- Table : 실제 데이터가 저장되는 형태이고, 행과 열로 구성된 데이터 모음
- id(int)와 name(varchar(16)) 컬럼을 가지는 mytable 생성(CREATE TABLE)
use zerobase;
create table mytable
-> (
-> id int,
-> name varchar(16)
-> );
show tables;

desc mytable

alter table mytable
rename person;

alter table person add column agee double;

alter table person modify column agee int;

- name 바꾸기 (double 도 int로 바꾸기)
alter table person
change column agee age int;

alter table person
drop column age;

drop table person;
show tables;

데이터 조작어 SELECT,INSERT,UPDATE,DELETE
use zerobase;
create table person
-> (
-> id int,
-> name varchar(16),
-> age int,
-> sex char
-> );
desc person;

- INSERT (into): 데이터 추가
- 입력한 컬럼 이름의 순서와 값의 순서가 일치하도록 주의
insert into table(id,name,age,sex)
values (1,'이효리',43,F);
select * from person;

- 모든 컬럼 값을 추가하는 경우 컬럼지정하지 않아도 되지만 입력 값의 순서는 컬럼 순과 일치해야함
insert into person
values (2,'이상순',48,'M')
select *from person;

- SELECT (from): 데이터 조회
- 테이블 내의 특정 칼럼에 대한 데이터를 조회
select name,age,sex from person;

select * from person;

- WHERE: 조건
- 조건을 만족하는 데이터 조회
select * from person where sex='F';

update person
set age=23 where name='이효리';
select * from person where name='이효리';

- DELETE (from): 데이터 삭제 where 생략시 전체 데이터 삭제
delete from person where name='이상순';
select * from person;
