MySql
[MySql] SQL
Dev_Fuji
2024. 6. 13. 01:03
SQL
- 비절차적 언어
- 관계형 질의언어
SQL 구성
- DML : Data Manipilation Language, 데이터를 접근하고 조작할 수 있게 하는 언어, 검색, 수정, 삽입, 삭제
- DCL : Data Control Language : 데이터에 대한 접근 권한을 주는 언어
- DDL : Data Defintion Language, 데이터 저장 구조를 명시하는 언어
DDL/데이터 정의어
- 테이블 생성, 삭제, 수정과 관련된 조작
- SQL 데이터 타입
분류 | 표준 SQL | 오라클 | 설명 |
문자 | char(n) | char(n) | 길이가 n byte인 고정길이 문자열 오라클의 경우 최대 2000byte까지 지정 가능 |
varchar(n) | varchar2(n) | 최대 길이가 n byte인 가변길이 문자열 오라클의 경우 최대 4000byte까지 지정 가능 |
|
숫자 | int | int | 정수형 |
float | float | 부동 소수 | |
날짜 시간 |
date | date | 년, 월, 일을 갖는 날짜형 오라클의 경우 날짜의 기본 형식은 ‘yy/mm/dd’이다. |
time timestamp |
timestamp | 년, 월, 일, 시, 분, 초를 갖는 날짜시간형 |
- create table <테이블 이름>(필드명 데이터타입) 를 통해 테이블을 생성할 수 있다.
create table tast (
id int not null, //null 허용 X
name varchar(20) not null,
age int,
constraint pk_tast primary key(id), // 기본키 지정
constraint fk_tast foreign key(id) references OtherTable(id) // 왜래키 지정, 왜래키는 참조 테이블이 생성되어 있어야 한다.
)
- drop table 테이블이름 을 통해 테이블을 삭제할 수 있다.
drop table tast;
- alter table 테이블이름 add (필드명 데이터타입) 을 통해 속성(차수)를 추가 가능
alter table tast add (phone int);
- alter table 테이블이름 drop colimn 필드명 을 통해 속성(차수)를 삭제 가능
alter table tast drop column phone;
DML/데이터 조작어
- 레코드 삽입 : insert into 테이블이름 (필드리스트) values (값리스트)
=> 필드리스트에 나열되지 않는 필드는 null값이 들어간다.
=> 필드리스트를 생략할 경우 테이블을 생성할 때 나열한 순서로 맞춰서 들어간다.
insert into tast (id,name,age) values(10,"hong",13);
insert into tast () values(13,"hong",14);
- 레코드 수정 : update 테이블이름 set 수정내역 where 조건
update tast set name="hhh",id=13 where age=14;
- 레코드 삭제 : delete from 테이블이름 where 조건
delete from tast where age =14;
- 레코드 검색 : select 필드명... from 테이블이름 where 조건
select * from tast; //모든 필드 출력
select id from tast; //id 필드만 출력
select distinct id from tast //중복을 제거하고 검색
select student.name, student.stu_id, department.dept_name //같은 필드가 있을 때 테이블명.필드로 불러올 수 있다.
from student, department
where student.dept_id = department.dept_id //조인 설정