DataBase

MySQL

종퐁이 2024. 10. 8. 01:03

- SQL

   - S : Structured - 구조적

   - Q : Query - 질의

   - L : Language - 언어

input output
Create
Update
Delete
Read

 

[ MySQL 실행방법 ]

1. cd /usr/local/mysql/bin

2 ./mysql -uroot -p

3. 비밀번호 입력

 

[ MySQL 구조 ]

- table : 데이터의 기본 저장

- database, schema : 연관된 표의 데이터들을 grouping 한 폴더

- datavase server : schema들이 저장되는 곳

 

CREATE DATABASE 데이터베이스이름(...) : 데이터베이스 생성
DROP DATABASE 삭제할데이터베이스이름 : 생상한 데이버베이스 삭제
SHOW DATAVBASES; : 생성한 데이터베이스 리스트를 보여줌
SHOW TABLES; : 선택된 데이터베이스 내에 있는 모든 테이블의 목록을 보여줍니다. 이 명령어를 실행하기 전에 사용할
               데이터베이스를 선택해야 합니다.
               
USE 데이터베이스이름;
SHOW TABLES;
< 테이블 생성 >
mysql> CREATE TABLE topic(
    -> id INT(11) NOT NULL AUTO_INCREMENT,
    -> title VARCHAR(100) NOT NULL,
    -> description TEXT NULL,
    -> created DATETIME NOT NULL,
    -> author VARCHAR(30) NULL, 
    -> profile VARCHAR(100) NULL,
    -> PRIMARY KEY(id));
    
- NOT NULL : 값을 비워둘 수 없음을 의미
- AUTO_INCREMENT : 자동으로 값을 1씩 증가
- NULL : 값을 비워두는걸 허용
DESC 데이블이름; : 테이블의 구조(스키마)를 보여준다.
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
 : 테이블에 새로운 데이터를 추가하는데 사용되는 명령어
 
 - 테이블이름 : 데이터를 삽입할 테이블의 이름
 - colum1,colum2... : 값을 삽입할 열의 이름
 - value1,value2... : 각 열에 삽입할 값
SELECT * FROM 테이블이름; : 특정 테이블의 모든 열과 모든 행을 조회하는데 사용되는 명령어

SELECT name,email FROM 테이블이름; : 모든 열 대신 특정 열만 조회하고 싶다면, 열 이름을 명시할 수 있다.

SELECT * FROM 테이블이름 WHERE age > 25; : 이 경우 나이가 25세 이상인 사용자만 조회된다.

SELECT * FROM <table1> LEFT JOIN <table2> ON <table1>.<val1> = <table2>.<val2>;
: 두 테이블을 연갈할 때 사용되는 명령어, 왼쪽 테이블의 모든 행을 선택하고, 오른쪽 테이블에서 일치하는 행이 있을 경우에만
  그 데이터를 표한다. 오른쪽 테이블에 일치하는 데이터가 없으면, 그 열은 NULL로 표시된다.