https://dev.mysql.com/downloads/mysql/
관계형 데이터베이스란? Realational Database
서로 간에 관계가 있는 데이터 테이블들을 모아둔 데이터 저장공간
SQL이란? Structured Query Language
데이터베이스에서 데이터를 정의, 조작 제어하기 위해 사용하는 언어
데이터 정의 언어 (DDL : Data Definition Language)
→ CREATE, ALTER, DROP 등의 명령어데이터 조작 언어 (DML : Data Manipulation Language) ★
→ INSERT, UPDATE, DELETE, SELECT 등의 명령어데이터 제어 언어 (DCL: Data Control Language)
→ GRANT, REVOKE, COMMIT, ROLLBACK 등의 명렁어
터미널 실행 mysql
현재 데이터 목록 확인
데이터베이스 생성
create database dbname;
create하고 show 하면 만든거 확인 가능
데이터 베이스들 보여줘
show database;
해당 데이터 베이스로 이동(사용)
use dbname;
삭제 명령어
drop database dbname;
use mysql;
유저 조회
SELECT host, user FROM user;
현재 PC에서만 접속 가능한 사용자를 비밀번호와 함께 생성
CREATE USER 'username'@'localhost' identified BY 'password';ex) 현재 PC에서 접속가능한 사용자 (noma,1234)생성
create user 'noma'@'localhost' identified by '1234';ex) 외부에서 접속 가능한 사용자 (noma,5678)생성
create user 'noma'@'%' indentified by '5678';
유저 삭제
DROP USER 'username'@'localhost'
DROP USER 'username'@'%'
권한 관리 실습을 위해 database 생성
CREATE DATABASE testdb;
SHOW DATABASES;
유저만들기
use mysql; 이동 후★
CREATE USER 'noma'@'localhost' IDENTIFIED BY '1234';
사용자에게 특정 데이터베이스의 모든 권한을 부여
GRANTS ALL ON dbname.* to 'username'@'localhost';현재 pc에서 접근 가능한 noma에게 testdb의 모든 권한을 부여
grants all on testdb.* to 'noma'@'localhost';
그 다음 사용자에게 부여된 모든 권한 목록을 확인
SHOW GRANTS FOR 'username'@'localhost';
ex) 노마 권한 확인
show grants for 'noma'@'localhost';
💡 내용이 적용 안될때 FLUSH PRIVILEGES;
사용자에게 특정 데이터베이스의 모든 권한을 삭제
REVOKE ALL ON dbname.* FROM 'username'@'localhost';
데이터베이스 먼저 생성
create database zerobase DEFAULT CHARACTER SET uft8mb4;
이 데이터베이스에서 기본으로 사용할 설정은 utf8mb4 다국어, 이모지 사용할 것이다.
show databases;
CREATE TABLE tablename
(
columname datatype,
columname datatype,
...
);테이블 생성 예제
id(int)와 name(varchar(16)) 칼럼을 가지는 mytable이라는 이름의 테이블 생성
create table mytable
(
id int,
name varchar(16)
);
테이블 목록보기
show tables;
테이블 구조까지 확인하기
DESC tablename;
테이블 이름 변경
ALTER TABLE tablename RENAME new_tablename
컬럼추가
ALTER TABLE tablename ADD COLUMN columnname datatype;ex) person 테이블에 agee(double)컬럼 추가
alter table person add column agee double;desc tablename;
으로 컬럼추가 확인
컬럼 데이터타입 변경
AlTER TABLE tablename MODIFY COLUMN columnname datatype;
컬럼명 바꾸기 (데이터 타입도 같이 변경가능함)
ALTER TABLE tablename CHANGE COLUMN old_columnname new_columnname new_datatype;
컬럼삭제
ALTER table tablename DROP COLUMN columname;
테이블 삭제
DROP TABLE tablename;
실습환경 만들기
create database zerobase;
use zerobase;
create table person(
id int,
name varchar(16),
age int,
sex char
);
desc person;
INSERT INTO tablename(column1, column2, ...)
VALUES (values1, values2, ... );
입력한 컬럼이름의 순서와 값의 순서가 일치하도록 주의!
셀 입력 후 입력값 확인
select * from tablename;
모든 컬럼값을 추가하는 경우에는 다음과 같이 컬럼 이름을 지정하지 않아도 되지만,
입력하는 값의 순서가 테이블의 컬럼 순서와 일치하도록 주의★★INSERT INTO tablename
VALUES(value1, value2, ...)
SELECT column1, column2, ...
FROM tablename;ex) select name,age from person;
SELECT *
FROM tablename;전부 다 조회~!
WHERE 특정 조건에 것만 가져온다
SELECT column1, column2, ...
FROM tablename
WHERE condition;예시
person 테이블에서 성별이 여자인 데이터 조회
select * from person where sex='F'
내용 업데이트, 수정
UPDATA tablename
SET colum1 = value1, column2 = value2, ...
WHERE codition;
한 번에 컬럼1=내용1, 컬럼2=내용2 이런식으로 바꾼다
조건에 맞는!예시)
update person set age=23 where name='이효리'
데이터 삭제
DELETE FROM tablename
WHERE codition;