<데이터 베이스 기초>
★DB
<DB 생성>
create database 데이터베이스명 default character set utf8;
<DB 삭제>
drop database 데이터베이스명
==================================================
★테이블
<테이블 생성>
create table student (
학년 int,
반 int,
나이 int NOT NULL PRIMARY KEY,
이름 varchar(20);
); engine=InnoDB default character set = utf8;
NOT NULL : 필수 값, 즉 null이어서는 안된다.
PRIMARY KEY : 주요키 칼럼
engine=InnoDB : 테이블을 InnoDB라는 저장 엔진을 사용해서 생성
(트랜잭션 관련 내용)
<테이블 삭제>
drop table 테이블명;
<테이블 관리>
student 테이블
--------------------------------
grade class age name
--------------------------------
2 3 12살 원
3 5 14살 투
6 2 13살 쓰리
1 3 11살 포
---------------------------------
<내용 가져오기로 많이 쓰이는 쿼리>
- student 테이블의 모든 내용 가져오기
select * from student;
- student 테이블의 grade, class 내용 가져오기
select grade, class from student;
- student 테이블의 grade, class 중에서 2개의 칼럼만 가져오기
select grade, class from student limit 2;
- student 테이블의 grade, class중에서 grade를 오름차순으로 가져오기
select grade, class from student order by grade;
- 테이블에 칼럼 추가하기
insert into student values('3', '5', '14', '홍길동');
===========================================================
★데이터 관리
<삽입 - insert>
- 일부 칼럼에 삽입할 경우
insert into student (grade, class, age)
values ('값', '값', '값');
- 칼럼 전체 목록을 표시하지 않으면 전체에 값 지정
insert into student values('값', '값', '값', '값');
<조회 - select>
- 전체 조회
select * from student;
* 특정 조건에 대한 조회 - where
ex1) name 칼럼의 값이 율원이라는 조건/이 있는 student 테이블 전체 (where)
select * from student where name = '원';
ex2) name 칼럼의 값이 율원인 동시에 클래스는 5인 조건/의 student 테이블 전체 (and)
select * from student where name = '원' and class = '5';
ex3) name 칼럼의 값이 율원이거나 클래스는 5인 조건/의 student 테이블 전체 (or)
select * from student where name = '원' or class = '5';
ex4) name 칼럼의 값이 널/널이 아닌 조건/의 학생 테이블 전체 (is null, is not null)
select * from student where name is null
select * from student where name is not null
ex5) class 칼럼의 값의 범위가 10과 같거나 크고 동시에 5와 같거나 작은 조건/의 student 테이블 전체
select * from student where class >= 10 and class <= 5
* 데이터 정렬 - where [조건] order by desc 혹은 asc(asc가 기본값)
desc : 내림차순, asc : 오름차순
ex) name 칼럼을 오름차순, class 칼럼을 오름차순으로 정렬한 student 테이블 전체
select * from student order by name asc, class asc;
(* 주의 : name 칼럼부터 오름차순으로 정렬한 뒤에 name칼럼이 같은 값을 갖는것에만 한정해서 class를
오름차순으로 정렬. 즉, name-class가 원- 5, 원-6 같은 칼럼 두개이상일때만 class가 정렬된다.)
* 데이터 집합 - 총합 sum(), 최대 max(), 최소 min(), 개수 count()등
ex1) 전체 레코드의 개수
select count(*) from student;
ex2) 김으로 시작하는 name 칼럼 조건/의 student 테이블의 전체 수
select count(*) from student where name like '김%';
<변경 - update>
ex) name칼럼을 파이브로 세팅하여 student테이블을 업데이트
update student set name= '파이브';
<삭제 - delete>
ex1) student 테이블 삭제
delete from student;
ex2) name칼럼이 투라는 조건/의 student테이블 삭제
delete from student where name = '투';
============================================================
- Limit (제한)
ex1) 처음 두개의 레코드만 가져온다
select * from student limit 2;
ex2) 칼럼 name이 "원"이라는 조건에서 처음 두개 레코드만 가져온다
select * from student where name="원" limit 2:
ex3) 두번째 레코드에서 다섯번째 레코드까지 가져온다
select * from student limit 2,5;
'프로그래밍 > MySql' 카테고리의 다른 글
[MySql] mysql5.5이상 사용시 utf8 한글 설정하기 (0) | 2019.01.13 |
---|---|
스키마 == 데이터베이스 (0) | 2018.07.07 |
<데이터베이스 날짜 사용, 삭제 후 오류 해결> (0) | 2018.04.08 |
<데이터 베이스 기초 이론> (0) | 2018.04.08 |