분류 전체보기 219

MySQL - SQL 한방에 정리하기 Part 1 - DCL, DDL

grant all privileges on database.* for 'username'@'%'; 가급적이면 %를 주지 않고 사용자의 ip만을 주어서 접속자를 제한하는것이 좋다. create table like : 기존테이블명의 구조만 가져온다 create table AS Select * from : 기존 테이블의 구조와 데이터까지 복사하지만 인덱스는 가져오지 않는다. 냔월일 : data(3B) 년월일시분초 : datatime(8B) 년월일시분초: timestamp(4B) 사이즈도 작고 글로벌서비스하기 좋아서 요즘은 타임스탬프를 쓴다 년:year(1B) @@를 붙이면 전역변수이다. write에 관련한건 주석처리를 해두는게 안전하다. (단축키로 실행되거나 하는경우가 있기 때문에) 그래서 주석처리를 해두고 ..

MySQL 11 - Cursor를 이용한 프로시저 작성

Cursor를 사용하려면 선언을 해줘야 한다. cursor는 일종의 변수이다 (type이 커서인) Declare => Declare Continue Handler => OPEN => Fetch => CLose Declare CURSOR FOR select... Declare Continue Handler For Not Fount SET := True; OPEN : LOOP Fetch into , ...; IF THEN LEAVE END IF LOOP ; CLOSE ; FETCH 를 하면 각각 가져올 컬럼을 담을 변수가 필요하다. 프로시져에서 디클레어가 항상 상위에 와야한다. 디클레어는 디클레어끼리 모아두어야 한다 커서가 돌다가 더이상 자료가 없으면(not found), SET해준다. 커서를 열고close..

MySQL 10 - Stored Function & Procedure

Stored Function : 펑션에 값을 주면 로직에따린 결과를 리턴해주는것 CREATE FUNCTION ( ) RETURNS BEGIN RETURN END view는 v_ trigger 는 tr , function은 f_로 이름을 많이 시작한다. return은 괄호를 써서 리턴을해야한다. (우선순위를 주는것) procedure는 stored procedure라고 관례적으로 sp_를 이름에 많이 준다. DROP Procedure IF EXISTS sp_; DELIMITER $$ CREATE Procedure ([IN | OUT | INOUT] , ...) BEGIN ... ... END $$ DELIMITER ; - in : 입력받는 파라미터 (무조건 써야함) - out : 내가 내보낼 파라미터 SE..

16. 프로퍼티 어트리뷰트

1. 내부 슬롯과 내부 메서드 - 내부 슬롯과 내부 메서드는 자바스크립트 엔진 구현 알고리즘을 설명하기 위해 ECMAScriot사양에서 사용하는 의사 프로퍼티와 의사 메서드이다. - ECMAScript 사양에 등장하는 이중 대괄호 [[..]] 로 감싼 이름들이 내부 슬롯과 내부 메서드이다. - 내부 슬롯과 내부 메서드는 실제로 동작하지만 개발자가 직접 접근하도록 외부로 공개된 객체의 프로퍼티는 아니다. - 일부만 간접적으로 수단을 제공한다(ex. [[Prototype]] => __proto__ ) 2. 프로퍼티 어트리뷰트와 프로퍼티 디스크립터 객체 - 자바스크립트 엔진은 프로퍼티를 생성할 때 프로퍼티의 상태를 나타내는 프로퍼티 어트리뷰트를 기본값으로 자동 정의한다. - 프로퍼티의 상태란 프로퍼티의 값, ..

15. let, const 키워드와 블록 레벨 스코프

1. var 키워드로 선언한 변수의 문제점 1.1. 변수 중복 선언 허용 - var키워드로 선언된 변수는 같은 스코프 내에서 중복선언을 허용한다. - 초기화문이 있는 변수 선언문은 자바스크립트 엔진에 의해 var키워드가 없는것처럼 동작한다. 1.2. 함수 레벨 스코프 - var키워드로 선언한 변수는 함수 코드 블록만을 지역 스코프로 인정한다. 1.3. 변수 호이스팅 - var로 변수를 선언하면 호이스팅이 일어나 변수 선언전에 참조하면 undefined를 반환한다. 2. let 키워드 2.1. 변수 중복 선언 금지 - let 키워드로 이름이 같은 변수를 선언하면 Syntax Error가 발생한다. 2.2 블록 레벨 스코프 - let으로 선언한 변수는 모든 코드 블록을 지역스코프로 인정하는 블록 레벨 스코프..

자바스크립트의 역사

SQL Lite는 핸드폰같은데에 많이써서 순위가 높은것이다. 빅데이터 인공지능쪽은 MongoDB를 많이 쓴다. 레디스는 데이터를 메모리에 써놓기때문에 빠르다. DB의 속도는 디스크의 위치를 찾아가는것이 많이 좌우한다. 오라클은 관공서나 금융권에서 많이쓴다. DynamoDB는 최근에 상승세이다. (비정형데이터들이 많고 몽고DB는 라이센스문제들이 계속 있기때문) Heroku는 루비같은것을 만들면 쉽게 올릴 수 있게한다(아니면 apk파일같은것) 우리나라 클라우드시장은 최소 1년에 8조이상발생한다. jQuery는 새로 시작하는 프로젝트들은 잘안쓴다. Express(node.js서버) 뷰는 기능이 작은대신 배우기 쉽고 심플하다. ASP.NET Core는 최근에 MS가 굉장히 밀어주고있다. Flask는 최근에 조금..

MySQL 09 - 뷰와 트리거 (View, Trigger, UNION, @rownum)

CREATE VIEW AS SELECT ... ; : 뷰를 생성한다. UPDATE set ...; : 뷰를 업데이트한다 (sum,avg, union all, distinct, group by가 들어간 view는 수정이 안된다) select * from information_schema.views where table_schema= : 해당스키마의 모든 뷰를 보여준다 -> 여기서 is updatable이 yes여야 수정이 가능하다. 뷰를 쓰는 이유 - 보안에 좋음 : (다른유저별 다른권한을 줄수 있기 떄문) - 단순하다 : 구조를 쉽게 보여준다. - 성능이 좋다 : 컴파일된 쿼리기 때문이다 (prepared statement) - 프로그래머에게 디테일을 주기 좋다 뷰는 거의 읽기 위주로 사용한다 (쓰기는 ..

MySQL 07 - 내장함수와 트랜잭션(Transaction)

데이터베이스들은 기본적으로 가지고있는 내장함수가 있다. sum(컬럼) : 합치기 avg(컬럼) : 평균값 min(컬럼) : 최소값 max(컬럼) : 최대값 mod(컬럼,나눌수) : 나머지값 count(컬럼) : 레코드 수 stdev : 표준편차 var_samp : 분산편차 cast("바꿀 자료" as 자료형) : 형변환 convert("바꿀자료, 자료형) : 형변환 // cast와 같음 str_to_date("시간문자열", "%Y-%m-%d"); : 문자열을 시간으로 변환 concat('문자열','문자열') : 문자열을 결합시킨다. concat_ws('구분자','문자열','문자열'...) : 구분자를넣어 문자열을 결합시킨다. group_concat(컬럼) : group by일 때 컬럼에 해당하는 모든 자..