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 //조인 설정