[DBMS]
데이터 관리시스템으로 특정 언어로 데이터의 집합과 통신 필요
SQL 데이터간 소통 가능 사용자가 통신 가능
데이터베이스간 테이블 공유 가능/테이블명 변경통해서
데이터를 담는 그릇 =테이블
데이터베이스 관점으로
KBS 웹사이트=앱=사용자=클라이언트
DBMS > DB > table > field
필드의 집합 = 테이블
테이블의 집합 = DB
DB의 집합 = DBMS
- DBMS 설치 # dnf -y install mariadb*
- 서비스 시작 # systemctl restart mariadb
- DB 접속
- [명령어] [패스워드] [사용자] [DB명]
- mysql -p mysql
- 쿼리 명령어
- DDL / Definition
- DML / Manipulation
- DCL / Control
- DB 전환
- mysql -> pse [database]
- use pse
- use mysql
- 세미콜론 없어도 접속 가능
- DB 생성 및 확인
- 쿼리 명령어
- 테이블 생성 및 확인
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;
- 필드 확인
describe tbl; / desc [Table명];
- 테이블 및 DB 삭제
drop table [tbl]; / [테이블명] 명령어 대소문자 미구분 테이블명,DB명 대소문자 구분
테이블 삭제 시 복수 삭제 가능
DB 삭제 시 개별 삭제만 가능 확인
- 데이터 입력 및 확인
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; // 필드명 검색 가능
- Extra 입력
- create table [테이블명] ( no int not null auto_increment primary key, id char(5), name char(6));
- insert into [테이블명] values(null,'ddd','fff')
- 필드 칼럼 추가
- alter table usrtbl add age int; // 마지막 열 추가
- alter table usrtbl add num int first; // 1번째 열 추가
- alter table usrtbl add age2 int after name; // 지정한 필드 아래에 추가
- 필드 삭제
- alter table usrtbl drop age;
- alter table eee drop number,add age int;
- alter table eee drop sk ,drop num
- alter table eee modify num int default '0'; // 디폴트 값 변경
- 필드 변경
- alter table usrtbl change no age7 int; // no를 age7 int로 변경 // 타입 필수 입력
- alter table ccc rename ddd /// 테이블명 변경
- alter table usrtbl modify name char(14); // 속성만 변경 가능
- alter table usrtbl modify age int default 0; // 타입 입력 필요
- alter table usrtbl modify name char(14) not null; // 타입 숫자까지 입력 필요
- alter table usrtbl modify number int not null;
- alter table usrtbl modify age int not null auto_increment primary key ;
- alter table bbb modify age int auto_increment primary key;
- 테이블 복사
- create table usrtbl7 (select * from usrtbl); /// usrtbl 테이블을 usrtbl7으로 모든 내용 복사 후 테이블 생성
- 속성 복사 누락 확인하였으나, 재시도 후 누락없이 생성 확인
- 테이블 업데이트
- alter table usrtbl drop primary key;
- update usrtbl set id='200' where age='2';
- 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 |