본문 바로가기

카테고리 없음

My SQL이란? MY SQL 기초 입문①(프로덕트 매니저가 고수되기)

반응형

My SQL은 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템(RDBMS : Relational DBMS)이라고 부른다. 또한, My SQL은 오픈 소스이며, 다중 사용자와 다중 스레드를 지원한다. C언어, C++, JABA, PHP 등 여러 프로그래밍 언어를 위한 다양한 API를 제공하고 있다.

 

My SQL은 유닉스, 리눅스, 윈도우 등 다양한 운영체제에서 사용할 수 있으며, 특히 PHP와 함께 웹 개발에 자주 사용되고 있다. My SQL은 오픈 소스 라이선스를 따르기는 하지만, 상업적으로 사용할 때는 상업용 라이선스를 구입하여야 한다.

 

 My SQL 기본 분류

DML은 Data Manipluation Language은 데이터 조작 언어이다. 이는 데이터를 조작하는데 이는 선택, 삽입, 수정, 삭제하는 데 사용하는 언어이다. 그리고 DML 구문이 사용되는 대상은 테이블의 행이라고 하며, DML을 사용하기 위해서는 꼭 그 이전에 테이블이 정의되어 있어야 한다. 

 

SQL문 중 Select, Insert, Update, Delete가 이 구문에 해당된다. 또한, 트랜잭션(Transaction)이 발생하는 SQL도 이 DML에 속한다. 즉, 데이블의 데이터를 변경(입력/수정/삭제)할 때 실제 데이블에 완전히 적용하지 않고, 임시로 적요시키는 것을 말하는데 이는 취소가 가능하다. 

 

DDL은 Data Definition Language로 데이터를 정의하는 언어이다. 데이터베이스, 테이블, 뷰, 인덱스 등의 데이터베이스 개체를 생성 및 삭제, 변경하는 역할을 담당한다. 또한, Create, Drop, Alter구문, DDL은 트랜잭션을 발생시키지 않는다.

 

RollBack이나 Commit이 사용 불가하다. DDL문은 실행 즉시 My SQL에 적용된다.

 

DCL은 Data Cintrol Language로 데이터 제어 언어이다. 사용자에게 어떤 권한을 부여하거나 뺏을 때 주로 사용한 구문으로 보시면 된다.

 

1. SHOW DATABASES

현재 서버에 어떤 DB가 있는지 보기 : 번개모양을 통해 실행한다. 

 

설치 시에 샘플을 다운로드하게 되는데 USE world를 통해 사용할 데이터베이스를 지정하고  지정해 놓은 후 특별히 다시 USE문 사용하거나 다른 DB를 사용하겠다고 명시하지 않는 이상 모든 SQL문은 지정 DB에서 수행한다.

 

[USE database_name]는 Workbench에서 직접 선택해 사용 가능하다.

  • Navigator-SCHEMAS-데이터베이스 선택

2. SHOW TABLE

현재 데이터베이스 world의 테이블 정보 조회한다.

 

샘플을 통해 Name, Engine, Version, Row_format, Rows 등에 각각의 정보에 대한 데이터가 정렬이 된다.

 

그럼 이제 데이터베이스가 있고, 여러 개의 테이블이 있고, 테이블은 여러 개의 칼럼으로 존재한다고 볼 수 있다. 그래서 샘플에서 주어진 특정 테이블 city를 DESCRIBE 하게 되면 City안에 어떤 칼럼들이 있고, 그 칼럼의 타입은 무엇이며, 그 각각의 열에 대한 정보들을 확인할 수 있다. 

 

이는 테이블에 대한 속성 정보라고 할 수 있다. 참고적으로 DESCRIBE를 줄여서 DESC로 표현이 가능하다. 

 

3. SELECT

테이블에서 보고 싶은 데이터가 있는데 가져오는 것을 말한다. <SELECT... FROM>으로 주로 쓰이며 요구하는 데이터를 가져오는 구문이며 일반적으로 가장 많이 사용되는 구문이다. 데이터베이스 내 테이블에서 원하는 정보를 추출한다. SELECT의 구문 형은 다음과 같은 예시가 있다.

 

SELECT select_expr

              [FROM table_references]

              [WHERE where_condition]

              [GROUP BY {col_name | expr | position}]

              [ORDER BY {col_name | expr | position}]

 

예를 들어 " SELECT * FROM city ; "를 입력하면 city안에 있는 전체 데이터를 볼 수 있다. 

 참고적으로 * 은 전체를 의미하지만, name을 입력하면 name에 대한 데이터를 볼 수 있다. 

 

예 2)

SELECT *

FROM city

WHERE Population >= 80000000 ;

이렇게 입력을 하게 되면, '인구 800만 이상인 도시들만 보여줘'라는 의미로 사용될 수 있다. 

 

4. SELCT FROM WHERE

관계 연산자의 사용

  • OR 연산자
  • AND 연산자
  • 조건 연산자(=, <, >, <=, >=, <>,!= 등)
  • 연산자의 조합을 데이터를 효율적으로 추출

LAB1) 

1. 한국에 있는 도시들 보기

DESC city ; 를 통해 도시를 확인한다. 

SELECT * 

FROM city

WHERE countrycode = 'KOR' ;

 

2. 미국에 있는 도시들 보기

SELECT *

FROM city

WHERE countrycod = 'USA' ;

 

3. 한국에 있는 도시인데 인구수가 100만 이상인 도시를 보기

SELECT *

FROM city

WHERE countrycod = 'KOR' ;

AND Population >= 1000000;

 

심화) BETWEEN

데이터가 숫자로 구성되어 있어 연속적인 값은 BETWEEN... AND 사용 가능

SELECT *

FROM city

WHERE countrycod BETWEEN 7000000 AND 8000000

-> 700만, 800 만사이에 있는 도시를 보여줘

 

심화 2) 내가 정한 것만 보고 싶다.

SELECT *

FROM city

WHERE NAME IN('Seoul', 'New York', Tokyo')

여기에서 IN은 이산적인(Discrete) 값의 조건에서는 IN() 사용 가능 

 

5. LIKE

문자열의 내용 검색하기 위해 LIKE 연산자 사용한다. 문자 뒤에 % - 무엇이든(%) 허용하며, 한 글자와 매치하기 위해서는 '_(언더바)'를 사용한다. 

SELECT *

FROM city

WHERE countrycod = 'US_' ; US로 시작하는 모든 도시가 검색된다.

 

 

 

 

728x90
반응형