티스토리 뷰



  • 개인공부 후 자료를 남기기 위한 목적으로 내용상에 오류가 있을 수 있음을 밝힙니다. 
  • 오류를 발견시 댓글로 남겨주시면 수정하도록 하겠습니다.


Database 언어의 3가지 종류, 형태
  1. DDL(Data Define Language) : 데이터베이스 관리(create, alter, drop)
  2. DML(Data Management Language) : 데이터베이스 데이터 관리(select, insert, update, delete)
  3. DCL(Data Control Language) : 데이터베이스 권한 관리(grant, revoke)



이름 

나이 

성별 

 학년

YoWu 

24 

 

3 

hsg 

25 

 

데이터베이스는 기본적으로 테이블의 형태와 유사하다.


MySQL Console 접속 방법

명령어

mysql -h 호스트명 -u 아이디 -p

mysql 명령어 사용시 호스트가 localhost일 경우 생략 가능하고 비밀번호가 없을 경우에도 생략 가능하다. -p 옵션이 붙어 있을 경우 명령어 입력시 비밀번호를 물어본다.



MySQL 기본 명령어

show databases; : 현재 사용가능한 데이터베이스의 목록을 출력하는 명령어

create database DB이름; : 데이터베이스를 생성한다. root가 아닌 유저가 DB를 생성하려면 DDL 명령어에 대한 권한이 있어야한다.

use DB이름 : 생성된 데이터베이스를 사용하려면 use DB이름 쿼리를 날려주어 DB를 선택해줘야한다. 사용할 데이터베이스를 선택하는 명령어


create table 테이블이름 : 테이블 생성

예)

create table person(
idx int unsigned auto_increment,
name varchar(30),
age int,
gender char(3),
grade int,
primary key(idx)
)Engine='InnoDB' default charset='utf8';


  • idx는 각 컬럼(데이터)를 구분하는 고유의 값(primary key)으로써 0이상의 정수(int unsigned) 자동 증가(auto_increment) 옵션이 붙어있다. 그리고 마지막에 primary key함수로 idx를 기본키로 설정하면 null값일 수 없음(not null) 옵션이 자동으로 붙는다.
  • Engine='InnoDB' : 데이터베이스 엔진, 위 쿼리에서는 InnoDB를 사용한다고 명시, 그외 주로 쓰는 엔진으로 MyISAM이 있다.
  • default charset='utf8' : 데이터를 저장할 때 문자 인코딩을 8비트 유니코드를 사용하겠다고 명시한다.



자주 쓰이는 자료형

  • char : 문자열
  • varchar : 가변 문자열
  • text : 텍스트
  • int : 정수
  • double : 실수
  • date : 날짜
  • datetime : 날짜 + 시간

char와 varchar의 차이
  • char(100) : 고정 크기, 읽어올 때 100byte 모두를 읽어온다.
  • varchar(100) : 가변 크기, 읽어올 때 저장된 크기 만큼만 읽어온다. 하지만 느리다.

  • desc 테이블이름; : 테이블의 구조를 확인한다.



    insert : 테이블에 하나의 행을 삽입(DML)

    형식)

    insert into 테이블이름(컬럼 이름) values(데이터,데이터);

    예)

    insert into person(name, age, gender, grade) values('YoWu', '24', '남', '3');

    insert into person(name, age, gender, grade) values('hsg', '25', '남', '4');

    특정 컬럼에만 값을 넣을 경우 컬럼 이름을 넣어주면 된다. 컬럼명 미기재시 모든 컬럼에 순차적으로 데이터가 입력된다.


    select : 테이블 데이터 조회(DML)

    예)

    select * from person; : person 테이블의 모든 데이터 조회

    select * from person where age=24; : person의 데이터중 age의 값이 24인 데이터만 조회

    select name from person where gender='남'; : person의 데이터 중 gender의 값이 '남'인 데이터의 name 값 조회

    select name, age from person where gender='남' and age>20;: person의 데이터 중 gender의 값이 '남'이면서 age가 20이상 데이터의 name, age 값 조회


    저작자 표시 비영리 변경 금지
    신고
    프로필사진

    Yowu (Yu Yongwoo)

    My MBTI type is ENTP. (Of course I do not believe it 100%, but I want to do that) I use Node.js to develop the backend. I use Ubuntu Linux as my development environment, and I love Vim. I am interested in open source and are keen to contribute. I have a bachelor's degree in computer science from Catholic University and now a software engineer at Plating Inc., I spent about 5 years developing and learning, and I am still interested in software development and culture. Recently, I am interested in React, Serverless structure, Domain Design Driven. Sometimes I play drums in the band.