상세 컨텐츠

본문 제목

[DB] 진짜 실무에서 쓰는 sql 정리

공부

by JiS2n94 2019. 11. 13. 16:57

본문

https://nopain-nomain.tistory.com/31

 

[DB] 진짜 실무에서 쓰는 sql 정리

Database DAY2 < Database > 4) 진짜 실무에서 쓰는 sql 정리 데이터에서 목록보기 show database; 사용할 데이터베이스 선택하기 use myschool; 현재 데이터베이스에서 테이블 목록 보기 show tables; 특정 테이..

nopain-nomain.tistory.com

 

 

Database DAY2

< Database >

 

 

4) 진짜 실무에서 쓰는 sql 정리

 

데이터에서 목록보기

show database;

사용할 데이터베이스 선택하기

use myschool;

현재 데이터베이스에서 테이블 목록 보기

show tables;

특정 테이블의 구조 확인

desc department;

데이터 조회하기

select [distinct] * | 컬럼이름 [[as] `별칭`] from 테이블이름        // distict 는 중복제거

[where 검색조건]

[order by 컬럼이름 [ASC|DESC]]

[limit 조회시작위치, 조회할 데이터 수];

[함수] 주어진 값들을 잇는 기능

select concat(name, ' ', grade, '학년') from student;

[함수] 주어진 값을 암호화

select password(idnum) from student;

[날짜] 시스템의 현재시각 조회

now()

[날짜]날짜 연산

date_add(시각,INTERVAL 값 단위)

select date_add(now(), INTERVAL -3 MONTH);

select date_add(birthdate INTERVAL 1 YEAR) from student;

[날짜] 주어진 시각을 형식에 맞춰 변경한 결과를 리턴

date_format(시각, 형식)

select date_format(now(), '%y/%m/%d %H:%i:%s');

 

5) query Tip

*보다는 전체컬럼 : *로 조회하는것보다 차라리 전체 컬럼을 다 명시하는게 성능에 유리하다

ASC 생략가능 : order by 는 기본값이 asc이므로 asc는 생략가능

in('뭐', '뭐랑', '뭐')

"안쓰고'아니고 ` : 쿼리문에 큰따옴표는 안쓰고, (`)를 이용하여 묶는다

IS NOT NULL

between A and B

like '%영%'

limit 위치, 몇건

함수쓸 때 별칭 지정하면 변수처럼 쓸수있다

집계함수는 where 절에서 사용불가

 

 

6 ) 그룹조회

where절을 사용하여 검색된 결과에 대해서 그룹핑 가능

 

 

7) JOIN

 

7-1) EQUI JOIN : 두개 이상의 테이블에서 동시 데이터 검색

SELECT a,b

FROM table1, table2

WHERE ~~~

 

7-2) INNER JOIN : EQUI 조인의 다른형태

SELECT a,b

FROM table1

INNER JOIN table2

ON ~~~

(위 차이점 INNER JOIN은 조인조건에 ON절을 사용하기 때문에, 추가적인 검색 조건은 WHERE 절을 사용한다.)

조건에 맞지 않은 애(null)는 누락시키고 이걸 누락시키지않고 전체 조회를 하는 쿼리는 ↓↓↓ 로 처리한다

 

7-3) OUTER JOIN

양쪽 테이블 중에서 어느 한 테이블의 모든 데이터를 출력해야 하는 경우에 사용하고 (LEFT, RIGHT)

지정된 방향의 테이블에서 모든 데이터  출력을 보장한다.

(헷갈리니까 구분없이 그냥 LEFTOUTER쪽으로 몰아놓고 쓰자)

 

7-4) 서브쿼리

서브쿼리가 여러개의 결과를 가지고 올때 IN으로 조회하면된다.

 

 

8) JOIN Tip

테이블의 별칭을 쓰면 겹치는 변수쓸때 간결하게 쓸 수 있음

select s.name, p.name from student s, professor p

 

9) DDL Table 단위 SQL

9-1) INSERT (아래 형태로 써야 실무에서 이쁨받는다)

INSERT INTO student (

        stuno, name, userid, grade, idenum,

        tel, height, weight, deptno, profno

) VALUES (

        10111, '조영주', 'dool', 2, '123234', '02)-123-2345', 170, 70, 101, 9903

);

기본키(PK) : 테이블의 각행을 고유하게 식별하는 값 (데이터 무결성 제약조건)

=>기본키가 숫자 형태일 경우에 Extra라는 속성을 이용해서 auto_increment 자동증가 일련번호를 사용한다. 띄엄띄엄 되어있다면 해제했다가 다시 설정하면 됨

 

MySQL에는 id, 사용자 아이디는 userid, username로 설정

MSSQL에는 num

ORACLE에는 seq라고 한다

 

HTML <form> 태그의 name 속성을 DB의 컬럼명과 맞춘다

 

9-2) UPDATE

UPDATE 테이블이름 SET 컬럼1=값 WHERE 검색조건;

 

9-3) DELETE

DELETE FROM 테이블이름 WHERE 검색조건;

하나 꼭집어서 지우는 경우가 많이 때문에 WHERE 절에 주로 PK값이 들어간다

'공부' 카테고리의 다른 글

이클립스 버전별 JRE  (0) 2020.04.12
Darkest Dark Theme with DevStyle  (0) 2020.04.05
KoXo 자바스크립트 매뉴얼  (0) 2019.11.20

관련글 더보기