서버란 왜 필요한 것일까?
1. 웹 어플리케이션에서 주로 쓰이는 JS는 프로그램이 실행될때만 데이터가 사용되며 프로그램이 종료되거나 사용하지 않으면 데이터도 사라집니다.
2. 따라서 정보나 변수에 담긴 데이터는 보호가 되자 않습니다.
3. 이에따라 프로그램이 사용될때마다 사용할 데이터의 저장소가 필요합니다.
TIP) 데이터베이스는 어떠한 목적성을 가지고 있는 하나의 테이블로 정의되며 테이블을 이용할 경우 편리성을 제공하기 위해서는 필드를 상세하게 정의하는것이 좋다.
SQL은 Structured Query Language로 데이터베이스 언어로 주로 관계형 데이터베이스에서 사용됩니다.
데이터베이스에서 쿼리를 내보내거나 원하는 데이터를 가져오거나 삽입 수정할 수 있습니다.
TIP)쿼리문이란 질의문이란 뜻으로 입력하는 검색어가 일종의 쿼리이다. 검색할때 저장되어있는 데이터를 필터하기위한 질의문으로 볼 수 있다.
DataBase 관련 명령어
1.3.1 데이터베이스 생성
CREATE DATABASE "데이터베이스 이름"
1.3.2 데이터 베이스 사용
생성된 데이터베이스를 수정 및 사용하겠다는 선언을 해야합니다.
USE "사용할 데이터베이스 이름"
1.3.3 테이블 생성
필드이름 필드타입 그외 속성 id 숫자 기본키(PRIMARY_KEY이면서 자동 증가하도록 설정 name 문자열(최대255개문자) 문자열(최대255개문자) CREATE TABLE "만들 테이블 명" ( id int PRIMARY KEY AUTO_INCREMENT, name varchar(255), email varchar(255) );
1.3.4 테이블 정보확인
DESCRIBE user;
-결과-
mysql> describe user; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | id | int | NO | PRI | NULL | auto_increment | | name | varchar(255) | YES | | NULL | | | email | varchar(255) | YES | | NULL | | +-------+--------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)
SQL명령어
1.3.5 SELECT
데이터셋에 포함된 특성을 특정합니다.
SELECT 'hello world'
1.3.6 FROM
FROM뒤에 결과를 도출할 데이터베이스 테이블을 명시합니다.
SELECT 특성_1, 특성_2 FROM 테이블_이름 SELECT * //모든 테이블을 선택시 사용 FROM 테이블_이름
1.3.7 WHERE
필터역할을 하는 쿼리문입니다.
SELECT 특성_1, 특성_2 FROM 테이블_이름 WHERE 특성_1 = "특정 값"
TIP) WHERE의 특정값 1. 특성_2 <> "특정값" // 특정값을 제외하여 특정_2에서 찾기 2. 특성_2 LIKE "%a" //a로 끝나는 데이터찾기(반대는 "a%") 3. 특성_2 IN ("특정값_1","특정값_2") //일치하는 데이터찾을때 사용 4. 특성_2 IS NULL //NULL인 데이터만 확인 (반대는 IN NOT NULL)
1.3.8 ORDER BY
돌려받는 데이터 결과를 어떤 기준으로 정렬하여 출력할지 결정합니다. ORDER BY는 선택적으로 사용할 수 있습니다.
// 기본정렬은 오름차순으로 내림차순으로 정렬할 시 밑의 "DESC"를 붙이면 된다. SELECT * FROM 테이블_이름 ORDER BY 특성_1 DESC
1.3.9 LIMT
결과로 출력할 데이터의 개수를 정할 수 있습니다.
SELECT * FROM 테이블_이름 LIMIT 200
1.3.10 INNER JOIN & OUTER JOIN
- INNER JOIN
JOIN 으로 실행할 수 있으며 두 테이블에서 겹치는 데이터를 출력한다.SELECT * FROM 테이블_1 JOIN 테이블_2 ON 테이블_1.특성_A = 테이블_2.특성_B
- OUTER JOIN은 LEFT,RIGHT 두가지 방법이 존재하며 어느쪽을 기준으로 할지에 따라 출력된느 데이터가 바뀐다.
- LEFT (OUTER) JOIN
SELECT * FROM 테이블_1 LEFT OUTER JOIN 테이블_2 ON 테이블_1.특성_A = 테이블_2.특성_B
- RIGHT (OUTER) JOIN
SELECT * FROM 테이블_1 RIGHT OUTER JOIN 테이블_2 ON 테이블_1.특성_A = 테이블_2.특성_B
TIP) INNER,OUTER JOIN 실험 블로그 (참고 블로그)
SQL 언어 연습, Quiz 사이트
brew install mysql
brew info mysql
brew services start mysql
mysql -u root
비밀번호를 설정하였다면
mysql -u root -p
를 통해 비밀번호를 입력하고 진입해야해야한다.
TIP) 비밀번호 설정방법
mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '사용할 비밀번호';
TIP) 비밀번호 분실시 재 설정 방법
1. MySQL 파일로 이동후 서버 멈추기cd /opt/homebrew/opt/mysql/bin brew services stop mysql !)만역 폴더 위치를 모르겠다면 터미널창(맥북기준) "which mysql"을 입력하면 된다.
- MySQL서버 시작(비밀번호 없이 시작하기 위해 서버승인을 생략함)
mysql.server start --skip-grant-tables //완료가 되면 ". SUCCESS!" 가 출력된다.
- root유저로 MySQL접속
mysql -u root
- mysql 데이터베이스에 접근
USE mysql
- 권한변경
FLUSH PRIVILEGES;
- 비밀번호 변경
ALTER USER 'root'@'localhost' IDENTIFIED BY '사용할 비밀번호';
- mysql 종료
EXIT //bye 출력
- mysql 서버 멈추고 다시 시작
mysql.server stop mysql.server start
- mysql접속
mysql -u root -p
- 확인
select user, authentication_string from user;