[리눅스] Database server
관계형 데이터베이스
개념 및 용어
관계형 데이터베이스의 개념
- 데이터베이스: 서로 관련성을 가진 데이터들을 데이터 간의 중복을 최소화해서 체계적으로 모아놓은 것
- 관계형 데이터베이스는 데이터를 테이블(표)로 표현
관계형 데이터베이스 관련 용어
- 데이터 : 각 항목에 저장되는 값이다.
- 테이블 : 데이터를 체계화하여 행과 열의 형태로 구성한 것으로 테이블 이름을 붙인다.
- 데이터베이스 : 관련 있는 데이터를 체계적으로 저장한 것으로 데이터는 테이블 형태로 저장된다.
- 데이터베이스에는 하나 이상의 테이블이 있을 수 있다. 데이터베이스 이름을 붙인다.
- 필드 : 테이블의 열을 의미하며 칼럼이라고도 한다.
- 레코드 : 테이블에 저장한 한 행의 정보를 의미하며 튜플(tuple)이라고도 한다. 한 행에는 여러 필드의 값이 저장될 수 있다.
- 키 : 레코드를 구성하는 필드에서 각 레코드를 구분할 수 있는 필드 값을 뜻한다.
- 예를 들어 학생 데이터를 구성하는 레코드라면 학번 필드가 키가 될 수 있다. 키로 선택된 필드의 값은 중복될 수 없다.
- 키는 기본 키(primary key)와 그 외 다른 키들이 있을 수 있다.
DBMS(Database Management System)
- 데이터베이스를 관리하기 위한 소프트웨어 또는 DB 서버(데이터베이스 서버)를 말한다.
- Mysql과 test DB는 시스템이 제공하는 DB, st_db는 사용자가 생성한 DB.
SQL 구문
SQL 문은 대소문자를 구별하지 않는다.(단, 테이블명은 예외) –예약어는 대문자, 사용자 입력 명령어는 소문자로 표시 : 가독성을 높이기 위함
- 명령의 끝에는 반듯이 ; 넣어준다.
DB와 관련된 SQL문
- DB이름 조회 > SHOW DATABASES ;
- 사용할 DB 지정 > USE db명 ;
- DB생성 > CREATE DATABASE db명 ;
- DB 삭제 > DROP DATABASE db명 ;
테이블 관련 SQL문
- 테이블 이름 조회 >SHOW TABLES ;
- 테이블 구조(형태)조회 > EXPLAIN 테이블명 ; 또는 DESC 테이블명 ;
- 테이블 생성 > CREATE TABLE 테이블명(필드명1 필드타입1, …)
- 테이블 삭제 > DROP TABLE 테이블명 ;
사용자 생성과 권한 설정 ***
MariaDB[None]> CREATE USER KIM IDENTIFIED BY ‘gachon1234’
- DEFAULT TABLESPACE users
- TEMPORARY TABLESPACE temp;
MariaDB[None]> GRANT CONNECT, RESOURCE, CREATE SESSION,
- CREATE VIEW TO KIM;
MariaDB[None]> FLUSH PRIVILEGES;
MariaDB에 데이터베이스 추가
- MariaDB[None]> CREATE DATABASE web ;
사용자 추가
- localhost , % (원격접속 사용자)
- MariaDB[None]> CREATE USER ‘user’@’localhost’ identified by ‘1234’ ;
- MariaDB[None]> CREATE USER ‘user’@’%’ identified by ‘1234’ ;
- MariaDB[None]> FLUSH PRIVILEGES ;
권한 부여
- MariaDB[None]> GRANT ALL PRIVILEGES ON web.* TO ‘user’@’localhost’ ;
- MariaDB[None]> GRANT ALL PRIVILEGES ON web.* TO ‘user’@’%’ ;
USER table 확인
- MariaDB[None]> SELECT host, user, password FROM user
현재 사용자 확인
- MariaDB[None]> use mysql ;
- MariaDB[mysql]> SELECT user, host FROM user ;
사용자 삭제 (kim)
- MariaDB[None]> DELETE FROM user WHERE user=‘kim’ ;
- MariaDB[None]> FLUSH PRIVILEGES;
- MariaDB[None]> FLUSH PRIVILEGES;
테이블 관련 SQL문
- 테이블 수정 >ALTER TABLE 테이블명 옵션 ;
- ALTER TABLE customer MODIFY name CHAR(20) ;
- ALTER TABLE customer CHANGE name fullname CHAR(20) ;
- ALTER TABLE customer ADD phone VARCHAR(20) after name ;
- ALTER TABLE customer DROP age ;
SQL 실습
MariaDB 설치 및 운영
MariaDB 실습
MariaDB 상태 확인
MariaDB 원격 접속
댓글남기기