mysql은 생활코딩 유튜브를 통해 편하게 학습할 수 있다
Mysql
mysql은 가장 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템이다
데이터를 효율적으로 저장, 관리 및 검색을 위해 SQL(Structured Query Language)을 사용한다
sql 접속
mysql -u root -p
데이터베이스 및 테이블 생성 방법
CREATE DATABASE test;
test 라는 db 생성
USE test;
test db사용
CREATE TABLE users(
users라는 테이블 생성
id INT AUTO_INCREMENT PRIMARY KEY,
id 라는 열을 만들고 INT타입 자동으로 증감되는 기본키로 설정
username VARCHAR(50) NOT NULL,
username이라는 열을 만들고 varchar(문자열)타입 최대 50자, NULL값을 허용하지 않고 설정
email VARCHAR(100) NOT NULL);
email 이라는 열을 만들고 varchar타입 최대 100자 NULL값을 허용하지 않고 설정
CREATE DATABASE example;
USE example;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL
);
데이터 조작 및 관리를 위한 기본적인 SQL 쿼리문
데이터 삽입
INSERT INTO users (username, email) VALUES ('user1', 'user1@example.com');
users테이블에 데이터 삽입, username, email열을 지정, 각각 'user1', 'user1@example.com'데이터를 삽입
데이터 조회
SELECT * FROM users;
users 테이블의 모든 열을 조회
데이터 갱신
UPDATE users SET email = 'newemail@example.com' WHERE id = 1;
users테이블의 데이터 갱신, email 열의 값을 newemail@example.com으로 변경
where로 id가 1인값만 갱신
데이터 삭제
DELETE FROM users WHERE id = 1;
users 테이블에서 id가 1인 데이터 삭
데이터베이스 관리
사용자 생성
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
SQL에 새로운 사용자 생성 newuser는 사용자 이름 localhost는 사용자가 연결 할 수 있는 호스트
password는 해당 사용자의 비밀번호
권한 부여
GRANT ALL PRIVILEGES ON example_db.* TO 'newuser'@'localhost';
지정된 사용자에 모든 권한을 부여, example_db 에 *모든 테이블에 대해
newuser에게 권한 부여 localhost는 이 사용자가 접속할 수 있는 호스트 지정
데이터베이스 백업
mysqldump -u username -p example_db > example_db_backup.sql
mysqldump : qordjq ehrn
-u username : username사용자 지정
-p : 비밀번호 입력 요청
example_db : 백업할 db이름
> example_db_backup.sql : 백업 결과를 저장할 파일 이름
데이터베이스 복원
데이터베이스 백업을 하는 명령어 mysqldump와 유사하지만 다른점은
mysql -u username -p example_db < example_db_backup.sql
dump를 사용하지 않고 화살표 방향이 < 왼쪽을 가르킨다
MYSQL 실습
위에 적은 명령어들로 먼저 실습을 진행해 보겠다
sql 접속
mysql bin 디렉토리에서 ./mysql.exe -uroot -p
SHOW DATABASES; : 현재 있는 db 보기

example db 생성

user table 생성

테이블을 생성하고 SHOW TABLES; 명령어를 사용해 테이블을 볼 수 있다
DESCRIBE 명령어를 사용하면 db 정보를 볼 수 있어 용이하다
username에 데이터 삽입

SELECT * FROM users;를 사용해 db 데이터 확인
*은 전부라는 의미
username에 데이터 업데이트

email 값에 newmail@example.com값을 id = 1에 넣는다
username 데이터 삭제

id 가 1인 데이터를 삭제한다
WHERE id = 1을 사용하지 않는다면 전체가 삭제되니 주의
newuser 유저 생성 및 권한 부여

0000은 비밀번호이다
SELECT User, Host FROM mysql.user; 명령어는
mysql.user파일에 있는 user 정보를 보여준다
즉 존재하는 모든 유저를 보여준다
GRANT 명령어로 모든 권한을 부여한다
JOIN을 사용하여 두개의 테이블 조회하기
새로운 테이블 생성 8

id값으로 합치도록 하겠다

id 값이 2기때문에 test 테이블에는 2값을 넣었다
INNER JOIN 사용
SELECT users.username, test.date FROM users INNER JOIN test ON users.id = test.user_id;

users에 username 테이블 test에 date 테이블을 합친다
users db에서 INNER JOIN을 사용해 test 테이블을 users의 id 값과 test의 user_id값이 같은것을 묶는다
데이터베이스 접근 제한, 사용자 권한 설정하기
앞에서 한 내용도 있지만 새로 다시 해보겠다

CREATE USER 'testuser'@'localhost' IDENTIFIED BY '0000';
testuser라는 이름의 비밀번호가 0000인 user을 생성
GRANT ALL PRIVILEGES ON example.* TO 'testuser'@'localhost';
example db에 testuser에게 모든 권한 부여
FLUSH PRIVILEGES;
권한 적용
확인

새로운 터미널 창에서 testuser로 접속 후 example db에 접속해 보았다
가능한 것을 보니 권한 설정이 잘되었다
'KnockOn' 카테고리의 다른 글
| [2주차 TIL] KnockOn Bootcamp Apache (0) | 2024.08.10 |
|---|---|
| [2주차 TIL] KnockOn Bootcamp HTML / JS 심화 (0) | 2024.08.06 |
| [1주차 TIL] KnockOn Bootcamp HTML / CSS / JS (0) | 2024.08.03 |
| [1주차 TIL] KnockOn Bootcamp 프록시 (0) | 2024.08.02 |
| [1주차 TIL] KnockOn Bootcamp 패킷 (0) | 2024.08.01 |