1. brew 설치한다.


2. brew update


3. brew install mariadb

mysql.server status  # 상태 확인

mysql.server stop     # 정지

mysql.server start     # 시작

mac의 경우, pc가 부팅되면 MariaDB가 정지된다. 그래서 자동으로 실행될 수 있도록 링크를 걸어야한다.

MariaDB plist를 LaunchAgents 디렉토리에 링크를 걸어두면 자동으로 실행된다.

ln -sfv /usr/local/opt/mariadb/*.plist ~/Library/LaunchAgents

그런데 위의 방법으로 링크를 걸어두면 mysql.server stop 명령을 내림과 동시에 다시 시작이 된다. 의도적으로 종료를 하여도 다시 시작되어버려서 관리상 어려움이 있다. 이러한 문제는 아래의 명령으로 대체하면 된다. 

alias mariadb_start='launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist'         # 시작

alias mariadb_stop='launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist'     # 종료


4. mysql.sock 

몇몇의 프로그램들은 /var/mysql/mysql.sock 파일을 찾는다. 그런데 mac은 /tmp/mysql.sock에 존재한다. 그러므로 저 위치에 링크를 걸어두면 된다. 

sudo mkdir /var/mysql

sudo ln -sv /tmp/mysql.sock /var/mysql/mysql.sock


5. my.cnf 파일 경로

mysql --help 로 확인 가능

ex) mysql --help | more


6. 외부에서 mariadb 접속

기본적으로 127.0.0.1:3306 으로 되어있을 것이다. 헌데 이렇게 되면 localhost 만이 접속 가능하다. 외부에서도 접속을 허용하려면, home-brew.mxcl.mariadb.plist 의 내용을 수정해야 한다. 

 <string>--bind-address=127.0.0.1</string> 이 부분의 ip주소를 0.0.0.0 으로 바꿔주고 mariadb를 재시작한다.

'Programming > DataBase' 카테고리의 다른 글

DELETE 문, UPDATE 문  (0) 2016.08.24
keywork BETWEEN, IN  (0) 2016.08.15
Basic  (0) 2016.07.31
SQL 데이터 조작문 - 데이터 삽입  (0) 2014.09.08
SQL 데이터 조작문 - 데이터 갱신  (0) 2014.09.08
Posted by scii
:

delete 규칙

- 한 열이나 여러 열의 값을 지우는 데에 delete를 사용할 수 없다.

- where 절에 따라 한 행이나 여러 행들을 지울 수 있다.


ex) DELETE FROM your_table

-> 이렇게하면 테이블의 모든 행이 지워진다.


ex) DELETE FROM your_table WHERE act='aa';

-> your_table의 act값이 aa면 그 행이 지워진다.



update 규칙

- 한 열 또는 열들의 값을 변경하는 데 update를 사용할 수 있다.

ex) UPDATE your_table SET first_column = 'newvalue', second_column = 'another_value';

- where 절에 따라 한 행 또는 여러 행을 변경하는 데에 update를 사용할 수 있다.

'Programming > DataBase' 카테고리의 다른 글

[MAC] MariaDB 설치  (0) 2018.07.08
keywork BETWEEN, IN  (0) 2016.08.15
Basic  (0) 2016.07.31
SQL 데이터 조작문 - 데이터 삽입  (0) 2014.09.08
SQL 데이터 조작문 - 데이터 갱신  (0) 2014.09.08
Posted by scii
:

BETWEEN은 < 와 > 이 아니고, <= 와 >= 기호를 사용하는 것과 같다.

ex) SELECT dname from dinfo WHERE calo BETWEEN 30 and 60;

ex) SELECT dname from dinfo WHERE calo >= 30 and calo <= 60; 이 두개의 명령은 같다.


OR를 여러 개 쓰지 말고, IN 이라는 키워드를 사용해서 쿼리를 간단하게 할 수 있다. 

IN 을 괄호 안에 여러 값과 함께 사용하여 열의 값이 괄호 안의 값들 중 하나와 일치하면 그 행 또는 지정된 열들이 반환된다.

즉, python의 in 키워드와 같다.

ex) SELECT dname from bbok WHERE ratio IN ('inno', 'fabul', 'del', 'pre');

ex) SELECT dname from bbok WHERE ratio='inno' or ratio='fabul' or ratio='del' or ratio='pre'; 이 두개의 명령은 같다.

IN 키워드 앞에 NOT을 붙이면 반전된다.

'Programming > DataBase' 카테고리의 다른 글

[MAC] MariaDB 설치  (0) 2018.07.08
DELETE 문, UPDATE 문  (0) 2016.08.24
Basic  (0) 2016.07.31
SQL 데이터 조작문 - 데이터 삽입  (0) 2014.09.08
SQL 데이터 조작문 - 데이터 갱신  (0) 2014.09.08
Posted by scii
:

Basic

Programming/DataBase 2016. 7. 31. 04:39 |

데이터 베이스는 테이블을 보관하고 있다.

테이블은 데이터를 열과 행으로 구조화하여 보관하고 있는 데이터베이스의 구성 요소이다.

테이블의 행은 테이블 내의 한 객체에 대한 모든 정보를 포함하고 있다. 


열은 테이블에 저장된 하나의 데이터이다.

행은 한 객체에 대한 속성들을 나타내는 열 집합이다.

열과 행이 모여 테이블을 구성한다.


열(column) = 필드

행(row) = 레코드


CREATE DATABASE

데이터베이스를 만듦.

USE DATABASE

테이블을 만들고 조작하기 위해 데이터베이스로 들어가는 명령이다.

CREATE TABLE

테이블을 만듦.

NULL과 NOT NULL

분류와 검색을 하려면 어떤 열이 NULL값을 가지면 안 되는지 알아야 한다. 그리고 테이블을 만들 때 그 열을 NOT NULL 로 셋팅해야 한다.

DEFAULT

열에 대한 디폴트 값을 정하고, 레코드 삽입 시 그 열에 대한 값을 넣지 않으면 디폴트 값이 사용된다.

DROP TABLE

테이블을 지운다.

INSERT INTO

테이블에 값을 할당한다.


CHAR(10) 와 VARCHAR(10) 의 차이점

- CHAR(10)는 만약, 'aa' 가 입력되면 aa와 그 뒤에 공백 8개가 생성된다. 

- VARCHAR(10)는 만약, 'aa' 가 입력되면 딱 'aa'가 들어간다. 왜냐하면, 가변걸이 문자열 변수이기 때문이다.


그래서, 사번번호나 아이디, 그리고 우편번호 등을 할당할때는 CHAR를 사용하는 것이 좋을 선택일 것이다!!


'Programming > DataBase' 카테고리의 다른 글

DELETE 문, UPDATE 문  (0) 2016.08.24
keywork BETWEEN, IN  (0) 2016.08.15
SQL 데이터 조작문 - 데이터 삽입  (0) 2014.09.08
SQL 데이터 조작문 - 데이터 갱신  (0) 2014.09.08
SQL 데이터 조작문 - 데이터 검색  (0) 2014.09.07
Posted by scii
:


데이터의 삽입

기존 테이블에 행을 삽입할 경우에는 다음과 같은 형식의 insert 문을 사용한다.

insert

into 테이블[(열_이름_리스트)]

values (열값_리스트);

또는

insert

into 테이블[(열_이름_리스트)]

select문;

# 위의 첫 번째 형식은 행을 직접 삽입하는데 사용되고,

두번째 형식은 부속 질의문인 select문을 실행하여 그 결과(일반적으로 복수의 열) 를 지정된 테이블에 삽입하는 경우에 사용한다. 

열의 값과 열의 이름은 그 명시된 순서대로 일 대 일로 대응한다. 만일 열의 이름을 명시하지 않으면 이 테이블 정의문에 명시된 모든 열이 명시된 것으로 취급된다.


레코드의 직업 삽입

query: 학번: 600, 이름: 김 연아, 학년: 1, 학과: 후디니인 학생을 삽입하라.

insert

into student(sno, name, year, dept)

values (600, '김 연아', 1, '후디니');

# 위 예와 같이 학생 테이블에 있는 열의 이름이 모두 명시되고 그 순서가 학생 테이블 정의문에 명시된 순서와 같은 경우에는 다음과 같이 열이름 명시를 생략한 삽입문과 동등하다.

insert

into student

values (600, '김 연아', 1, '후디니');

# 만일 학과의 이름을 모든다고 하면 '학과'에 해당하는 난을 공백으로 남겨 두면 된다. 이때 이 값은 NULL 값으로 취급된다. 

그렇지 않으면 다음과 같이 삽입하려는 데이터값의 열이름과 함께 일 대 일로 명시해도 같은 결과가 된다.

insert

into student(sno, name, year)

values (600, '김 연아', 1);

# 하나의 insert문으로 여러 개의 행을 삽입할 수 있는데 이때는 한 행에 해당하는 값들을 괄호로 묶어 표시하면 된다.


부속 질의문을 이용한 레코드 삽입

query: 학생 테이블에서 컴퓨터과 학생의 학번, 이름, 학년을 검색하여 테이블 컴퓨터(computer)에 삽입하라.

insert

into computer(sno, name, year)

select sno, name, year

from student

where dept = '컴퓨터';

# 이 예에서는 테이블 컴퓨터가 존재하고 적어도 학번, 이름, 학년 열을 가지고 있다는 것을 가정하였다. 

만일 그렇지 않은 경우에는 이 테이블을 먼저 create table 문을 이용하여 생성한 다음 삽입해야 된신다. 이 질의문의 실행은 into 다음의 부속 질의문(select)을 먼저 실행하고 그 검색 결과를 전부 컴퓨터과 테이블에 삽입한다.


'Programming > DataBase' 카테고리의 다른 글

keywork BETWEEN, IN  (0) 2016.08.15
Basic  (0) 2016.07.31
SQL 데이터 조작문 - 데이터 갱신  (0) 2014.09.08
SQL 데이터 조작문 - 데이터 검색  (0) 2014.09.07
데이터베이스의 개요  (0) 2014.09.07
Posted by scii
:


데이터의 갱신

기존 레코드의 열 값을 변경하기 위해서는 다음과 같은  update 명령문을 사용한다.

update 테이블

set {열_이름 = 산술식}

[where 조건];

# 새로 변경되는 값은 산술식이나 NULL(허용이 되는 경우에만)이 될 수 있다. 

where 절이 명시되면 조건을 만족하는 모든 레코드들이 set 절에 지시된 대로 변경된다.


하나의 레코드 변경

query: 학번이 300인 학생의 학년을 2로 변경하라.

update student

set year =2

where sno = 300;


복수의 레코드 변경

query: 컴퓨터과 과목의 학점(creadit)을 1학점씩 증가시켜라.

update course

set creadit = credit + 1

where dept = '컴퓨터';


부속 질의문을 이용한 변경

query: 컴퓨터과 학생의 기말 성적을 5점씩 감점하라.

update enrol

set final = final - 5

where sno in

(select sno

from student

where dept = '컴퓨터');


query: 4학년 학생의 학과를 '데이타베이스' 과목을 개설한 학과로 갱신하라.

update student

set dept = (select dept

from course

where cname = '데이터베이스')

where year = 4;



'Programming > DataBase' 카테고리의 다른 글

keywork BETWEEN, IN  (0) 2016.08.15
Basic  (0) 2016.07.31
SQL 데이터 조작문 - 데이터 삽입  (0) 2014.09.08
SQL 데이터 조작문 - 데이터 검색  (0) 2014.09.07
데이터베이스의 개요  (0) 2014.09.07
Posted by scii
:


데이터 검색

SQL 검색문의 기본적인 구조

select 열_리스트

from 테이블_리스트

where 조건

예를 들어, '컴퓨터과 학생의 이름(name)과 학번(sno)을 검색하라는 검색문은 다음과 같이 표현한다.

select name, sno

from student

where dept = '컴퓨터';


테이블의 열 전부를 검색하는 경우

select *

from student;


조건 검색

query: 학생(student) 테이블에서 학과(dept)가 '컴퓨터'이고 학년(year)이 4인 학생의 학번(sno)과 이름(name)을 검색하라.

select sno, name

from student

where dept = '컴퓨터' and year = 4;

# 일반적으로 where절에 나오는 조건식에는 비교 연산자 ==, !=, >=, <=, >, < 등과 불리언 연산자 and, or 그리고 not 을 사용할 수 있다. 또한 필요한 경우에 괄호를 사용할 수 있다.


순서를 명시하는 검색

query: 등록(enrol) 테이블에서 중간성적(midterm)이 90점 이상인 학생의 학번(sno)과 과목번호(cno)를 검색하되 학번(sno)에 대해서는 내림차순으로, 또 같은 학번에 대해서는 과목번호(cno)의 오름차순으로 검색하라.

select sno, cno

from enrol

where midterm >= 90

order by sno desc, cno asc;

# 일반적으로 검색 결과는 시스템이 정하는 순서에 따라 출력된다. 그러나 사용자가 검색 결과의 순서를 오름차순(asc) 이나 내림차순(desc)을 명시할 수 있다. 여기서 처음 나온 sno는 1차(주) 정렬이고, 두 번째 나온 cno는 2차(부) 정렬이다. 2차 정렬은 1차 정렬 범위내에서 정렬시키는 것을 말한다.


산술식과 문자 스트링이 명시된 검색

query: 등록(enrol) 테이블에서 과목번호(cno)가 'C312'인 중간성적(midterm)에 3점을 더한 점수를 학번(sno), '중간성적 =' 이란 텍스트를 갖는 시험, 그리고 점수라는 열이름으로 검색하라.

select sno as '학번', '중간시험=' as 시험, midterm+3 as '점수'

from enrol

where cno = 'C312';

# 일반적으로 select 절에는 열이름뿐만 아니라 문자 스트링을 명시할 수 있으며 열이름, 상수 그리고 산술 연산자로 구성된 산술식이 나타날 수 있다. 필요한 경우에 괄호를 산술식에 사용할 수 있다. 

"as  학번" 이라는 명시는 sno의 별명을 지정한 것이다. "as 시험"과 "as 점수"가 명시되지 않았다면 열이름이 공백이 되었을 것이다 .뒤에 나오는 질의문 예는 편의상 모두 적절히 별명이 명시된 것으로 가정한다.


복수 테이블로부터의 검색

query: 과목번호(cno) 'C413'에 등록한 학생의 이름(name), 학과(dept), 성적(grade)를 검색하라.

select student.name, student.dept, enrol.grade

from student, enrol

where student.sno = enrol.sno 

and enrol.cno = 'c413';

# 관계 데이타베이스 시스템이 다른 유형의 데이타베이스 시스템에 비해 강력한 점은 둘 이상의 테이블을 조인할 수 있다는 것이다. 위의 예는 SQL에서 조인이 어떻게 표현되는가를 보여주고 있다. 

조인 검색은 FROM 절에 관련 테이블들을 여러 개 명시할 수 있다는 것이다. 이때 열이름이 모호하게 되면 열이름을 붙인 한정된 열이름을 써야 한다.

이 조인이 필요한 테이블을 SQL2에서는 사용자가 FROM절에 직접 명시할 수 있도록 하고 있는데 다음 세 가지 형태가 있다.

1. 테이블1 join 테이블2 on 조건식

2. 테이블1 join 테이블2 using(열_리스트)

3. 테이블1 natural join 테이블2

따라서 앞의 질의문을 이 형식으로 표현하면 다음과 같다.

select name, dept, grade

from student join enrol on (student.sno = enrol.sno)

where enrol.cno = 'C413';


select name, dept, grade

from student join enrol using(sno)

where enrol.cno = 'C413';


select name, dept, grade

from student natural join enrol

where enrol.cno = 'C413';

# 이 세 형식은 모두 그 의미가 동등하지만 표현에 약간의 차이가 있다. 

형식 1은 where절에서 명시하는 조인 조건을 from 절로 옮긴 것과 같다. 

형식 2는 열_리스트에 나열된 공통 열을 이용하여 동등 조인한 것인데 공통 열은 결과 테이블에 한 번씩 다른 나머지 열보다 먼저 나타난다.

형식 3은 조인되는 두 테이블에 공통되는 모든 열을 포함시킨 동등 조인으로 공통 열은 결과 테이블에 한 번씩 왼쪽에 먼저 나타난다.


자기 자신의 테이블에 조인하는 검색

query: 같은 학과 학생들의 학번을 쌍으로 검색하라. 단, 첫 번째 학번은 두 번째 학번보다 적게하라.

select s1.sno, s2.sno

from student s1, student s2

where s1.dept = s2.dept

and s1.sno < s2.sno;


집단 함수(aggregate function) 를 이용한 검색

'학생수는 몇 명인가?' 하는 간단한 잘의어는 지금까지 나열한 것으로 표현할 수 있다. 이런 문제를 해결하기 위하여 SQL은 특별히 집단 함수 또는 열함수(column function) 를 제공하고 있다. 이 집단 함수에는 count, sum, avg, max, min이 있는데 이들의 기능들은 한 열의 값 집합에 적용하여 다음과 같은 결과를 생성한다.

count : 값의 개수

sum : 값의 총계

avg : 평균 값

max : 최대 값

min : 최소 값

물론 sum, avg는 수값에만 적용된다.


query: 학생 테이블에 학생수가 얼마인가를 검색하라.

select count(*) as 학생수

from student;

# count(*)의 처리 대상은 행(튜플)의 집합이고 그 결과는 그 집합에 속하는 행의 수이다. 이때 중복되는 행도 함께 포함된다.


query: 학번(sno) 이 300인 학생이 등록한 과목(cno)은 몇 개인가?

select count(distinct cno)

from enrol

where sno = 300;

# 수를 계산하려면 count(distinct 열_이름) 으로 명시하면 된다. 명시된 열에 속한 값의 집합에서 상이한 값만을 대상으로 sum이나 avg를 구할 때는 "DISTINCT"를 명시해야 한다.


query: 과목 C413에 대한 중간 성적의 평균은 얼마인가?

select avg(midterm) as 평균점수

from enrol

where cno = 'C413';

# avg 함수 결과값의 타입은 해당 열의 데이타 타입과 같다.


Group By를 이용한 검색

query: 과목별 기말 성적의 평균을 검색하라.

select cno, avg(final) as '기말평균'

from enrol

group by cno;

# group by는 논리적으로 from 절에 있는 테이블을 group by절에 명시된 열의 값에 따라 그룹으로 분할한다. 물론 그렇다고 테이블이 데이타베이스내에서 물리적으로 분할되는 것은 아니다.

위의 예에서는 등록(enrol) 테이블을 5개의 그룹(C123, E123, ...)으로 분할하여 각 그룹별로 select 문을 실행한다. 이와 같이 하나의 테이블을 접근하여 몇 개의 그룹으로 만들 수 있으나 group by 자체는 어떤 순서를 명시하지는 않는다.

따라서 과목별 순서를 명시하려면 order by cno절을 group by절 다음에 첨가하면 된다.


having 을 사용한 검색

query: 세 사람 이상 등록한 과목의 기말 평균 성적을 검색하라.

select cno, avg(final) as 평균

from enrol

group by cno

having count(*) >= 3;

# having은 각 그룹의 구성 요건을 명시한다. 만일 group by절이 생략되면 테이블 전체를 하나의 그룹으로 취급한다.


부속 질의문(sub query)을 사용한 검색

query: 과목 번호(cno) 'C413'에 등록한 학생의 이름(name)을 검색하라.

select name

from student

where sno in

(select sno

from enrol

where cno = 'C413');

# 부속 질의문은 다른 질의문에 중첩되어 사용된 검색문으로서 select-from-where-group by-having의 형태를 취한다. 위의 예에서 부속 질의문은 in 다음에 사용되었는데 이때 부속 질의문은 검색 결과로 학번값의 집합 {100, 300, 400} 을 생성하고 in은 집합의 멤버십 연산자로 해석할 수 있다. 

그러므로 위의 질의문은 다음과 같은 질의문의 뜻이 된다.

select name

from studnet

where sno in (100, 300, 400);

또한 위 원래의 질의문은 조인을 사용하는 질의문으로 표현할 수 있다. 

select student.sname

from studnet, enrol

where student.sno = enrol.sno

and enrol.cno = 'C413';

이 원래 질의에 대한 이 두 가지 형색의 질의문은 모두 맞다. .이것은 하나의 질의에 대한 표현 형식이 여러 가지 있을 수 있다는 것을 뜻한다. 다만 어느 형식을 쓰느냐 하는 것은 사용자의 기호에 달려 있다. 


query: 과목번호 'C413'에 등록하지 않은 학생의 이름을 검색하라.

select name

from student

where sno not in 

{select sno

from enrol

where cno = 'C413');

# 부속 질의문은 in 이외의 경우에도 사용할 수 있다. 


query: 학생 김 연아와 같은 학과에 속하는 학생의 이름과 학과를 검색하라.

select name, dept

from student

where dept = 

(select dept

from student

where name = '김 연아');


like를 사용하는 검색

query: 과목번호(cno)가 c로 시작되는 과목의 번호와 과목이름(cname)을 검색하라.

select cno, cname

from course

where cno like 'c%';

# like 프레디킷은 열 이름과 함께 스트링 상수를 명세한 검색 조건이다.

이 예에서 사용된 '%' 는 c로 시작하기만 하면 어떤 길이의 어떤 문자 스트링도 관계없다는 뜻이다. 

만일 sname like s'__'  라 하면 s로 시작되는 세 문자를 말하고, sname like '%s__' 라 하면 스트링 끝에서 세 번째가 s인 문자열을 한다. 또 단순히 sname like '%s%' 라 하면 s가 포함된 문자열을 말한다.


NULL을 사용한 검색

학생 테이블에 학번이 600, 이름이 김 연아, 학과가 NULL인 튜플이 있다고 가정한다.

query: 학과(dept)가 NULL인 학생의 학번과 이름을 검색하라.

select sno, snmae

from student

where dept is NULL

# 일반적으로 NULL을 검색 조건속에 명시할 때는 '열_이름 is [not] NULL' 의 형식만 허용된다. 

열_이름 = NULL의 형식은 불법적인 것으로 허용되지 않는다. 또한 널값은 조건식을 실행할 때 어떤 다른 값과 비교하면 어떤 비교 연산자이든지간에 거짓으로 된다. 


exists를 사용하는 검색

query: 과목 'C413'에 등록한 학생의 이름을 검색하라.

select name

from student

where exists

(select *

from enrol

where sno = student.sno

and cno = 'C413');

# exists는 존재 정량자(existential quantifier)로서 exists 다음에 나오는 검색문의 실행 결과 검색된 튜플이 존재하는가를 검사한다. 따라서 이 부속 질의문은 exists(select * from) 검색문을 실행한 뒤 그 결과가 공집합이 아니면 참이고, 공집합이면 거짓으로 판정한다.

위의 예에서는 각 학생이름에 대한 학번을 검색한 뒤 그 학번에 연관된 등록(enrol) 테이블에 exists 검색문을 수행해서 참일 때 그 학생이름을 결과에 속하도록 한다. 따라서, 이 질의문은 사실상 '학생 테이블에서 학생이름을 검색하는데 어떤 학생이냐 하면 과목 'C413'에 등록하여 등록(enrol) 테이블에 튜플이 존재하는 그런 학생이다.' 라는 뜻이 된다.


query: 과목 'C413'에 등록하지 않은 학생의 이름을 검색하라.

select name

from student

where not exists

(select *

from enrol

where sno = student.sno

and cno = 'C413');


union 이 관련된 검색

query: 3학년이거나 또는 과목 'C324'에 등로한 학생의 학번을 검색하라.

select sno

from student

where year = 3

union

select sno

from enrol

where cno = 'C324';

# union은 일반 집합론의 합집합과 같다. 따라서 union이 사용되면 결과 테이블에서 중복되는 튜플은 제거된다.


'Programming > DataBase' 카테고리의 다른 글

keywork BETWEEN, IN  (0) 2016.08.15
Basic  (0) 2016.07.31
SQL 데이터 조작문 - 데이터 삽입  (0) 2014.09.08
SQL 데이터 조작문 - 데이터 갱신  (0) 2014.09.08
데이터베이스의 개요  (0) 2014.09.07
Posted by scii
:


데이터베이스의 구성 요소

데이터베이스의 구성 요소에는 테이블, 레코드, 필드 이렇게 3가지가 있다. 

이  름 

학  번 

수강과목 

김연아 

200014005 

Houdini

손나은 

200017055 

C++ 


테이블

- 표 자체를 말함.

테이블은 필드들과 레코드들로 구성된 구성 요소인데 하나의 데이터베이스 테이블 내에 필드들과 레코드들이 존재하게 되는 것이다.

필드

- 이름, 학번, 수강과목을 나타내는 각각의 열(Column)을 '필드'라 부른다.

레코드

- 각 필드에 해당되는 첫 번째 사람의 데이터는 '김연아', '200014005', 'Houdini' 인데 하나의 행(Row)에 해당되는 데이터를 레코드라 한다.

즉, 레코드란 한 사람, 한 사람 분의 데이터를 의미한다. 


데이터베이스 관리 시스템(DBMS)

데이터베이스에 모아 놓은 데이터들의 저장, 읽기, 검색 등의 처리를 위해서는 전용 프로그램이 필요하게 되는데 이것을 데이터베이스 관리 시스템 즉, DBMS(Database Management System)라고 부른다.

DBMS는 사용자의 응용 프로그램과 데이터들의 저장소인 데이터베이스와의 연결을 도와주는 프로그램으로 생각하면 된다.

데이터베이스 프로그램인 MariaDB도 DBMS의 일종인데 이것 외에도 MSSLQ, Oracle, Infomix  등 많은 DBMS가 있다. MariaDB(MySQL) 을 사용하기 위해서는 데이터베이스 전용 컴퓨터 언어가 필요한데 이를 SQL(Structured Query Language) 이라고 한다.

SQL은 데이터를 정의하고 조작, 제어할 수 있는 테이블 형태로 데이터를 저장하는 것을 관계형 데이터베이스라고 하는데, 관계형 데이터베이스에서 데이터를 조작, 관리하는데 필요한 언어가 바로 SQL이다.


MariaDB(MySQL) 의 특징

- MariaDB는 공개 소프트웨어이므로 누구나 무료로 다운로드 받아 사용할 수 있다. 그러나 상업적인 목적으로 MariaDB를 사용하려면 라이센스를 별도로 구매하여 사용하여야 한다.

- MariaDB는 DBMS 중에서 처리 속도가 상당히 빠르다.

- MariaDB는 설치가 쉽고 사용하기 쉽기 때문에 초보자라도 빠른 시일 내에 사용법을 익힐 수 있다.

- MariaDB는 대용량의 데이터를 처리할 수 있으며, 데이터 용량이 아무리 커도 손쉽게 처리할 수 있다.

- 보안성이 뛰어나다.


설치법

http://saelly.tistory.com/552


'Programming > DataBase' 카테고리의 다른 글

keywork BETWEEN, IN  (0) 2016.08.15
Basic  (0) 2016.07.31
SQL 데이터 조작문 - 데이터 삽입  (0) 2014.09.08
SQL 데이터 조작문 - 데이터 갱신  (0) 2014.09.08
SQL 데이터 조작문 - 데이터 검색  (0) 2014.09.07
Posted by scii
: