=======
DML : Select, insert into, update, delete
DDL : create, drop, alter
DCL : grant, revoke
DML
DATA 수정
- where 로 조건을 지정하지 않으면 테이블 내 모든 레코드의 값이 변경됨
MariaDB> update <테이블명> set <컬럼명> = <수정데이터> [ , ... ] [ where <조건> ] ;
> update kor_mem set pass = '1q2w3e4r', age = 31 where id = 'test3' ;
> select * from kor_mem where id = 'test3';
DATA 삭제
- where 로 조건을 지정하지 않으면 테이블 내 모든 데이터가 삭제됨
MariaDB> delete from <테이블명> [ where <조건> ] ;
> delete from kor_mem where no = 4;
> select * from kor_mem;
- 모든데이터삭제
> delete from kor_mem;
> select * from kor_mem;
query 일괄처리
query 일괄처리
- 파일의 형태로 SQL 명령을 작성해서 저장한 뒤 DBMS에 바로 적용 시키는 방법
파일 생성
- 텍스트 파일에 처리할 SQL 명령을 작성한 후 저장
- 저장할 때 확장자를 .sql로 지정, 인코딩 형식을 UTF-8로 지정
DBMS 서버로파일이동
- 이동 방법은 상황에 따라 알아서 이동할 것
- wget , ftp , scp , USB 등..
일괄처리
# mysql –uroot–p
> show variables like ‘c%’; 문자집합 확인 (latin1 – 영어만 가능)
> create database naver_db default character set utf8 collate utf8_general_ci;
=>데이터베이스를 생성 하면서 CharacterSet 을 utf8로 지정
=>UTF-8 : 전 세계 언어에서 사용되는 문자들을 하나의 체계로 통합, Unicode를 위한 방식
> exit
# mysql < 파일명
# mysql
> use naver_db;
> desc member;
> select * from member; => 한글 내용이 있는 데이터 확인
DML 실습
- naver_db DB 의 member 테이블에서 작업
- 자신의 계정 추가(본인 입력 하고 싶은 임의 값 입력)
insert into member(id,name,sex,post_num,address,tel,age)
-> values('mimoo','밈미무','M','123-123','인천어딘가','789-7897','25');
- '배용진'의 모든 정보 출력
select * from member where name='배용진';
- 20대의 이름, 주소, 나이 출력
select * from member where age > 20 and age < 30;
- 남성의 이름, 나이, 성별, 전화번호, 아이디 출력
select * from member where sex='M';
- 30세 미만 또는 50세 이상 여성의 나이, 주소출력
select * from member where age > 30 and age < 50;
- 20대 또는 40대 남성의 나이, 아이디, 전화번호 출력
- 김씨 성을 가진 남자의 이름, 나이, 전화번호출력
select name, age, tel from member where name like '김__' and sex='M';
- 주소가 서울인 사람의 이름, 우편번호, 주소, 전화번호출력
select name, post_num, tel, address from member where address like '%서울%';
- 광주에 사는 50세 이상의 이름, 성별, 아이디 출력
select name, sex, id from member where age > 50 and address like '%광주%';
- 이름이 '수' 나 '숙' 으로 끝나는 50대의 성별, 이름, 나이 출력
select sex, name, age from member where name like '%수' or name like '%숙' and age >=50 and age < 60;
- 경기도에 사는 여성중 20대의 이름, 주소, 전화번호 출력
select name, address, tel from member where age >= 20 and age < 30 and address like '%경기%' and sex='w';
- 아이디의 세번째 자리가 p 나 k 인 사람의 아이디, 나이출력
select id, age from member where id like '__p%' or id like '__k%';
- ‘박철호’ 이사(주소 광주 에서 서울시 동대문구 왕십리로 변경)
update member set address = '서울시 동대문구 왕십리' where name='박철호';
- ‘이성현’ 회원 탈퇴(계정 정보 삭제)
delete from member where id='sr100';
DATA 조회 - 데이터자르기
- 테이블 내 조회된 데이터가 반환할 레코드 지정
> select * from <테이블 명> limit [개수];
> select * from <테이블 명> limit [위치],[개수];
> select * from member limit 2;
> select * from member limit 3,2; => 4/5번 출력
> select * from member limit 5,4; => 6~9번 출력
DATA 조회- 정렬
- 테이블 내 조회된 데이터를 지정된 컬럼을 기준으로 정렬
> select * from <테이블 명> order by [정렬 기준 컬럼] [DESC | ASC];
> select * from member order by no desc;
> select * from member order by age asc;
> select * from member order by age desc;
- 옵션을 안주면 오름차순이 기본이다.
- 내림차순으로 정렬 할때만 DESC를 준다.
DATA 조회 - DISTINCT
- 컬럼이나 레코드 조회시 중복된 행 제거
- 주로 중복이 제거된 (UNIQUE) 컬럼이나 레코드를 조회하는 경우 사용됨
> select distinct * from <테이블 명>;
> select sex from member; 중복 내용 출력
> select distinct sex from member; 중복 내용 배제 후 출력
DATA 조회 - 그룹핑
- 지정된 컬럼을 기준으로 데이터를 그룹 핑
MariaDB> select * from <테이블 명> group by [컬럼명] ;
> select sex, count(*), sum(age), avg(age), min(age), max(age) from member group by sex;
DATA 조회- HAVING 절
- GROUP BY 절과 함께 사용
- WHERE 절에서는 집계 함수를 사용할 수 없음
- HAVING 절은 집계 함수를 가지고 조건 비교시 사용
MariaDB> select * from <테이블 명> group by [컬럼명] having [조건] ;
- 직전 슬라이드 출력 내용중 sum(age)가 200보다 작은것에 대해서 출력할 경우 where(조건) 사용시 에러 발생
> select sex, count(*), sum(age), avg(age), min(age), max(age) from member group by sex where sum(age) < 200; 할 경우 에러 발생
- 집계 함수 사용 시 조건을 주려면 having을 사용 해야함
> select sex, count(*), sum(age), avg(age), min(age), max(age) from member group by sex having sum(age) < 200;
DCL(Data Control Language)
데이터제어어(DCL, Data Control Language)
- DB에 대한보안, 무결성, 복구 등 DBMS를 제어하기 위한 언어
- GRANT(권한할당), REVOKE(권한해제), COMMIT(실행), ROLLBACK(복구)
- COMMIT, ROLLBACK 은 트랜젝션에 관련된 언어로 TCL 로 구분하기도 함
계정확인
- mysql DB의 user Table 에서 DBMS 계정에 대한 정보를 관리
> show databases;
> use mysql;
> show tables; => user 테이블 확인
> desc user; => Host, User, Password 3개가 주요 컬럼
> select user, host, password from user; => root / localhost 확인 / password는 설정 X, 확인
> select user, host, password from mysql.user;
- 데이터베이스 지정 상관없이 from 뒤 데이터베이스명.테이블명으로 접근가능
=======
'공부? > 국비 지원 일기장' 카테고리의 다른 글
50일차 - UTM , VPN (0) | 2024.09.13 |
---|---|
49일차 (0) | 2024.09.12 |
47일차 - MariaDB (1) | 2024.09.10 |
46일차 - NFS, Samba, DB (1) | 2024.09.09 |
45일차 - FTP, 메일 서비스 (3) | 2024.09.07 |