[MySQL] MySQL 설치 및 기본 문법

개린이·2023년 9월 18일
0

DBMS

목록 보기
2/5
post-thumbnail

SQL

SQL(Structured Query Language)은 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 관리하기 위해 사용되는 표준 프로그래밍 언어입니다. SQL을 사용하여 데이터베이스에 데이터를 추가, 검색, 업데이트 및 삭제할 수 있습니다.


MySQL

MySQL은 세계에서 가장 널리 사용되는 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS) 중 하나입니다. 1995년에 스웨덴의 회사인 MySQL AB에 의해 개발되었고, 2008년에는 Sun Microsystems에 의해 인수되었습니다.

그리고 2010년에는 오라클이 Sun Microsystems를 인수하면서 MySQL의 소유권도 오라클에게 넘어갔습니다.


설치방법

window에서 MySQL 설치

아래 사이트에 접속하여 Windows (x86, 32-bit), MSI Installer 파일의 [Download] 버튼을 클릭합니다.
https://dev.mysql.com/downloads/installer/

하단의 [No thanks, just start my download.]를 클릭하면 로그인을 하지 않아도 다운받을 수 있습니다.

다운로드한 설치파일을 열면 위 이미지 같은 화면이 나오는데 [Choosing a Setup Type] 에서는 설치 유형을 선택할 수 있습니다. 저는 모두 다 설치할 예정으로 Full을 선택하였습니다.

[Type and Networking]에서 [Config Type]을 ‘Development Computer’로 선택하고 [TCP/IP]가 체크된 상태에서 [Port]가 ‘3306’인 것을 확인합니다. 포트 번호는 자주 사용되므로 꼭 기억해줍니다! 그 아래 [Open Windows Firewall ports for networkaccess]도 체크해준 후 [Next]를 클릭해줍니다.

저는 3306포트가 사용중이라는 에러가 떠서 cmd창에 들어가서 해당 포트를 죽여준 후 설치를 진행하였습니다.

[Accounts and Roles]에서는 MySQL 관리자(Root)의 비밀번호를 설정합니다. 기억하기 쉽게 ‘1234’으로 지정하겠습니다. 아래쪽의 [MySQL User Accounts]에서 Root 외의 사용자를 추가할 수 있습니다. [Next] 버튼을 클릭합니다.

next를 눌러 다운로드를 진행해줍니다.

[Connect To Server]에 연결할 서버가 보이고 [User name(사용자 이름)]에 ‘root’가 입력되어 있습니다. [Password(비밀번호)]를 앞에서 설정한 ‘1234’으로 입력하고 [Check] 버튼을 클릭하면 [Status]가 ‘Connection succeeded’로 변경됩니다. 연결이 성공되면 [Next] 버튼을 클릭합니다.

[Apply Configuration]에서 [Execute] 버튼을 클릭하면 설정된 내용이 적용됩니다. 모든 항목 앞에 초록색 체크가 [Finish] 버튼 클릭해서 설정을 종료합니다.

next를 누르면 아래와 같은 화면이 나오는데 Finish을 눌러주면 MySQL의 설치가 완료됩니다.


SQL 문법 및 용어

  • 주석문: # 또는 -- mysql에서만 #사용 (한줄 주석문) /* */(여러줄 주석문)

  • sql은 대소문자를 구별하지 않는다.

  • 문자열을 저장할 때 '' 작은 따옴표를 사용한다.

  • 테이블 행은 레코드 또는 로우로 부름

  • 행은 필드 또는 컬럼으로 부른다

테이블
데이터를 행(레코드, 로우)과 열(컬럼, 필드)로 스키마에 따라 저장할 수 있는 구조

스키마
데이터베이스의 구조와 제약조건에 관한 명세를 기술한 집합


데이터 타입

1. 숫자형 타입

tinyint
정수(1byte) -128 ~ 127까지 들어갈 수 있다

smallint
정수(2byte) -32,768 ~ 32,767 까지

int:
정수(4byte) 약 -21억 ~ 액 21억 까지

bigint
정수(8byte) 거의 무제한

folat
부동 소수형 데이터 타입(4byte) 실수자리가 6자리로 정해져있는걸 의미함

double
부동 소수형 데이터 타입(8byte)
decimal(길이, 소수)
고정 소수형 데이터 타입


2. 문자형 타입

char
고정 길이 데이터 타입(최대 255byte)
지정된 길이보다 짧은 데이터를 입력하면 나머지 공간을 공백으로 채운다

varchar
가변길이 데이터 타입(최대 65535byte)
지정된 길이보다 짧은 데이터를 입력하면 나머지 공간을 채우지 않는다.

text
문자열 데이터 타입(최대 65535byte)

longtext
무제한 문자열 데이터 타입


3. 이진 데이터 타입

binary, byte
char의 형태의 이진 데이터 타입(최대 255byte)

varbinary
varchar의 형태의 이진 데이터 타입(최대 65535byte)


4. 날짜 데이터 타입

date
날짜(년도, 월, 일) 형태의 데이터 타입(3byte)

time
시간(시, 분, 초) 형태의 타입(3byte)alter

datetime
날짜와 시간 형태의 데이터 타입(8byte)

timestamp
1970년 1월 1일 0시 0분 0초부터 시작한 ms타입의 시간이 저장(4byte)


제약 조건(constraint)
데이터의 무결성을 지키기 위해 데이터를 입력 받을 때 실행되는 검사 규칙을 의미

not null
null값을 허용하지 않음, 하지만 중복값은 허융

unique
중복값을 허용하지 않음, null값은 허용

primary key(기본키)

  • null값 비허용
  • 중복값을 허용하지 않음
  • 테이블에 단 하나만 설정
  • foreign key(참조키)와 쌍으로 연결됨
  • 인덱싱을 설정

foreign key(참조키)
prinmary key를 거잔 테이블과 연결하는 역할

default
null값을 삽입할 때 기본이 되는 값을 설정함

enum
원하는 범위를 설정하고 해당 범위의 값만 저장 #권장하지 않음

🖥️ create 기본 문법

	create table 테이블명(
		필드명 데이터타입 제약조건,
        필드명 데이터타입 제약조건,
        필드명 데이터타입 제약조건,
        ...
    )
    
    
    create table member(
      userid varchar(20) primary key,
      userpw varchar(20) not null,
      name varchar(20) not null,
      hp varchar(20) not null unique,
      email varchar(50) not null,
      gender varchar(10) not null,
      ssn1 char(6) not null,
      ss2 char(7) not null,
      zipcode varchar(5),
      address1 varchar(100),
      address2 varchar(100),
      address3 varchar(100),
      regdate datetime default now(),
      point int  default 0
	);

🖥️ 데이터베이스 확인

	show databases;

🖥️ 데이터베이스 만들기

	create database 데이터베이스명;
    create database kdt;

🖥️ 데이터베이스 선택

	use kdt;

🖥️ 테이블 확인하기

	-- desc 테이블명
	desc member

🖥️ 테이블 삭제

  -- drop table 테이블명
  drop table member;

🖥️ 필드 추가하기

  -- arter table 테이블명 add 컬럼명 데이터타입 제약조건
  alter table member add mbti varchar(10);

🖥️ 필드 수정하기

  -- alter table 테이블명 modify columm 컬럼명 데이터타입 제약조건
  alter table member modify column mbti varchar(20);

🖥️ 필드 삭제하기

  -- alter table 테이블명 drop 컬럼명
  alter table member drop mbti;

🖥️ 데이터 삽입하기

	insert into 테이블명 values(1,2,3...)
    insert into 테이블명(필드명1, 필드명2, 필드명3....)
    values(1,2,3...)
    
  create table word(
      eng varchar(50) primary key,
      kor varchar(50) not null,
      lev int default 1
  );

🖥️ 데이터 삽입하기

	insert into 테이블명 values(1,2,3...)
    insert into 테이블명(필드명1, 필드명2, 필드명3....)
    values(1,2,3...)
    
    insert into word values('apple','사과',1);
    insert into word(eng, kor) values('grape','포도');

2개의 댓글

comment-user-thumbnail
2023년 9월 19일

리눅스 설치도 해주세요

1개의 답글