프로그래밍/MySQL 기초 (9) 썸네일형 리스트형 MySQL 문법 - 8 ( VIEW ) VIEW 뷰는 데이터베이스에 존재하는 일종의 가상의 테이블이다. 실제 테이블처럼 row와 col을 갖지만 실제로 데이터를 저장하고 그러지는 않는다. 뷰는 다른 테이블이나 뷰의 내용을 보여주는 역할만 수행한다. 뷰를 적절히 활용함으로써 여러 테이블과 뷰를 하나의 테이블처럼 볼 수 있다. MySQL에서는 보여주는 역할을 담당한다. 자신만의 INDEX를 가질 수 없다. 장점 사용자에게 테이블 전체가 아닌 필요한 column만 보여줄 수 있다. 복잡한 쿼리를 단순하게 이용할 수 있다. 쿼리의 재사용이 가능해진다. 단점 한 번 정의된 뷰는 바꿀 수 없다. 삽입, 삭제, 갱신과 같은 작업에도 제한이 많다. 뷰에 인덱스를 사용할 수 없다. 생성은 CREATE VIEW [생성할 뷰의 이름] AS SELECT [가져올 .. MySQL 문법 - 7 (INDEX) INDEX 만든 테이블에서 빠르게 원하는 데이터를 검색을 하기 위해서 사용한다. 일반적으로는 데이터를 검색할 때 순서대로 테이블 전체를 검색하므로 시간이 오래 걸린다. 인덱스를 이용하면 검색 / 질의 시 전체를 읽는 것이 아니기 때문에 시간이 단축된다. 테이블 수정 시 인덱스도 변화시켜주어야 하므로 번거롭다. 그러므로 수정보다는 검색이 자주 일어나는 테이블에서 인덱스를 이용하는 것이 좋다. 성능 문제가 발생할 때 마다 인덱스를 추가시켜주면 개별 성능은 빨라질 지 몰라도 전체 성능은 떨어지는 문제를 초래할 수 있다고 한다. 인덱스를 만드는 방법은 CREATE INDEX [인덱스명] ON [테이블명] (column 이름) 이고 중복을 허용하지 않는 인덱스를 만드는 방법은 CREATE UNIQUE INDEX .. MySQL 문법 - 6 (CREATE) CREATE CREATE DATABASE 데이터베이스를 만드는 역할, 이 글에서 소개할 방식은 workbench에서 GUI를 통해 만드는 법이다. 간단하게 SQL문을 짜주는 사이트도 많고, 직접 타이핑 해서 만들어도 되고 선택은 자유롭고 편한 방식을 찾아서 하면 될 일이다. CREATE DATABASE [데이터베이스명] 을 통해서 생성하며, 보이지 않는다면 왼쪽 위 schemas 오른쪽에 있는 새로고침 버튼을 눌러주면 나온다. 테이블을 조작하려면 Tables를 우클릭 한 뒤 CREATE Table... 을 눌러주면 된다. 여기서 만들어주는 것은 어렵지 않다. 원하는 Datatype을 선택하고, 체크하고, 이름바꾸고.. 다 만들었다면 오른쪽 아래의 APPLY를 눌러주면 된다. 그렇다면 이런 창이 뜰 것이다.. MySQL 문법 - 5 (내장함수 정리) 내장함수 사용자 편의를 위해 사전에 정의되어있는 함수들을 뜻한다. 일반적인 프로그래밍 언어에서 쓰던 기능도 많고 특히 날짜 관련해서 사용할 일이 많아서 그런지 관련 함수가 풍부하다. 문자열 LENGTH(문자열) 문자열의 길이를 반환 CONCAT(문자열1,문자열2,문자열3..) 문자열을 합쳐서 반환 LOCATE(찾을 문자열,대상 문자열) 찾으려는 문자열이 들어있다면 시작점의 인덱스를 반환, MySQL은 맨 앞이 0이 아닌 1부터 시작한다. 등장하지 않는다면 0이 반환된다. LEFT(문자열,길이) 문자열의 왼쪽에서부터 전달받은 길이까지 반환 RIGHT(문자열, 길이) 문자열의 오른쪽에서부터 전달받은 길이만큼 반환, 순서가 뒤집힌다거나 하지는 않음. LOWER(문자열) 문자열의 대문자를 모두 소문자로 바꿔서 .. MySQL 문법 - 4 (GROUP BY / HAVING / WITH ROLLUP / JOIN) GROUP BY 그룹으로 묶어주는 역할, 보통 AS와 같이 쓰인다. AS 는 영어 뜻처럼 '~로써' 라고 생각하면 된다. GROUP BY [그룹화할 데이터] AS [이름] 이렇게 사용한다. 집계 함수와 함께 쓰이고는 한다. 집계 함수는 다음과 같다. AVG() 평균값 MIN() 최솟값 MAX() 최댓값 COUNT() 행의 개수, COUNT(DISTINCT)의 경우 중복 제거 STDEV() 표준 편차 VARIANCE() 분산 SUM() 합 형태는 다음과 같다. SELECT [가져올 값], (집계 함수) FROM [가져올 곳] GROUP BY [그룹화할 기준] AS를 사용한다면 다음과 같다. SELECT [가져올 값], (집계 함수) AS [이름] FROM [가져올 곳] GROUP BY [그룹화할 기준] S.. MySQL 문법 - 3 (SubQuery / ANY / SOME / ALL / ORDER BY / DISTINCT / LIMIT ) SubQuery 쿼리문 속에 쿼리문이 또 존재하는 것. "A를 만족하는 데이터의 B값과 일치하는 C값들을 찾기" 라는 느낌이다. B값은 2개 이상이 되면 에러가 발생한다. 작성은 다음과 같다. SELECT [가져올 것] FROM [가져올 위치] WHERE [비교할 값] [조건] (서브쿼리) 서브쿼리는 다음과 같다. SELECT [보내줄 값] FROM [가져올 위치] WHERE [비교할 값] [비교 대상] 일반적인 쿼리문과 같다. 이 쿼리문을 만족하는 데이터들을 찾아준다. (서브쿼리)가 곧 비교할 대상들을 뜻한다고 봐도 무방할 것 같다. 아래는 작성 예시이다. SELECT * FROM city WHERE District = (SELECT District FROM city WHERE NAME='suwon').. MySQL 문법 - 2 (SELECT FROM / WHERE / BETWEEN / LIKE) SELECT * FROM 데이터를 가져올 때 쓰는 구문이다. 아래 예시는 city라는 테이블의 전체 row들을 가져오는 것이다. *가 정말 언어마다 다양한 역할을 하는데 여기서는 파이썬 import 처럼 생각하면 될 것 같다. SELECT * FROM [테이블명] 이라면 "해당 테이블에서 모든 데이터를 가져오겠다" 라는 뜻이다. SELECT * FROM city; *(애스터리스크)가 아닌 특정 데이터들만 골라서 가져올 수도 있다. SELECT Population FROM city; 여러 개의 데이터를 가져오는 것도 가능하다. SELECT Name,Population FROM city; WHERE SELECT 문에서 선택한 데이터 중 특정 조건을 만족하는 값을 가져오고 싶을 때 이용하는 구문이다. 아래와 .. MYSQL 문법 - 1 (SHOW / USE / DESCRIBE / SELECT * FROM) https://www.mysql.com/downloads/ MySQL 사이트에서 설치한 뒤 실행하면 기본적으로 몇몇 테이블들이 들어가 있습니다! SHOW / USE / DESCRIBE / 세미콜론 (;) C언어나 자바처럼 끝에 ;를 붙임으로써 쿼리의 종료를 표현한다. SHOW SHOW는 말그대로 보여주는 명령어이다. SHOW DATABASES; 위와 같이 입력 시 현재 서버에 어떤 DB가 있는지 확인할 수 있다. 명령어를 실행 시 위와 같은 결과를 얻을 수 있다. 이렇게 얻은 DB명들을 이용하기 위해서 USE를 이용해 줄 수 있다. 만약 DB를 USE 중이라면 SHOW TABLES 를 통해 테이블 이름을 알아 낼 수 있다. 만약 USE world를 통해서 world DB를 이용 중 일때 다음과 같은 쿼리.. MySQL 이란? https://www.youtube.com/watch?v=vgIc4ctNFbc 해당 강의을 많이 참고하였습니다! 특징과 개념 MySQL은 가장 널리 사용되는 관계형 데이터베이스 관리 시스템(RDBMS)으로, 오픈 소스에 다중 사용자와 다중 스레드를 지원한다. SQL 자체는 Structed Query Language의 약자로 RDBMS의 데이터 관리를 위해 설계된 언어를 뜻한다. C계열과, 자바, PHP 등 다양한 언어를 위한 API를 제공하며 다양한 운용체제에서 사용이 가능하다. DML, DDL, DCL 등으로 분류할 수 있으며 이 기능들을 수행하기 위해 만들어진 언어이다. 다른 프로그래밍 언어와는 달리 RDBMS에 접속하기 위한 목적으로만 사용된다. DML (Data Manipulation Langua.. 이전 1 다음