데이터 베이스 기본문법 SQL #2

Michael-Oh·2021년 8월 13일
0

데이터베이스

목록 보기
2/4

1. 왜 데이터 베이스가 생겨 났을까?

File에서 벗어나 전문적인 소프트웨어 개발 1960년대부터

1970년 IBM 관계형 데이터 베이스를 만들었다.

데이터를 표의 형태로 검색을 빠르고 편리하고 안전하게 가능하다.

My SQL

오픈 소스

웹이 폭발적으로 성장하면서, 데이터 베이스 찾게 됨.

자연스럽게 mySQL를 사용하면서 동반성장을 하게 됨.

2. 데이터 베이스의 목적

스프레드 시트와 데이터 베이스의 차이

스프레스 시트에서 필터로 정렬가능하다.

데이터 베이스는 컴퓨터 언어를 통해서 제어가 가능하다.

토픽에서 author 라는 행에서 sekwang이라는 것만 찾아줘 
SELECT * FROM topic WHERE author = 'sekwang';

id가 큰 수부터 해줘! 
SELECT * FROM topic WHERE author = 'sekwang' ORDER BY id DESC;

왜 컴퓨터 언어를 통해서 데이터를 제어할 수 있는 것이 중요한가?

데이터 베이스를 통해 저장된 것, 웹, 앱으로 공유가능, 인공지능으로 분석 가능하다.

3. MySQL 설치

데이터 베이스의 구조

연관된 표들을 고통

표에 저장이 된다.

연관된 데이터를 그룹핑하는 것 ⇒ 스키마

이미지참조: 생활코딩

데이터 베이스의 효용

  1. 자체적인 보안체계, 데이터 안전하게 보관 가능
  2. 권한기능, 여러 사람을 등록하여, 데어터 접근 권한을 차등적으로 줄 수 있다.

4. 스키마

데이터 베이스 생성

# 데이터 베이스 생성
CREATE DATABASE '데이터베이스명';

# 데이버 베이스 삭제
DROP DATABASE '데이터베이스명';

# 데이버 베이스 확인
SHOW DATABASES;

# 데이터 베이스 사용하기
USE '데이터베이스명';
## 핵심은 검색해서 하나씩 찾으면 된다.

5. SQL과 테이블

SQL

Structured, 정리정돈

Query, 요청한다, 질의한다.

Language, 공통의 약속, 언어

SQL 쉽고 중요하다.

  1. 어떤 컴퓨터 언어보다도 쉽다. html,sql
  2. 중요하다.

용어정리

table

수평 : row, record 행 ⇒ 데이터 자체

수직 : columns, 열 ⇒ 데이터의 구조


참조: 생활코딩

table 생성

create table in mysql cheat sheet

https://devhints.io/mysql

입력값을 규제한다.

id 값은 숫자로 결정해 놓는다.

## 테이블 만들기 id 생성 칼럼이름, 데이터 타입, 보여줄것
CREATE TABLE topic(
    -> id INT(11) NOT NULL AUTO_INCREMENT, # 값이 없는 걸 허용하지 않겠다. / 자동으로 ID값 생성
    -> title VARCHAR(100) NOT NULL,
		-> description TEXT NULL,
    -> created DATATIME NOT NULL,
    -> author VARCHAR(30) NULL,
    -> profile VARCHAR(100) NULL,
    -> PRIMARY KEY(id)

PRIMARY KEY는 고유한 값을 가지는 것! 

에러 노트

첫번째 에러

두번째 에러

두 철자 에러가 발생하여 에러가 발생했다.

CREATE TABLE topic(
id INT(11) NOT NULL **AUTO INCREMENT**, 
title VARCHAR(100) NOT NULL, 
description TEXT NULL, 
created **DATATIME** NOT NULL, 
author VARCHAR(30) NULL, 
profile VARCHAR(100) NULL, 
PRIMARY KEY(id));

두개를 수정해주고 정상적으로 작동하였다. 
**AUTO INCREMENT => AUTO_INCREMENT**
**DATATIME => DATETIME**

새로운 비밀번호를 입력할 때

SET PASSWORD = PASSWORD('변경할 비밀번호')

7. CRUD

INSERT(생성)

# mysql 접속
./mysql -uroot -p

# 데이터 베이스를 보기
SHOW DATABASES;

# 데이터 베이스를 사용하기
USE '데이터베이스명'

# 데이터 베이스의 테이블 보기
SHOW TABLES;

# 테이블의 구조 확인
DESC '테이블명';
DESC topic

# 데이터 베이스의 테이블에 값을 추가한다. 
INSERT INTO '테이블명' (title,description,created,author,profile) VALUES('MySQL','MySQL is ....',NOW(),'michael','Data Scientist')

# 현재시간 작성됨
NOW()

SELECT(선택) : mysql select syntax


# 추가된 데이터 베이스 보기
SELECT * FROM topic;

# 각각 칼럼들을 확인
SELECT title, id, description, created, author, profile FROM topic;

# 필요한 데이터가 가져오고 싶을 때
WHERE author = '작가명'

# 정렬하기 
ORDER BY id DESC;

# 제한을 걸어서 몇개 볼지 생각
LIMIT 2;

UPDATE

# topic 테이블에서 title 칼럼에서 'oracle'인 데이터를 id 순서 대로, 2개만 가져와라!
SELECT * FROM topic WHERE title='oracle' ORDER BY id DESC LIMIT 2;

# UPDATE하기 
## topic 테이블의 id=3에서 title 칼럼을 'MySQL'로 수정하고, description 칼럼은 'MySQL is ...'으로 수정한다.
UPDATE topic SET title='MySQL', description='MySQL is ...' WHERE id=3;

DELECT

# DELETE FROM topic WHERE 

## topic 테이블의 title이 oracle인 것 삭제
DELETE FROM topic WHERE title='oracle';
profile
초보 개발자의 테니스 과학적 분석 Dev-Log

0개의 댓글