-- 한줄주석1
# 한줄주석2
/* 여러줄주석
ctrl+enter 한줄실행
ctrl+shift+enter 선택범위실행
*/
show schemas;
use myschool;
show tables;
desc 강의;
desc 교수;
desc 학생;
create database test;
use test;
drop database test;
use test;
/*
SQL분류
DDL(데이터 정의어) : create(생성), drop(삭제), alter(변경) - 테이블을 정의(생성,삭제,변경)
DML(데이터 조작어) : insert, select, update, delete - 테이블에 들어있는 데이터 조작
DCL(데이터 제어어) : grant, revoke - 접근권한부여나 회수
데이터타입
정수 - tinyint : -128 ~ 127 정수
- smallint : -32768 ~ 32767 정수
- mediumint :
- int : -214,783,648 ~ 214,783,647
고정소수형 - decimal (5,2) -> -999.99 ~ 999.99
- numeric
부동소수점 - float : 4바이트의 크기를 갖는 부동소수
- double : 8바이트
문자 - char(n) : 길이가 n으로 고정된 문자열
- varchar(n) : 최대가 n크기인 가변형 문자열
- text
- enum : enum("사원", "대리", "과장") 유한개의 문자열 집합 중 하나의 값을 선택
날짜/시간 - date : 'YYYY-MM-DD'
- year : YYYY
- time : 00:00:00
- timestamp : yyyy-mm-dd 00:00:00
제약조건
primary key(pk,기본키)절
- 하나 이상의 컬럼을 기본키로 설정할 수 있다.
- 반드시 고유해야 한다.
- null이 될 수 없다.
not null(N.N) 절
- 컬럼의 값은 null이 될 수 없다.
unique(UQ) 절
- 해당 레코드의 컬럼값은 반드시 유일해야 한다.
auto increment(AI) 절
- 사용자가 입력하지 않아도 레코드가 추가될 때마다 서버에서 자동으로 계산해서 입력된다.
default 절
- 입력되지 않으면 자동으로 지정된 디폴트값이 입력된다.
foreign key(F.K,외래키)
- 다른테이블의 특정한 칼럼을 지정
check 절
- 특정조건을 준수하는지 체크해서 입력하게 허락함.
데이터베이스 생성
create database 데이터베이스명;
테이블 생성
create table 테이블이름 (
컬럼명 데이터타입 [null|not null] [default],
~~~~~~~~~~~~,
~~~~~~~~~~~~,
[primary key(컬럼명)],
[unique(컬럼명)],
[foreign key(현재 테이블의 컬럼) references 참조테이블(참조되는 컬럼명)]
)[engine=InnoDB];
*/
# myschool에 있는 테이블들을...코드로 test 데이터베이스에 생성해보세요.
create database test;
use test;
# 학생,교수,강의 테이블을 생성하시오.
create table 학생 (
학생번호 char(9) not null,
소속학과 varchar(30) not null,
학생이름 varchar(20) not null,
학년 int not null,
성별 char(4),
나이 int,
전화번호 varchar(13) not null,
주소 varchar(50),
primary key(학생번호)
);
desc 학생;
create table 교수 (
교수번호 char(4) not null,
소속학과 varchar(30) not null,
교수이름 char(20) not null,
직위 char(10),
전화번호 varchar(13) not null,
연구실위치 varchar(50),
주소 varchar(50),
입사일 datetime,
퇴사일 datetime,
primary key(교수번호)
);
desc 교수;
create table 강의(
강의번호 char(4) not null primary key,
강의이름 varchar(50) not null,
강의실 varchar(40) not null,
강의시간 varchar(20) not null,
인원제한 int not null,
이수구분 varchar(20) not null,
교수번호 char(4) not null,
선수과목 char(4),
foreign key (교수번호) references 교수(교수번호),
foreign key (선수과목) references 강의(강의번호)
);
desc 강의;
'IT 공부 > MySQL' 카테고리의 다른 글
view (0) | 2022.07.14 |
---|---|
join 2 (0) | 2022.07.14 |
형변환, group, union, join (0) | 2022.07.13 |
select, 함수 (0) | 2022.07.13 |
테이블 수정, 인덱스 (0) | 2022.07.12 |