!!!!!!!!포트포워딩!!!!!!!!정확히 이해하기~!~!~!
앞으로 계속 써야하는 개념
외울 것
클라이언트 프로그램(workbench)
서버 프로그램에 연결해서 서버 프로그램이 제공하는 서비스를 이용하는 프로그램
서버 프로그램(mysql)
서비스를 제공하는 프로그램
서버 프로그램과 클라이언트 프로그램이 둘 다 실행중이어야 서버 접속 가능
접속이 안되면 프로그램이 실행중인지 확인
ps -ef
systemctl status
ping ipaddr
netstat -anlp
USE web;
CREATE TABLE student (
name VARCHAR(10),
age INT,
gender VARCHAR(1)
);
ALTER TABLE student ADD addr VARCHAR(30);
ALTER TABLE student DROP addr;
ALTER TABLE student RENAME COLUMN gender TO addr;
ALTER TABLE student MODIFY addr VARCHAR(30);
DROP TABLE student;
CREATE TABLE student (
idx INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(10) NOT NULL,
age INT DEFAULT 1,
gender VARCHAR(1),
school_idx INT,
FOREIGN KEY (school_idx) REFERENCES school(idx)
);
ALTER TABLE student MODIFY gender VARCHAR(1) NOT NULL;
CREATE TABLE school (
idx INT AUTO_INCREMENT PRIMARY KEY, # idx 속성에 자동 증가 옵션과 기본키 옵션 설정
name VARCHAR(20),
addr VARCHAR(20)
);
CREATE TABLE subject (
idx INT PRIMARY KEY,
name VARCHAR(20),
time INT
);
CREATE TABLE register (
subject_idx INT,
student_idx INT,
# 현재 테이블에 있는 subject_idx라는 속성을 subject라는 테이블에 있는 idx라는 속성을 참조해서 외래키로 설정
FOREIGN KEY (subject_idx) REFERENCES subject(idx),
FOREIGN KEY (student_idx) REFERENCES student(idx)
);
CREATE TABLE teacher(
idx INT auto_increment PRIMARY KEY,
name VARCHAR(10)
);
ALTER TABLE subject ADD COLUMN teacher_idx INT;
ALTER TABLE subject ADD foreign key (teacher_idx) REFERENCES teacher(idx);
SELECT idx, name, addr FROM school;
INSERT INTO school (idx, name, addr) VALUES (1,'플레이 데이터','동작구');
INSERT INTO school (name, addr) VALUES ('동작 대학교','동작구');
INSERT INTO school VALUES (3, '동작 대대학교','동작구');
INSERT INTO school (name, addr)
VALUES
('동작 대학교1','동작구'),
('동작 대학교2','동작구'),
('동작 대학교3','동작구'),
('동작 대학교4','동작구');
DELETE FROM school WHERE name='동작 대학교4';
UPDATE school SET addr='SFC 빌딩' WHERE name='플레이 데이터';
기본키는 테이블당 하나씩 존재
외래키는 1 대 N 관계에서 N쪽에 생성됨(1쪽의 속성 이름을 따옴)
N 대 N의 관계에선 테이블이 하나 더 생성 됨(양쪽의 기본키를 가져와서 생성)
(삽입, 삭제, 갱신)이상문제를 해결하려면 테이블을 쪼개면 됨-> 정규화
리눅스 컴퓨터에 압축 파일 다운(파일의 주소 http://192.168.0.100:1234/test_db%2dmaster.zip)
wget http://192.168.0.100:1234/test_db%2dmaster.zip
리눅스 컴퓨터에 unzip 이라는 압축 해제 프로그램 설치
yum install -y unzip
unzip 이용해서 압축 해제
unzip test_db-master.zip
DB 서버의 관리자 권한으로 압축 해제한 파일을 DB 서버에 추가
ls 입력해서 확인 후
경로이동 cd test_db-master
mysql -u root -p < employees.sql
패스워드 입력
5.권한부여
mysql -u root -p
패스워드 입력
GRANT ALL PRIVILEGES ON employees.* to 'kjh'@'%';
exit로 나오기
위에 받은 파일로 SQL에서 실습
select emp_no, salary
from salaries
where salary < 65000 or salary > 70000;
2.employees 테이블에서 last_name이 Facello 이거나 Simmel 인 사원들의 last_name과 birth_date를 출력하시오.
select last_name, birth_date
from employees
where last_name = 'Facello' or last_name = 'Simmel';
3.employees 테이블에서 last_name이 A로 시작하는 사원의 last_name과 first_name을 출력하시오
select last_name, first_name
from employees
where last_name like 'A%';
4.employees 테이블에서 last_name에 aba가 포함된 사원의 last_name과 first_name을 출력하시오
select last_name, first_name
from employees
where last_name like '%aba%';
putty 리눅스 서버 ip 입력하면 사용 가능(스크롤, 글씨 키우기 가능)