yum install maria*
mysql port : 3306
mysql -u root -p
(비번 X 엔터) ->linux root와 상관 x[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
- 저장 -> service mariadb restart
- mysql -u root -p
- \s 혹은 show variables like 'c%';
- 전부 utf8로 나오는것 확인
MYSQL 세계에서 가장 많이 씀 (GPL정책과 GNU저작권) (win/linux)
postgresql 오라클과 가장 가까운 오픈DBMS
mariaDB GPLv2 라이선스
MSSQL windows 플랫폼 (win) 기본적으로 무료 // 2012부터 core라이센스 적용 즉 유료
ORACLE 엔터프라이즈급 DB관리 시스템 가장 오래되고 세분화된 DB 기업 DB시장 절반 이상 코어당 라이센스 적용 → 가장 많이 사용
DB2 IBM장비에서 사용하는 전용 DB - 현재 DB4까지 사용
명령문 DB TABLE
생성 create O O DDL
삭제 drop O O
보기 show O O
사용 use O X
정보 desc X O
삽입 insert X O DML
수정 update X O
삭제 delete X O
선택 select X O
DDL (생성 정의 삭제 ) (data definition language) < DB, TABLE>
DML (데이터 수정 = 값 삽입) < TABLE >
DCL (데이터 제어)
스키마 ( 데이터 구조를 정의 ) = schema (준비물) → 보안에서 중요 → 헤더와 같은 역할..(DB 와 table 정보가 담겨있음)
SEVAS
no 이름 수강과목 성적
외부 스키마 → (사용자가 사용하는) 질의나 프로그래밍 언어를 이용해서 접근하는 데이터 베이스
[ no 이름 수강 과목 성적 ]
개념 스키마 → 개체, 데이터, 유형, 관계, 사용자, 연산, 제약조건 등을 정의 = (desc 에서 나오는 필드 타입 형식 등이 개념적 스키마 )
[ no int(2) 이름 char(10) 수강 과목 varchar(20) 성적 int(3)]
내부 스키마 → 물리적 저장 구조에 대한 정의 = 데이터 메모리 , DB의 length값 필드들의 바이트와 osffest인덱스 등등 용량으로 표현되는 것들 = 컴퓨터 처리를 위해 필요
int = 4byte
문자 = 1byte유니코드 = 2byte
sevas length=10
no byte(8) offset=0
이름 byte(10) offset=8
수강과목 byte(2) offset=10
데이터 베이스별 용량
SELECT table_schema AS 'sevas',
ROUND(SUM(data_length+index_length)/1024/1024, 1) AS 'Size(MB)'
FROM information_schema.tables
GROUP BY table_schema
ORDER BY 2 DESC;
전체 용량조회
SELECT ROUND(SUM(data_length+index_length)/1024/1024, 1) AS 'Used(MB)',
ROUND(SUM(data_free)/1024/1024, 1) AS 'Free(MB)'
FROM information_schema.tables;
테이블 별 용량 size 조회
SELECT table_name AS 'sevas',
ROUND(SUM(data_length+index_length)/(1024*1024), 2) AS 'All(MB)',
ROUND(data_length/(1024*1024), 2) AS 'Data(MB)',
ROUND(index_length/(1024*1024), 2) AS 'Index(MB)'
FROM information_schema.tables
GROUP BY table_name
ORDER BY data_length DESC;
DB보기 show databases;
DB 생성 (create) create database korea;
DB 삭제 (drop) drop database korea2;
DB 이동 (use) use korea
5.정보 보기 \s
table 확인 show tables;
tables 생성
MariaDB [korea]> create table class (
-> id varchar(40),
-> age int(2),
-> atk int(2)
-> );
table 포멧 확인
describe class;
desc class;
테이블 삭제 drop table class2;
alter table class drop id;
alter table class modify age varchar(20);
alter table class change age 나이 int(2), change atk 공격 int(2);
alter table class add primary key(이름),add unique index (순번);
drop index 순번 on class;
alter table class drop primary key;
alter table class modify 이름 varchar(20) null;
create table sevas3 (
no int unsigned auto_increment,
id varchar(20),
name varchar(20) not null,
class varchar(20) default 'student',
address text not null,
reg_date datetime,
index (id),
primary key(no,id));
alter table class drop primary key;
alter table class drop primary key;
값만 삭제insert into [테이블명] (칼럼명,칼럼명) values ('값','값');
update [테이블] set 칼럼='값' where 칼럼 [연산] '값';
update class set 공격='9' where 나이 >= 30;
update class set 방어='9' where 이름 like '영%';
delete from class where 이름='korea';
select * from class;
전체 내용 확인select 이름,나이 from class;
이름 나이만 확인select 이름,나이 from class where 이름='sevas';
sevas의 이름 나이 확인select * from class order by 사번 desc;
내림차순select * from class order by 사번 asc;
오름차순select * from class where 나이='23' and 방어='7';
select * from class where 나이='23' or 방어='7';
select 이름, 사번,나이 from class where 나이 like '%2%' && 공격>='60' order by 사번 asc limit 2,2;
select 이름, 사번, (나이+20) from class where 나이 like '%2%' && 공격>='60' order by 사번 asc limit 2,2;
select 이름, 사번, (나이+20) as 나이 from class where 나이 like '%2%' && 공격>='60' order by 사번 asc limit 2,2;