Backend/db

주관적인 실무 SQL

IT grow. 2020. 2. 27. 17:36
반응형

 

데이터에서 목록보기 

 

--> show database;

 


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

 

--> use user_database;

 


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

 

--> show tables;

 


특정 테이블의 구조 확인 

 

--> desc table;

 


데이터 조회하기 

 

-->

 

select [distinct] * | 컬럼이름 [[as] '별칭'] from 테이블이름 

[where 검색조건]

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

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

 


주어진 값들을 이어 붙이는 기능 

 

--> 

 

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

 

 


주어진 값을 암호화 

 

--> 

 

select password(idnum) from table_name; 

 


시스템의 현재시작 조회 

 

--> 

 

now() 

 


날짜 연산 

 

--> 

 

data_add(시각,INTERVAL 값 단위)

 

select data_add(now(), INTERVAL - 5 MONTH );

select data_add(birthdate INTERVAL 1 YEAR) from table_name;

 


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

 

-->

 

data_format(시각,형식)

 

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

 


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

 

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

 

in ( ` a ` , ` b ` , ` c ` ) : 쿼리문에 큰따옴표는 안쓰고  ` 를 이용하여 묶는다.

 

IS NOT NULL 

 

between A and B 

 

like ` %a% ` 

 

limit 위치 , 얼마나 

 

함수쓸 때 별칭 지정하면 변수처럼 사용 가능 

 

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

 


그룹조회 

 

--> 

 

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

 


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

 

INNER JOIN : EQUI 조인의 다른 형태 

 

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

 

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

 


OUTER JOIN : 양쪽 테이블 중에서 어느 한 테이블의 모든 데이터를 출력해야 하는 경우에 사용하고 ( LEFT , RIGHT ) 지정된 방향의 테이블에서 모든 데이터 출력을 보장한다. 

 

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

 

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

 


DDL Table 단위 SQL 

 

INSERT INTO table ( 
			
            stuno , name , userid , grade , idenum , 
            tel,	height, weight, deptno , profno
            
) VALUES ( 

		10000 , ' inwookim ' , ` dog ` , 12 , `1231241` , `02-334-3431`,175,75,110,9391
        
        
);
            
            

 

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

 

--> 기본키가 숫자 형태일 경우에 Extra 라는 속성을 이용해서  auto_increment  자동증가 일련번호를 사용한다. 

 

 


UPDATE 

 

--> 

 

UPDATE table_name SET column_1 = value1 WHERE 검색조건;

 


DELETE 

 

--> 

 

DELETE FROM table_name WHERE 검색조건;

 

하나를 기준으로 지우는 경우가 많기 때문에 WHERE 절에 주로 PK값이 들어간다. 

반응형