본문 바로가기

IT 엔지니어/Linux server

DBMS

[DBMS]

데이터 관리시스템으로 특정 언어로 데이터의 집합과 통신 필요

SQL 데이터간 소통 가능 사용자가 통신 가능

데이터베이스간 테이블 공유 가능/테이블명 변경통해서

 

데이터를 담는 그릇 =테이블

 

데이터베이스 관점으로

KBS 웹사이트=앱=사용자=클라이언트

 

DBMS >  DB >  table > field

필드의 집합 = 테이블

테이블의 집합 = DB

DB의 집합 = DBMS

 

  1. DBMS 설치  # dnf -y install mariadb*
  2. 서비스 시작  # systemctl restart mariadb
  3. DB 접속
    1. [명령어] [패스워드] [사용자] [DB명]
    2. mysql -p mysql 
      1. 쿼리 명령어
        1. DDL / Definition
                        create drop alter
      1. DML / Manipulation
                        insert select
      1. DCL / Control
                       add modify
      • DB 전환
      • mysql -> pse [database]
      • use pse
      • use mysql
      • 세미콜론 없어도 접속 가능
      1. DB 생성 및 확인
      create databse db; / 명령어 지시자 DB명; show [ DB 명] / show databases;
  1. 테이블 생성 및 확인

create table tbl; / [테이블명] 컬럼까지 생성 필요
예약어 사용 불가 / table,sql 컬럼 생성으로 필드 생성 필드만 생성으로 컬럼 형성
create table tbl(
-> num int,
-> id char(10) not null, // 무조건 값 입력해줘야 한다 // insert into table명 values(num,not null,
-> name char(10) default 0 / ’문자 ’ , /// 디폴트 값 0 혹은 문자로 생성 -
> addr varchar(30) ); var=동적 변화 / 가변형 show tables;

  1. 필드 확인

describe tbl; / desc [Table명];

  1. 테이블 및 DB 삭제

drop table [tbl]; / [테이블명] 명령어 대소문자 미구분 테이블명,DB명 대소문자 구분

 

테이블 삭제 시 복수 삭제 가능

DB 삭제 시 개별 삭제만 가능 확인

 

 

 

  1. 데이터 입력 및 확인

insert into [usrtbl] values (1,'pse','park','daejeon'); 필드 순서대로 입력 / [테이블명] values ( 숫자,'문자' );
insert into usrtbl(num,name) values( 2 , 'pse' );
insert into usrtbl(not null 에 해당 되는 레코드 명 입력 필수) values(null(auto_incrementd의 경우), 값 입력 필수 ) select [ * ] from [usrtbl]; [ 필드명 ] [테이블명]

 

 

 

디폴트 값 입력 시, 입력 불필요

null yes인 경우, 빈칸으로 입력 가능

 

select * from abc;

select ID from abc;

select ‘ABC’ from abc; // 필드명 검색 가능

 

 

  1. Extra 입력
    1. create table [테이블명] ( no int not null auto_increment primary key, id char(5), name char(6));
    2. insert into [테이블명] values(null,'ddd','fff')

 

 

  1. 필드 칼럼 추가
    1. alter table usrtbl add age int; // 마지막 열 추가
    2. alter table usrtbl add num int first; // 1번째 열 추가
    3. alter table usrtbl add age2 int after name; // 지정한 필드 아래에 추가
  2. 필드 삭제
    1. alter table usrtbl drop age;
    2. alter table eee drop number,add age int;
    3. alter table eee drop sk ,drop num
    4. alter table eee modify num int default '0'; // 디폴트 값 변경
  3. 필드 변경
    1. alter table usrtbl change no age7 int; // no를 age7 int로 변경 // 타입 필수 입력
    2. alter table ccc rename ddd /// 테이블명 변경
    3. alter table usrtbl modify name char(14); // 속성만 변경 가능
    4. alter table usrtbl modify age int default 0; // 타입 입력 필요
    5. alter table usrtbl modify name char(14) not null; // 타입 숫자까지 입력 필요
    6. alter table usrtbl modify number int not null;
    7. alter table usrtbl modify age int not null auto_increment primary key ;
    8. alter table bbb modify age int auto_increment primary key;
  4. 테이블 복사
    1. create table usrtbl7 (select * from usrtbl); /// usrtbl 테이블을 usrtbl7으로 모든 내용 복사 후 테이블 생성
    2. 속성 복사 누락 확인하였으나, 재시도 후 누락없이 생성 확인
  1. 테이블 업데이트
    1. alter table usrtbl drop primary key;
  2. update usrtbl set id='200' where age='2';
    1. age값이 ‘2’인 레코드에서 id 값을 ‘200 ’ 으로 변경한다

 

 

[Mariadb 한글 사용 설정]

 

설정-키보드- hangul - 추가

 

/etc/my.cnf.d

vi mariadb-server.cnf

 

[mysqld]

init_connect = "SET collation_connection = utf8_general_ci"

init_connnet = "SET NAMES utf8"

character-set-server = utf8

collation-server = utf8_general_ci

 

init_connect=SET collation_connection=utf8_general_ci

init_connect=SET NAMES utf8

character-set-server=utf8

collation-server=utf8_general_ci

 

 

 

[client]

/etc/my.cnf.d

 

client.cnf

default-character-set = utf8

 

 

mysql-clients.cnf

[mysql]

default-character-set = utf8

[mysqldump]

default-character-set = utf8

 

 

'IT 엔지니어 > Linux server' 카테고리의 다른 글

DHCP 서버  (0) 2025.03.06
리눅스 FTP part 3  (0) 2025.03.05
Linux DNS server  (0) 2025.03.03
Linux FTP - 1  (0) 2025.02.28
리눅스 FTP 서버 심화  (0) 2025.02.28