#datename
Explore tagged Tumblr posts
Text
🌲 Nature 🌲 Themed 🌲 Datenames 🌲
------------------------------------------------------------------------------
Terrafriend
Naturfriend
Treefriend
Eartfriend
Dirfriend
Clafriend
dustfriend
Fielfriend
Cerulfriend
Meadofriend
Grasfriend
Leafriend/Leaffriend
Greefriend
Sunfriend
Flowfriend
#mogai flag#mogai coining#mogai community#mogai gender#xeninity#xenic gender#xenogender#xenic#terrain#nature#tree#earth#dirt#datenames#datename#girlfriend#boyfriend#partner#enbyfriend#joyfriend#clay#dust#anti mogai dni#dni anti mogai#medow#grass#leaf#green#sunflower#flowers
15 notes
·
View notes
Note
Yoooo come to germany ^^ i habe a photo op and autograph and it was such a dumb decision because i just know I will be doing stupid shit and forget my own name and or datename myself. Probably twice.
ASDFGHJHGF YOU CANNOT JUST TEMPT ME LIKE THIS. I was already tempted to go to the november one but there's another in december? hello??? grrrrrrr.
8 notes
·
View notes
Photo
Χρονια πολλα για την γιορτη σου αγαπη μου🙏🏻❤️🏛#myhusband#datename#aşkımkocam#isimgünün#kutluolsun#athanasios#αγιοςαθανασιος#χρονιαπολλα#αγαπιμου❤️💜🙏🏻
#athanasios#datename#myhusband#kutluolsun#χρονιαπολλα#isimgünün#aşkımkocam#αγιοςαθανασιος#αγαπιμου❤️💜🙏🏻
0 notes
Text
MSSQL 문법정리
MS-SQL
** SQL문은 대소문자를 구분하지 않지만 데이타는 대문자와 소문자를 구분한다 주석을 다는 방법은 /* 주석 */ 이거나 한줄만 주석 처리를 할 경우는 문장 맨앞에 --를 붙인다 ** 각각의 데이타베이스의 SYSOBJECTS 테이블에 해당 데이타베이스의 모든 정보가 보���되어 있다 SYSOBJECTS의 TYPE 칼럼으로 'U'=사용자 테이블, 'P'=저장 프로시저, 'K'=프라이머리 키, 'F'=포린 키, 'V'=뷰, 'C'=체크 제약등 오브젝트 이름과 정보를 알 수 있다
데이타 검색 USE 데이타베이스명 /* USE 문을 사용한 데이타베이스 선택 */ SELECT * FROM 데이블명 /* 모든 칼럼 불러오기 */ SELECT TOP n * FROM 테이블명 /* 상위 n개의 데이타만 가져오기 */ SELECT 칼럼1, 칼럼2, 칼럼3 FROM 테이블명 /* 특정 칼럼 가져오기 */ SELECT 칼럼1 별명1, 칼럼2 AS 별명2 FROM 테이블명 /* 칼럼에 별명 붙이기 */ SELECT 칼럼3 '별 명3' FROM 테이블명 /* 칼럼 별명에 스페이스가 들어갈 경우는 작은따옴표 사용 */ SELECT DISTINCT 칼럼 FROM 테이블명 /* 중복되지 않는 데이타만 가져오기 */ ** 데이타는 오름차순으로 재배열된다 DISTINCT를 사용하면 재배열이 될때까지 데이타가 리턴되지 않으므로 수행 속도에 영향을 미친다 */ SELECT * FROM 테이블명 WHERE 조건절 /* 조건에 해당하는 데이타 가져오기 */ ** 조건식에 사용하는 비교는 칼럼=값, 칼럼!=값, 칼럼>값, 칼럼>=값, 칼럼<값, 칼럼<=값이 있다 문자열은 ''(작은따옴표)를 사용한다 날짜 비교를 할때는 'yy-mm-dd' 형식의 문자열로 한다(날짜='1992-02-02', 날짜>'1992-02-02') SELECT * FROM 테이블명 WHERE 칼럼 BETWEEN x AND y /* 칼럼이 x>=와 y<=사이의 데이타 가져오기 */ SELECT * FROM 테이블명 WHERE 칼럼 IN (a, b...) /* 칼럼이 a이거나 b인 데이타 가져오기 */
SELECT * FROM 테이블명 WHERE 칼럼 LIKE '패턴' /* 칼럼이 패턴과 같은 데이타 가져오기 */ ** 패턴에 사용되는 기호는 %, _가 있다 'k%'(k로 시작되는), '%k%'(중간에 k가 있는), '%k'(k로 끝나는) 'p_'(p로 시작하는 2자리), 'p___'(p로 시작하는 4자리), '__p'(3자리 데이타중 p로 끝나는)
Like 패턴 주의점
- MSSQL LIKE 쿼리에서 와일드 카드(예약어) 문자가 들어간 결과 검색시
언더바(_)가 들어간 결과를 보기 위해 아래처럼 쿼리를 날리니
select * from 테이블명 where 컬럼명 like '%_%'
모든 데이터가 결과로 튀어나왔다. -_-;;
언더바가 와일드 카드(쿼리 예약어)이기 때문인데 이럴 땐
select * from 테이블명 where 컬럼명 like '%[_]%'
SELECT * FROM 테이블명 WHERE 칼럼 IS NULL /* 칼럼이 NULL인 데이타 가져오기 */ SELECT * FROM 테이블명 WHERE 칼럼 NOT BETWEEN x AND y /* 칼럼이 x와 y 사이가 아닌 데이타 가져오기 */ SELECT * FROM 테이블명 WHERE 칼럼 NOT IN (a, b...) /* 칼럼이 a나 b가 아닌 데이타 가져오기 */ SELECT * FROM 테이블명 WHERE 칼럼 NOT LIKE '패턴' /* 칼럼이 패턴과 같지 않은 데이타 가져오기 */ SELECT * FROM 테이블명 WHERE 칼럼 IS NOT NULL /* 칼럼이 NULL이 아닌 데이타 가져오기 */ SELECT * FROM 테이블명 WHERE 칼럼>=x AND 칼럼<=y SELECT * FROM 테이블명 WHERE 칼럼=a or 칼럼=b SELECT * FROM 데이블명 WHERE 칼럼1>=x AND (칼럼2=a OR 칼럼2=b) ** 복수 조건을 연결하는 연산자는 AND와 OR가 있다 AND와 OR의 우선순위는 AND가 OR보다 높은데 우선 순위를 바꾸고 싶다면 ()을 사용한다 SELECT * FROM 테이블명 ORDER BY 칼럼 /* 칼럼을 오름차순으로 재배열하기 */ SELECT * FROM 테이블명 ORDER BY 칼럼 ASC SELECT * FROM 테이블명 ORDER BY 칼럼 DESC /* 칼럼을 내림차순으로 재배열하기 */ SELECT * FROM 테이블명 ORDER BY 칼럼1 ASC, 칼럼2 DESC /* 복수 칼럼 재배열하기 */ SELECT * FROM 테이블명 ORDER BY 1 ASC, DESC 3 /* 칼럼 순서로 재배열하기 */ ** 기본적으로 SELECT 문에서는 출력순서가 보증되지 않기 때문에 데이타의 등록 상태나 서버의 부하 상태에 따라 출력되는 순서가 달라질 수 있다 따라서 출력하는 경우 되도록이면 ORDER BY를 지정한다 ** 칼럼 번호는 전체 칼럼에서의 번호가 아니라 SELECT문에서 선택한 칼럼의 번호이고 1부터 시작한다
연산자 ** 1순위는 수치 앞에 기술되는 + - 같은 단항 연산자 2순위는 사칙 연산의 산술 연산자인 * / + - 3순위는 = > 비교 연산자 4순위는 AND OR 같은 논리 연산자 ()을 붙이면 우선 순위를 바꿀수 있다
1. SELECT 문의 연산 SELECT 칼럼1, 칼럼2, 칼럼3+칼럼4 AS '별명' FROM 테이블명 2. ORDER BY 구의 연산 SELECT 칼럼1, 칼럼2, 칼럼3+칼럼4 AS '별명' FROM 테이블명 ORDER BY 칼럼3+칼럼4 DESC SELECT 칼럼1, 칼럼2, 칼럼3+칼럼4 AS '별명' FROM 테이블명 ORDER BY 3 DESC 3. WHERE 구의 연산 SELECT 칼럼1, 칼럼2, 칼럼3+칼럼4 AS '별명' FROM 테이블명 WHERE 칼럼2>=(칼럼3+칼럼4) 4. NULL 연산 SELECT 칼럼1, 칼럼2, ISNULL(칼럼3, 0) + ISNULL(칼럼4, 0) AS '별명' FROM 테이블명 ** 수치형 데이타와 NULL값과의 연산 결과는 항상 NULL이다 만약 NULL 값을 원치 않으면 ISNULL(칼럼, 기준값) 함수를 사용해서 기준값을 변환시킨다 5. 날짜 연산 SELECT GETDATE() /* 서버의 현재 날짜를 구한다 */ SELECT 날짜칼럼, 날짜칼럼-7 FROM 테이블명 SELECT 날짜칼럼, 날짜칼럼+30 FROM 테이블명 SELECT 날짜칼럼, DATEDIFF(day, 날짜칼럼, GETDATE()) FROM 테이블명 ** 날짜의 가산과 감산은 + -로 할 수 있다 날짜와 날짜 사이의 계산은 DATEDIFF(돌려주는값, 시작날짜, 끝날짜) 함수를 사용한다 6. 문자 연산 SELECT 칼럼1 + 칼럼2 FROM 테이블명 SELECT 칼럼 + '문자열' FROM 테이블명 SELECT 칼럼1 + '문자열' + 칼럼2 FROM 테이블명 ** 기본 연결은 문자와 문자이고 문자와 숫자의 연결은 CONVERT 함수를 사용해야 한다
함수 1. 수치 함수 ROUND(수치값, 반올림위치) /* 반올림 및 자르기 */ ABS(수치 데이타) /* 절대값 */ SIGN(수치 데이타) /* 부호 */ SQRT(수치값) /* 제곱근 */ POWER(수치값, n) /* n승 */ 2. 문자열 함수 정리
1) Ascii() - 문자열의 제일 왼쪽 문자의 아스키 코드 값을 반환(Integer)
예) SELECT Ascii('abcd')
>> 결과는 a의 아스키 코드값인 97 반환
2) Char() - 정수 아스키 코드를 문자로 반환(Char)
예) SELECT Char(97)
>> 결과는 a 반환
3) Charindex() - 문자열에서 지정한 식의 위치를 반환
예) SELECT Charindex('b','abcde') >> 결과 : 2 SELECT Charindex('b','abcde',2) >> 결과 : 2 SELECT Charindex('b','abcde',3) >> 결과 : 0
-- 인수값이 3개일때 마지막은 abcde 에서의 문자열 검색 시작위치를 말하며
2인경우는 bcde 라는 문자열에 대해서 검색
3인 경우는 cde 라는 문자열에 대해서 검색 하게 된다.
4) Difference() - 두 문자식에 SUONDEX 값 간의 차이를 정수로 반환
예) SELECT Difference('a','b')
5) Left() - 문자열에서 왼쪽에서부터 지정한 수만큼의 문자를 반환
예) SELECT Left('abced',3) 결과 >> 3
6) Len() - 문자열의 길이 반환
예) SELECT Len('abced') 결과>>5
7) Lower() - 대문자를 소문자로 반환
예) SELECT Lower('ABCDE') 결과 >> abcde
8) Ltrim() - 문자열의 왼쪽 공백 제거
예) SELECT Ltrim(' AB CDE') 결과>> AB CDE
9)Nchar() - 지정한 정수 코드의 유니코드 문자 반환
예) SELECT Nchar(20) 결과 >>
10) Replace - 문자열에서 바꾸고 싶은 문자 다른 문자로 변환
예) SELECT Replace('abcde','a','1') 결과>>1bcde
11) Replicate() - 문자식을 지정한 횟수만큼 반복
예) SELECT Replicate('abc',3) 결과>> abcabcabc
12) Reverse() - 문자열을 역순으로 출력
예) SELECT Reverse('abcde') 결과>> edcba
13) Right() - 문자열의 오른쪽에서 부터 지정한 수 만큼 반환(Left() 와 비슷 )
예) SELECT Right('abcde',3) 결과>> cde
14)Rtrim() - 문자열의 오른쪽 공백 제거
예) SELECT Rtrim(' ab cde ') 결과>> ' ab cde' <-- 공백구분을위해 ' 표시
15) Space() - 지정한 수만큼의 공백 문자 반환
예) SELECT Space(10) 결과 >> ' ' -- 그냥 공백이 나옴
확인을 위해서 SELECT 'S'+Space(10)+'E' 결과 >> S E
16) Substring() - 문자,이진,텍스트 또는 이미지 식의 일부를 반환
예) SELECT Substring('abcde',2,3) 결과>> bcd
17)Unicode() - 식에 있는 첫번째 문자의 유니코드 정수 값을 반환
예)SELECT Unicode('abcde') 결과 >> 97
18)Upper() - 소문자를 대문자로 반환
예) SELECT Upper('abcde') 결과>> ABCDE
※ 기타 함수 Tip
19) Isnumeric - 해당 문자열이 숫자형이면 1 아니면 0을 반환
>> 숫자 : 1 , 숫자X :0
예) SELECT Isnumeric('30') 결과 >> 1
SELECT Isnumeric('3z') 결과 >> 0
20) Isdate() - 해당 문자열이 Datetime이면 1 아니면 0 >> 날짜 : 1 , 날짜 X :0 예) SELECT Isdate('20071231') 결과 >> 1
SELECT Isdate(getdate()) 결과 >> 1 SELECT Isdate('2007123') 결과 >> 0
SELECT Isdate('aa') 결과 >> 0
※ 날짜및 시간함수 정리
getdate() >> 오늘 날짜를 반환(datetime)
1> DateAdd() - 지정한 날짜에 일정 간격을 + 새 일정을 반환
예) SELECT Dateadd(s,2000,getdate())
2> Datediff() - 지정한 두 날짜의 간의 겹치는 날짜 및 시간 범위 반환
예)SELECT DateDiff(d,getdate(),(getdate()+31))
3> Datename() -지정한 날짜에 특정 날짜부분을 나타내는 문자열을 반환
예) SELECT Datename(d,getdate())
4> Datepart() -지정한 날짜에 특정 날짜부분을 나타내는 정수를 반환
예) SELECT Datepart(d,getdate())
** 돌려주는값(약어) Year-yy, Quarter-qq, Month-mm, DayofYear-dy, Day-dd, Week-wk, Hour-hh, Minute-mi, Second-ss, Milisecond-ms SELECT DATEADD(dd, 7, 날짜칼럼)
>> Datename , Datepart 은 결과 값은 같으나 반환 값의 타입이 틀림.
5> Day() -지정한 날짜에 일 부분을 나타내는 정수를 반환
예) SELECT Day(getdate()) -- 일 반환
SELECT Month(getdate()) -- 월 반환
SELECT Year(getdate()) -- 년 반환 4. 형변환 함수 CONVERT(데이타 타입, 칼럼) /* 칼럼을 원하는 데이타 타입으로 변환 */ CONVERT(데이타 타입, 칼럼, 날짜형 스타일) /* 원하는 날짜 스타일로 변환 */ CAST(칼럼 AS 데이타 타입) /* 칼럼을 원하는 데이타 타입으로 변환 */ ** 스타일 1->mm/dd/yy, 2->yy.mm.dd, 3->dd/mm/yy, 4->dd.mm.yy, 5->dd-mm-yy, 8->hh:mm:ss, 10->mm-dd-yy, 11->yy/mm/dd, 12->yymmdd SELECT CONVERT(varchar(10), 날짜칼럼, 2)
그룹화 함수 SELECT COUNT(*) FROM 테이블명 /* 전체 데이타의 갯수 가져오기 */ SEELECT COUNT(칼럼) FROM 테이블명 /* NULL은 제외한 칼럼의 데이타 갯수 가져오기 */ SELECT SUM(칼럼) FROM 테이블명 /* 칼럼의 합계 구하기 */ SELECT MAX(칼럼) FROM 테이블명 /* 칼럼의 최대값 구하기 */ SELECT MIN(칼럼) FROM 테이블명 /* 칼럼의 최소값 구하기 */ SELECT AVG(칼럼) FROM 테이블명 /* 칼럼의 평균값 구하기 */ GROUP BY문 SELECT 칼럼 FROM 테이블명 GROUP BY 칼럼 SELECT 칼럼1, SUM(칼럼2) FROM 테이블명 GROUP BY 칼럼1 SELECT 칼럼1, COUNT(*) FROM 테이블명 GROUP BY 칼럼1 SELECT 칼럼1, 칼럼2, MAX(칼럼3) FROM 테이블명 GROUP BY 칼럼1, 칼럼2 ** GROUP BY를 지정한 경우 SELECT 다음에는 반드시 GROUP BY에서 지정한 칼럼 또는 그룹 함수만이 올 수 있다
조건 SELECT 칼럼1, SUM(칼럼2) FROM 테이블명 GROUP BY 칼럼1 HAVING SUM(칼럼2) < a SELECT 칼럼1, SUM(칼럼2) FROM 테이블명 ORDER BY 칼럼1 COMPUTE SUM(칼럼2) ** HAVING: 그룹 함수를 사용할 경우의 조건을 지정한다 HAVING의 위치: GROUP BY의 뒤 ORDER BY의 앞에 지정한다 COMPUTE: 각 그룹의 소계를 요약해서 보여준다 ORDER BY가 항상 선행해서 나와야 한다 조건절의 서브 쿼리 ** SELECT 또는 INSERTY, UPDATE, DELETE 같은 문의 조건절에서 SELECT문을 또 사용하는 것이다 SELECT문 안에 또 다른 SELECT문이 포함되어 있다고 중첩 SELECT문(NESTED SELECT)이라고 한다 ** 데이타베이스에는 여러명이 엑세스하고 있기 때문에 쿼리를 여러개 나누어서 사용하면 데이타의 값이 달라질수 있기때문에 트랜잭션 처리를 하지 않는다면 복수의 쿼리를 하나의 쿼리로 만들어 사용해야 한다 SELECT 칼럼1, 칼럼2 FROM 테이블명 WHERE 칼럼2 = (SELECT 칼럼2 FROM 테이블명 WHERE 조건) SELECT 칼럼1, 칼럼2 FROM 테이블명 WHERE 칼럼1 IN (SELECT 칼럼1 FROM 테이블명 WHERE 조건) ** 서브 쿼리에서는 다른 테이블을 포함할 수 있다 두개의 테이블에서 읽어오는 서브쿼리의 경우 서브 쿼리쪽에 데이타가 적은 테이블을 주 쿼리쪽에 데이타가 많은 테이블을 지정해야 처리 속도가 빨라진다 SELECT 칼럼1, 칼럼2 FROM 테이블명 WHERE 칼럼1 IN (SELECT 칼럼2-1 FROM 테이블명2 WHERE 조건) ** FROM구에서 서브 쿼리를 사용할 수 있다 사용시 반드시 별칭을 붙여야 하고 처리 속도가 빨라진다 SELECT 칼럼1, 칼럼2 FROM 테이블명 WHERE 조건1 AND 조건2 SEELCT 칼럼1, 칼럼2 FROM (SELECT 칼럼1, 칼럼2 FROM 테이블명 WHERE 조건1) 별칭 WHERE 조건2
데이타 편집
추가 ** NULL 값을 허용하지도 않고 디폴트 값도 지정되어 있지 않은 칼럼에 값을 지정하지 않은채 INSERT를 수행하면 에러가 발생한다 ** 수치값은 그대로 문��값은 ''(작은따옴표)로 마무리 한다 ** SELECT INTO는 칼럼과 데이타는 복사하지만 칼럼에 설정된 프라이머리, 포린 키등등의 제약 조건은 복사되지 않기 때문에 복사가 끝난후 새로 설정해 주어야 한다
INSERT INTO 테이블명 VALUES (값1, 값2, ...) /* 모든 필드에 데이타를 넣을 때 */ INSERT INTO 테이블명 (칼럼1, 칼럼2, ...) VALUES (값1, 값2, ...) /* 특정 칼럼에만 데이타를 넣을 때 */ INSERT INTO 테이블명 SELECT * FROM 테이블명2 /* 이미 존재하는 테이블에 데이타 추가 */ INSERT INTO 테이블명(칼럼1, 칼럼2, ...) SELECT 칼럼1, 칼럼2, ...) FROM 테이블명2 SELECT * INTO 테이블명 FROM 테이블명2 /* 새로 만든 테이블에 데이타 추가 */ SELECT 칼럼1, 칼럼2, ... 테이블명 FROM 테이블명2 갱신 UPDATE 테이블명 SET 칼럼1=값1, 칼럼2=값2 /* 전체 데이타 갱신 */ UPDATE 테이블명 SET 칼럼1=값1, 칼럼2=값2 WHERE 조건 /* 조건에 해당되는 데이타 갱신 */
- UPDATE~SELECT
UPDATE A SET A.cyberLectures = B.bizAddress FROM OF_Member A, OF_Member B WHERE A.no = B.no
삭제 DELETE FROM 테이블명 /* 전체 데이타 삭제 */ DELETE FROM 테이블명 WHERE 조건 /* 조건에 해당되는 데이타 삭제 */
오브젝트 ** 데이타베이스는 아래 오브젝트들을 각각의 유저별로 관리를 하는데 Schema(스키마)는 각 유저별 소유 리스트이다
1. Table(테이블) ** CREATE일때 프라이머리 키를 설정하지 않는다면 (칼럼 int IDENTITY(1, 1) NOT NULL) 자동 칼럼을 만든다 데이타들의 입력 순서와 중복된 데이타를 구별하기 위해서 반드시 필요하다 ** 테이블 정보 SP_HELP 테이블명, 제약 조건은 SP_HELPCONSTRAINT 테이블명 을 사용한다
CREATE TABLE 데이타베이스이름.소유자이름.테이블이름 (칼럼 데이타형 제약, ...) /* 테이블 만들기 */ DROP TABLE 테이블명 /* 테이블 삭제 */ ALTER TABLE 테이블명 ADD 칼럼 데이타형 제약, ... /* 칼럼 추가 */ ALTER TABLE 테이블명 DROP COLUMN 칼럼 /* 칼럼 삭제 */ ** DROP COLUMN으로 다음 칼럼은 삭제를 할 수 없다 - 복제된 칼럼 - 인덱스로 사용하는 칼럼 - PRIMARY KEY, FOREGIN KEY, UNIQUE, CHECK등의 제약 조건이 지정된 칼럼 - DEFAULT 키워드로 정의된 기본값과 연결되거나 기본 개체에 바인딩된 칼럼 - 규칙에 바인딩된 칼럼 CREATE TABLE 테이블명 (칼럼 데이타형 DEFAULT 디폴트값, ...) /* 디폴트 지정 */ CREATE TABLE 테이블명 (칼럼 데이타형 CONSTRAINT 이름 UNIQUE, ...) /* 유니크 설정 */ ** UNIQUE란 지정한 칼럼에 같은 값이 들어가는것을 금지하는 제약으로 기본 키와 비슷하지만 NULL 값을 하용하는것이 다르다 CREATE TABLE 테이블명 (칼럼 데이타형 CONSTRAINT 이름 NOT NULL, ...) /* NOT NULL 설정 */ CREATE TABLE 테이블명 (칼럼 데이타형 CONSTRAINT 이름 PRIMARY KEY, ...) /* 기본 키 설정 */ ** 기본 키는 유니크와 NOT NULL이 조합된 제약으로 색인이 자동적으로 지정되고 데이타를 유일하게 만들어 준다 ** 기본 키는 한 테이블에 한개의 칼럼만 가능하다 CREATE TABLE 테이블명 (칼럼 데이타형 CONSTRAINT 이름 FOREIGN KEY REFERENCES 부모테이블이름(부모칼럼), ...) CREATE TABLE 테이블명 (칼럼 데이타형 CONSTRAINT 이름 CHECK(조건), ...) /* CHECK 설정 */ ** CHECK는 조건을 임의로 정의할 수 있는 제약으로 설정되면 조건을 충족시키는 데이타만 등록할 수 있고 SELECT의 WHERE구와 같은 조건을 지정한다 ** CONSTRAINT와 제약 이름을 쓰지 않으면 데이타베이스가 알아서 이름을 붙이지만 복잡한 이름이 되기 때문에 되도록이면 사용자가 지정하도록 한다 ** CONSTRAINT는 칼럼과 데이타형을 모두 정의한 뒤에 맨 마지막에 설정할 수 있다 CREATE TABLE 테이블명 (칼럼1 데이타형, 칼럼2 데이타형, ... CONSTRAINT 이름 PRIMARY KEY(칼럼1) CONSTRAINT 이름 CHECK(칼럼2 < a) ...) ALTER TABLE 테이블명 ADD CONSTRAINT 이름 제약문 /* 제약 추가 */ ALTER TABLE 테이블명 DROP CONSTRAINT 제약명 /* 제약 삭제 */ ALTER TABLE 테이블명 NOCHECK CONSTRAINT 제약명 /* 제약 효력 정지 */ ALTER TABLE 테이블명 CHECK CONSTRAINT 제약명 /* 제약 효력 유효 */ ** 제약명은 테이블을 만들때 사용자가 지정한 파일 이름을 말한다
2. View(뷰) ** 자주 사용하는 SELECT문이 있을때 사용한다 테이블에 존재하는 칼럼들중 특정 칼럼을 보이고 싶지 않을때 사용한다 테이블간의 결합등으로 인해 복잡해진 SELECT문을 간단히 다루고 싶을때 사용한다 ** 뷰를 만들때 COMPUTE, COMPUTE BY, SELECT INTO, ORDER BY는 사용할 수 없고 #, ##으로 시작되는 임시 테이블도 뷰의 대상으로 사용할 수 없다 ** 뷰의 내용을 보고 싶으면 SP_HELPTEXT 뷰명 을 사용한다 CREATE VIEW 뷰명 AS SELECT문 /* 뷰 만들기 */ CREATE VIEW 뷰명 (별칭1, 별칭2, ...) AS SELECT문 /* 칼럼의 별칭 붙이기 */ CREATE VIEW 뷰명 AS (SELECT 칼럼1 AS 별칭1, 칼럼2 AS 별칭2, ...) ALTER VIEW 뷰명 AS SELECT문 /* 뷰 수정 */ DROP VIEW 뷰명 /* 뷰 삭제 */ CREATE VIEW 뷰명 WITH ENCRYPTION AS SELECT문 /* 뷰 암호 */ ** 한번 암호화된 뷰는 소스 코드를 볼 수 없으므로 뷰를 암호화하기전에 뷰의 내용을 스크립트 파일로 저장하여 보관한다 INSERT INTO 뷰명 (칼럼1, 칼럼2, ...) VALUES (값1, 값2, ...) UPDATE 뷰명 SET 칼럼=값 WHERE 조건 ** 원래 테이블에 있는 반드시 값을 입력해야 하는 칼럼이 포함되어 있지 않거나 원래 칼럼을 사용하지 않고 변형된 칼럼을 사용하는 뷰는 데이타를 추가하거나 갱신할 수 없다 ** WHERE 조건을 지정한 뷰는 뷰를 만들었을때 WITH CHECK OPTION을 지정하지 않았다면 조건에 맞지 않는 데이타를 추가할 수 있지만 뷰에서는 보이지 않는다 또한 뷰를 통해서 가져온 조건을 만족하는 값도 뷰의 조건에 만족하지 않는 값으로도 갱신할 수 있다 CREATE VIEW 뷰명 AS SELECT문 WITH CHECK OPTION ** 뷰의 조건에 맞지 않는 INSERT나 UPDATE를 막을려면 WITH CHECK OPTION을 설정한다
3. Stored Procedure(저장 프로시저) ** 데이타베이스내에서 SQL 명령을 컴파일할때 캐시를 이용할 수 있으므로 처리가 매우 빠르다 반복적으로 SQL 명령을 실행할 경우 매회 명령마다 네트워크를 경유할 필요가 없다 어플리케이션마다 새로 만들 필요없이 이미 만들어진 프로시저를 반복 사용한다 데이타베이스 로직을 수정시 프로시저는 서버측에 있으므로 어플리케이션을 다시 컴파일할 필요가 없다 ** 저장 프로시저의 소스 코드를 보고 싶으면 SP_HELPTEXT 프로시저명 을 사용한다
CREATE PROC 프로시저명 AS SQL문 /* 저장 프로시저 */ CREATE PROC 프로시저명 변수선언 AS SQL문 /* 인수를 가지는 저장 프로시저 */ CREATE PROC 프로시저명 WITH ENCRYPTION AS SQL문 /* 저장 프로시저 보안 설정 */ CREATE PROC 프로시저명 /* RETURN 값을 가지는 저장 프로시저 */ 인수1 데이타형, ... 인수2 데이타형 OUTPUT AS SQL문 RETURN 리턴값 DROP PROCEDURE 프로시저명1, 프로시저명2, ... /* 저장 프로시저 삭제 */ 명령어 BEGIN ... END /* 문장의 블록 지정 */ DECLARE @변수명 데이타형 /* 변수 선언 */ SET @변수명=값 /* 변수에 값 지정 */ PRINT @변수명 /* 한개의 변수 출력 */ SELECT @변수1, @변수2 /* 여러개의 변수 출력 */ IF 조건 /* 조건 수행 */ 수행1 ELSE 수행2 WHILE 조건1 /* 반복 수행 */ BEGIN IF 조건2 BREAK - WHILE 루프를 빠져 나간다 CONTINUE - 수행을 처리하지 않고 조건1로 되돌아간다 수행 END EXEC 저장프로시저 /* SQL문을 실행 */ EXEC @(변수로 지정된 SQL문) GO /* BATCH를 구분 지정 */
에제 1. 기본 저장 프로시저 CREATE PROC pUpdateSalary AS UPDATE Employee SET salary=salary*2
2. 인수를 가지는 저장 프로시저 CREATE PROC pUpdateSalary @mul float=2, @mul2 int AS UPDATE Employee SET salary=salary* @Mul* @mul2 EXEC pUpdateSalary 0.5, 2 /* 모든 변수에 값을 대입 */ EXEC pUpdateSalary @mul2=2 /* 원하는 변수에만 값을 대입 */
3. 리턴값을 가지는 저장 프로시저 CREATE PROC pToday @Today varchar(4) OUTPUT AS SELECT @Today=CONVERT(varchar(2), DATEPART(dd, GETDATE())) RETURN @Today DECLARE @answer varchar(4) EXEC pToday @answer OUTPUT SELECT @answer AS 오늘날짜
4. 변수 선언과 대입, 출력 ** @는 사용자 변수이고 @@는 시스템에서 사용하는 변수이다
DECLARE @EmpNum int, @t_name VARCHAR(20) SET @EmpNum=10
SET @t_name = '강우정' SELECT @EmpNum
이런식으로 다중입력도 가능함.
SELECT @no = no, @name = name, @level = level FROM OF_Member WHERE userId ='"
4. Trigger(트리거) ** 한 테이블의 데이타가 편집(INSERT/UPDATE/DELETE)된 경우에 자동으로 다른 테이블의 데이타를 삽입, 수정, 삭제한다 ** 트리거 내용을 보고 싶으면 SP_HELPTRIGGER 트리거명 을 사용한다
CREATE TRIGGER 트리거명 on 테이블명 FOR INSERT AS SQL문 /* INSERT 작업이 수행될때 */ CREATE TRIGGER 트리거명 on 테이블명 AFTER UPDATE AS SQL문 /* UPDATE 작업이 수행되고 난 후 */ CREATE TRIGGER 트리거명 on 테이블명 INSTEAD OF DELETE AS SQL문 DROP TRIGGER 트리거명
5. Cursor(커서) ** SELECT로 가져온 결과들을 하나씩 읽어들여 처리하고 싶을때 사용한다 ** 커서의 사용방법은 OPEN, FETCH, CLOSE, DEALLOCATE등 4단계를 거친다 ** FETCH에는 NEXT, PRIOR, FIRST, LAST, ABSOLUTE {n / @nvar}, RELATIVE {n / @nvar}가 있다
SET NOCOUNT on /* SQL문의 영향을 받은 행수를 나타내는 메시지를 숨긴다 */ DECLARE cStatus SCROLL CURSOR /* 앞뒤로 움직이는 커서 선언 */ FOR SELECT ID, Year, City FROM aPlane FOR READ onLY OPEN cStatus /* 커서를 연다 */ DECLARE @ID varchar(50), @Year int, @City varchar(50), @Status char(1) FETCH FROM cStatus INTO @ID, @Year, @City /* 커서에서 데이타를 하나씩 가져온다 */ WHILE @@FETCH_STATUS=0 /* 커서가 가르키는 결과의 끝까지 */ BEGIN IF @Year <= 5 SET @Status='A' ELSE IF @Year> 6 AND @Year <= 9 SET @Status='B' ELSE SET @Status='C' INSERT INTO aPlane(ID, City, Status) VALUES(@ID, @Year, @Status) FETCH FROM cStatus INTO @ID, @Year, @City /* 커서에서 데이타를 하나씩 가져온다 */ END CLOSE cStaus /* 커서를 닫는다 */ DEALLOCATE cStatus /* 커서를 해제한다 */
보안과 사용자 권한 ** 보안의 설정 방법은 크게 WINDOWS 보안과 SQL 보안으로 나뉘어 진다 ** 사용자에게 역할을 부여하는데는 서버롤과 데이타베이스롤이 있다
1. SA(System Administrator) ** 가장 상위의 권한으로 SQL 서버에 관한 전체 권한을 가지고 모든 오브젝트를 만들거나 수정, 삭제할 수 있다
2. DBO(Database Owner) ** 해당 데이타베이스에 관한 모든 권한을 가지며 SA로 로그인해서 데이타베이스에서 테이블을 만들어도 사용자는 DBO로 매핑된다 ** 테이블이름의 구조는 서버이름.데이타베이스이름.DBO.테이블이름이다
3. DBOO(Database Object Owner) ** 테이블, 인덱스, 뷰, 트리거, 함수, 스토어드 프로시저등의 오브젝트를 만드는 권한을 가지며 SA나 DBO가 권한을 부여한다
4. USER(일반 사용자) ** DBO나 DBOO가 해당 오브젝트에 대한 사용 권한을 부여한다
[SQL 서버 2005 실전 활용] ① 더 강력해진 T-SQL : http://blog.naver.com/dbwpsl/60041936511
MSSQL 2005 추가 쿼리 http://kuaaan.tistory.com/42 or=#747474>사용 방법 http://kuaaan.tistory.com/42 or=#747474>사용 방법 http://kuaaan.tistory.com/42
-- ANY (OR 기능)
WHERE 나이 >= (SELECT 나이 FROM .......)
-- GROUP BY ALL (WHERE 절과 일치 하지 않는 내용은 NULL 로 표시)
SELECT 주소, AVG(나이) AS 나이 FROM MEMBER
WHERE 성별='남'
GROUP BY ALL 주소
-- 모든 주소는 나오며 성별에 따라 나이 데이터는 NULL
-- WITH ROLLUP
SELECT 생일, 주소, SUM(나이) AS 나이
FROM MEMBER
GROUP BY 생일, 주소 WITH ROLLUP
-- 생일 과 주소를 요약행이 만들어짐
-- WITH CUBE (위의 예제를 기준으로, 주소에 대한 별도 그룹 요약데이터가 하단에 붙어나옴)
-- GROUPING(컬럼명) ROLLUP 또는 CUBE 의 요약행인지 여부 판단(요약행이면 1 아니면 0)
SELECT 생일, 주소, GROUPING(생일) AS 생일요약행여부
-- COMPUTE (GROUP BY 와 상관없이 별도의 테이블로 요약정보 생성)
SELECT 생일, 나이
FROM MEMBER
COMPUTE SUM(나이), AVG(나이)
-- PIVOT (세로 컬럼을 가로 변경)
EX)
학년/ 반 / 학생수
1 1 40
1 2 45
2 1 30
2 2 40
3 1 10
3 2 10
위와 같이 SCHOOL 테이블이 있다면
SELECT 그룹할컬럼명, [열로변환시킬 행]
FROM 테이블
PIVOT(
SUM(검색할열)
FOR 옆으로만들 컬럼명
IN([열로변환시킬 행])
) AS 별칭
--실제 쿼리는
SELECT 학년, [1반], [2반]
FROM SCHOOL
PIVOT(
SUM(학생수)
FOR 반
IN([1반], [2반])
) AS PVT
-- UNPIVOT (가로 컬럼을 세로로)
SELECT 학년, 반, 학생수
FROM SCHOOL
UNPIVOT(
FOR 반
IN( [1반], [2반] )
) AS UNPVT
-- RANK (순위)
SELECT 컬럼명, RANK() OVER( ORDER BY 순위 기준 컬럼명) AS 순위
FROM 테이블
-- PARTITION BY (그룹별로 순위 생성)
SELECT 컬럼명, RANK() OVER( PARTITION BY 그룹기준컬러명 ORDER BY 순위기준컬럼명) AS 순위
FROM 테이블
-- FULL OUTER JOIN (LEFT 조인과 RIGHT 조인을 합한것)
양쪽 어느 하나라도 데이가 있으면 나옴
-- ROW_NUMBER (순차번호 생성)
SELECT ROW_NUMBER() OVER( ORDER BY 기준열) AS 번호, 컬럼명
FROM 테이블
자료형 (데이터타입)
MSSQL 서버에서 사용하는 데이터 타입(자료형)은 두가지가 있다.
1. 시스템에서 제공하는 System data type
내가 생각해도 참 깔끔하게 정리를 잘 해놨다. -_-;;
성능향상을 위해서라면 가능한 작은 자료형을 사용하도록 하자.
불필요하게 int를 쓰는 경우가 흔한데, 사용될 데이터의 범위를 생각해 본 후, 가장 작은 범위의 자료형을 사용하도록 하자.
2. 사용자가 정의 하는 User data type
사용자 정의 자료형이 왜 필요한가?
C언어를 비로한 몇 가지 언어에서 나타나는 사용자 정의 데이터 유형과 같다.
프로젝트에 참가하는 사람들이 동일한 데이터 타입을 사용하고자 원하거나,
한 컬럼에 대한 데이터 유형을 더 쉽게 사용하려고 할 때 적용시킬 수 있다.
사용 방법
sp_addtype [새로운 타입 이름], '[SQL 데이터 타입]'
예
sp_addtype empID, 'CHAR(10)'
sp_addtype empNO, 'CHAR(12)'
* 참고로 자료형을 바꾸는 함수로는 CONVERT() 가 있다.
사용방법
SELECT CONVERT(CHAR(30), title) FROM BOOKS
--> title 라는 컬럼을 CHAR(30) 으로 변환하여 가져오는 것이다.
SELECT CONVERT(VARCHAR(10), 35)
--> 35 라는 숫자를 VARCHAR(10) 으로 변환한다.
흐름 제어문의 종류
흐름 제어문이란 언어의 처리 순서를 변경하거나 변수를 선언하는 등의 문장을 말한다.
○ GOTO 라벨
- GOTO 를 만나면 라벨 부분으로 무조건 건너뛴다. 라벨은 라벨: 으로 정의한다.
예)
DECLARE...
SET...
table_label1:
.
.
IF .... GOTO table_label1
.
--> GOTO table_label1 을 만나면 table_label1: 부분으로 건너 뛴다.
○ RETURN
- RETURN 은 무조건 수행을 중지 하고 원래 호출된 곳으로 돌아간다.
○ IF / ELSE
- 이름만 들어도 알만한 문법이다. 주의 할 점은 조건문 안의 SQL문장이 둘 이상이라면 BEGIN / END 로 묶어 준다.
예)
IF @begin > @end
BEGIN
SELECT * FROM 테이블1 WHERE 조건
RETURN
END
ELSE
SELECT * FROM.........
○ WHILE / BREAK / CONTINUE
- WHILE 다음에 조건으로 반복을 하게 되고,
BREAK 를 만나면 무조건 WHILE 을 벗어나고,
CONTINUE 를 만나면 무조건 WHILE 로 돌아간다.
예)
WHILE 조건
BEGIN
반복하는 동안 실행할 문장들...
IF 조건
BREAK
IF 조건
CONTINUE
END
○ EXEC[UTE]
- EXEC 와 EXECUTE 는 같은 의미이다.
- 두가지 용도로 사용되는데,
- 첫 번째, 스토어드 프로시저를 실행할 때 사용한다.
예)
EXEC stored_procedure
- 두 번재, SQL 문장을 동적으로 변화시키며 수행할 수 있다.
예)
DECLARE @sql VARCHAR(255)
SET @sql = 'SELECT COUNT(*) FROM '
SET @sql = @sql + 'titles '
EXEC(@sql)
--> 실제 수행되는 문장은 SELECT COUNT(*) FROM titles 가 된다.
○ CASE
- 단순 CASE
예)
SELECT
CASE type
WHEN 'a' THEN 'Apple'
WHEN 'b' THEN 'Banana'
ELSE 'No Data'
END AS 과일
, price
FROM titles
- 검색된 CASE
예)
SELECT title_id
, qty AS '수량'
, CASE
WHEN qty >= 50 THEN 'A'
WHEN qty >= 30 THEN 'B'
ELSE 'C'
END AS '등급'
FROM titles
NULLIF : 표현식 1과, 2를 비교
>> 표현식 1과, 2를 비교 두 표현식이 같으면 NULL 을 리턴, 같지 않으면 표현식 1을 리턴 SELECT NULLIF(2,3) -- 2 리턴 SELECT NULLIF(3,3) -- NULL 리턴 사용예 : 양쪽필드에서 수량이 같으면 NULL을 리턴하고 하니면 첫 필드의 값을 리턴할때
COALESCE : 뒤에 오는 표현식중에 처음으로 오는 NULL 이 아닌 값을 리턴
SELECT COALESCE(NULL, 3, 4) -- 3 리턴 SELECT COALESCE(1,NULL,) -- 1 리턴 SELECT COALESCE(NULL,NULL,4) -- 4 리턴
SELECT COALESCE(NULL,NULL, NULL)--문법오류
사용예 : 하나만 값을 가지고 있는 컬럼에서 비교해서 값을 가져올때 매우 좋다
SET : 세성 옵션 (한번설정하면 세션이 끊어 질때까지 유용)
=====================================================================================
SET nocount OFF : 몇개 행이 처리 되었는지 결과보여주는 것을 설정한다 '
SET rowcount [n]
ex) SET rowcount 4 SELECT title_id FROM titles ORDER BY TITLE
SET rowcount 0
: 보여줄 목록의 행수를 선택한다. 목록의 정렬의 임의로 설정되므로 필요한 순서가 있다면 ORDER BY 를 사용해야 한다. 사용후엔 반드시 SET ROWCOUNT 0 을 이용해서 원위치 시켜놓아야 한다 '
============================== 유니크 키 넣기 ============================== ALTER TABLE 테이블명 ADD UNIQUE(컬럼1, 컬럼2) ALTER TABLE 테이블명 DROP CONSTRAINT 유니크명
============================== IDENTITY 관련 ==============================
http://l2j.co.kr/1460
http://mcdasa.cafe24.com/wordpress/mssql-identity-scope_identity%ec%9d%98-%ec%b0%a8%ec%9d%b4%ec%a0%90/
============================== INSERT SELECT ==============================
http://blog.naver.com/sorkanj2000/50106968790
============================== UPDATE SELECT ==============================
http://applejara.tistory.com/302
============================== JOIN UPDATE ==============================
http://blog.naver.com/ballkiss/30096524074
sp_addtype [새로운 타입 이름], '[SQL 데이터 타입]'
예
sp_addtype empID, 'CHAR(10)'
sp_addtype empNO, 'CHAR(12)'
* 참고로 자료형을 바꾸는 함수로는 CONVERT() 가 있다.
사용방법
SELECT CONVERT(CHAR(30), title) FROM BOOKS
--> title 라는 컬럼을 CHAR(30) 으로 변환하여 가져오는 것이다.
SELECT CONVERT(VARCHAR(10), 35)
--> 35 라는 숫자를 VARCHAR(10) 으로 변환한다.
흐름 제어문의 종류
흐름 제어문이란 언어의 처리 순서를 변경하거나 변수를 선언하는 등의 문장을 말한다.
○ GOTO 라벨
- GOTO 를 만나면 라벨 부분으로 무조건 건너뛴다. 라벨은 라벨: 으로 정의한다.
예)
DECLARE...
SET...
table_label1:
.
.
IF .... GOTO table_label1
.
--> GOTO table_label1 을 만나면 table_label1: 부분으로 건너 뛴다.
○ RETURN
- RETURN 은 무조건 수행을 중지 하고 원래 호출된 곳으로 돌아간다.
○ IF / ELSE
- 이름만 들어도 알만한 문법이다. 주의 할 점은 조건문 안의 SQL문장이 둘 이상이라면 BEGIN / END 로 묶어 준다.
예)
IF @begin > @end
BEGIN
SELECT * FROM 테이블1 WHERE 조건
RETURN
END
ELSE
SELECT * FROM.........
○ WHILE / BREAK / CONTINUE
- WHILE 다음에 조건으로 반복을 하게 되고,
BREAK 를 만나면 무조건 WHILE 을 벗어나고,
CONTINUE 를 만나면 무조건 WHILE 로 돌아간다.
예)
WHILE 조건
BEGIN
반복하는 동안 실행할 문장들...
IF 조건
BREAK
IF 조건
CONTINUE
END
○ EXEC[UTE]
- EXEC 와 EXECUTE 는 같은 의미이다.
- 두가지 용도로 사용되는데,
- 첫 번째, 스토어드 프로시저를 실행할 때 사용한다.
예)
EXEC stored_procedure
- 두 번재, SQL 문장을 동적으로 변화시키며 수행할 수 있다.
예)
DECLARE @sql VARCHAR(255)
SET @sql = 'SELECT COUNT(*) FROM '
SET @sql = @sql + 'titles '
EXEC(@sql)
--> 실제 수행되는 문장은 SELECT COUNT(*) FROM titles 가 된다.
○ CASE
- 단순 CASE
예)
SELECT
CASE type
WHEN 'a' THEN 'Apple'
WHEN 'b' THEN 'Banana'
ELSE 'No Data'
END AS 과일
, price
FROM titles
- 검색된 CASE
예)
SELECT title_id
, qty AS '수량'
, CASE
WHEN qty >= 50 THEN 'A'
WHEN qty >= 30 THEN 'B'
ELSE 'C'
END AS '등급'
FROM titles
NULLIF : 표현식 1과, 2를 비교
>> 표현식 1과, 2를 비교 두 표현식이 같으면 NULL 을 리턴, 같지 않으면 표현식 1을 리턴 SELECT NULLIF(2,3) -- 2 리턴 SELECT NULLIF(3,3) -- NULL 리턴 사용예 : 양쪽필드에서 수량이 같으면 NULL을 리턴하고 하니면 첫 필드의 값을 리턴할때
COALESCE : 뒤에 오는 표현식중에 처음으로 오는 NULL 이 아닌 값을 리턴
SELECT COALESCE(NULL, 3, 4) -- 3 리턴 SELECT COALESCE(1,NULL,) -- 1 리턴 SELECT COALESCE(NULL,NULL,4) -- 4 리턴
SELECT COALESCE(NULL,NULL, NULL)--문법오류
사용예 : 하나만 값을 가지고 있는 컬럼에서 비교해서 값을 가져올때 매우 좋다
SET : 세성 옵션 (한번설정하면 세션이 끊어 질때까지 유용)
=====================================================================================
SET nocount OFF : 몇개 행이 처리 되었는지 결과보여주는 것을 설정한다 '
SET rowcount [n]
ex) SET rowcount 4 SELECT title_id FROM titles ORDER BY TITLE
SET rowcount 0
: 보여줄 목록의 행수를 선택한다. 목록의 정렬의 임의로 설정되므로 필요한 순서가 있다면 ORDER BY 를 사용해야 한다. 사용후엔 반드시 SET ROWCOUNT 0 을 이용해서 원위치 시켜놓아야 한다 '
============================== 유니크 키 넣기 ============================== ALTER TABLE 테이블명 ADD UNIQUE(컬럼1, 컬럼2) ALTER TABLE 테이블명 DROP CONSTRAINT 유니크명
============================== IDENTITY 관련 ==============================
http://l2j.co.kr/1460
http://mcdasa.cafe24.com/wordpress/mssql-identity-scope_identity%ec%9d%98-%ec%b0%a8%ec%9d%b4%ec%a0%90/
============================== INSERT SELECT ==============================
http://blog.naver.com/sorkanj2000/50106968790
============================== UPDATE SELECT ==============================
http://applejara.tistory.com/302
============================== JOIN UPDATE ==============================
http://blog.naver.com/ballkiss/30096524074
sp_addtype [새로운 타입 이름], '[SQL 데이터 타입]'
예
sp_addtype empID, 'CHAR(10)'
sp_addtype empNO, 'CHAR(12)'
* 참고로 자료형을 바꾸는 함수로는 CONVERT() 가 있다.
사용방법
SELECT CONVERT(CHAR(30), title) FROM BOOKS
--> title 라는 컬럼을 CHAR(30) 으로 변환하여 가져오는 것이다.
SELECT CONVERT(VARCHAR(10), 35)
--> 35 라는 숫자를 VARCHAR(10) 으로 변환한다.
흐름 제어문의 종류
흐름 제어문이란 언어의 처리 순서를 변경하거나 변수를 선언하는 등의 문장을 말한다.
○ GOTO 라벨
- GOTO 를 만나면 라벨 부분으로 무조건 건너뛴다. 라벨은 라벨: 으로 정의한다.
예)
DECLARE...
SET...
table_label1:
.
.
IF .... GOTO table_label1
.
--> GOTO table_label1 을 만나면 table_label1: 부분으로 건너 뛴다.
○ RETURN
- RETURN 은 무조건 수행을 중지 하고 원래 호출된 곳으로 돌아간다.
○ IF / ELSE
- 이름만 들어도 알만한 문법이다. 주의 할 점은 조건문 안의 SQL문장이 둘 이상이라면 BEGIN / END 로 묶어 준다.
예)
IF @begin > @end
BEGIN
SELECT * FROM 테이블1 WHERE 조건
RETURN
END
ELSE
SELECT * FROM.........
○ WHILE / BREAK / CONTINUE
- WHILE 다음에 조건으로 반복을 하게 되고,
BREAK 를 만나면 무조건 WHILE 을 벗어나고,
CONTINUE 를 만나면 무조건 WHILE 로 돌아간다.
예)
WHILE 조건
BEGIN
반복하는 동안 실행할 문장들...
IF 조건
BREAK
IF 조건
CONTINUE
END
○ EXEC[UTE]
- EXEC 와 EXECUTE 는 같은 의미이다.
- 두가지 용도로 사용되는데,
- 첫 번째, 스토어드 프로시저를 실행할 때 사용한다.
예)
EXEC stored_procedure
- 두 번재, SQL 문장을 동적으로 변화시키며 수행할 수 있다.
예)
DECLARE @sql VARCHAR(255)
SET @sql = 'SELECT COUNT(*) FROM '
SET @sql = @sql + 'titles '
EXEC(@sql)
--> 실제 수행되는 문장은 SELECT COUNT(*) FROM titles 가 된다.
○ CASE
- 단순 CASE
예)
SELECT
CASE type
WHEN 'a' THEN 'Apple'
WHEN 'b' THEN 'Banana'
ELSE 'No Data'
END AS 과일
, price
FROM titles
- 검색된 CASE
예)
SELECT title_id
, qty AS '수량'
, CASE
WHEN qty >= 50 THEN 'A'
WHEN qty >= 30 THEN 'B'
ELSE 'C'
END AS '등급'
FROM titles
NULLIF : 표현식 1과, 2를 비교
>> 표현식 1과, 2를 비교 두 표현식이 같으면 NULL 을 리턴, 같지 않으면 표현식 1을 리턴 SELECT NULLIF(2,3) -- 2 리턴 SELECT NULLIF(3,3) -- NULL 리턴 사용예 : 양쪽필드에서 수량이 같으면 NULL을 리턴하고 하니면 첫 필드의 값을 리턴할때
COALESCE : 뒤에 오는 표현식중에 처음으로 오는 NULL 이 아닌 값을 리턴
SELECT COALESCE(NULL, 3, 4) -- 3 리턴 SELECT COALESCE(1,NULL,) -- 1 리턴 SELECT COALESCE(NULL,NULL,4) -- 4 리턴
SELECT COALESCE(NULL,NULL, NULL)--문법오류
사용예 : 하나만 값을 가지고 있는 컬럼에서 비교해서 값을 가져올때 매우 좋다
SET : 세성 옵션 (한번설정하면 세션이 끊어 질때까지 유용)
=====================================================================================
SET nocount OFF : 몇개 행이 처리 되었는지 결과보여주는 것을 설정한다 '
SET rowcount [n]
ex) SET rowcount 4 SELECT title_id FROM titles ORDER BY TITLE
SET rowcount 0
: 보여줄 목록의 행수를 선택한다. 목록의 정렬의 임의로 설정되므로 필요한 순서가 있다면 ORDER BY 를 사용해야 한다. 사용후엔 반드시 SET ROWCOUNT 0 을 이용해서 원위치 시켜놓아야 한다 '
============================== 유니크 키 넣기 ============================== ALTER TABLE 테이블명 ADD UNIQUE(컬럼1, 컬럼2) ALTER TABLE 테이블명 DROP CONSTRAINT 유니크명
============================== IDENTITY 관련 ==============================
http://l2j.co.kr/1460
http://mcdasa.cafe24.com/wordpress/mssql-identity-scope_identity%ec%9d%98-%ec%b0%a8%ec%9d%b4%ec%a0%90/
============================== INSERT SELECT ==============================
http://blog.naver.com/sorkanj2000/50106968790
============================== UPDATE SELECT ==============================
http://applejara.tistory.com/302
============================== JOIN UPDATE ==============================
http://blog.naver.com/ballkiss/30096524074
0 notes
Text
Get Workday count with out weekends
This has come up before in my line of work, to get a total workday count but with out the weekends. (DATEDIFF(dd, StartDate, EndDate) + 1) -(DATEDIFF(wk, StartDate, EndDate) * 2) -(CASE WHEN DATENAME(dw, StartDate) = 'Sunday' THEN 1 ELSE 0 END) -(CASE WHEN DATENAME(dw, EndDate) = 'Saturday' THEN 1 ELSE 0 END) AS TotalWorkDays
0 notes
Text
Entity Framework 6 and SQL Server Compact (9) –SqlCeFunctions and DbFunctions
One of the major improvements to the SQL Server Compact Entity Framework provider in version 6 is the addition of the SqlCeFunctions class, and enhanced support for the so-called “canonical” database functions (DbFunctions/EntityFunctions). Just to repeat, the SQL Server Compact providers are delivered in the EntityFramework.SqlServerCompact (for 4.0) and EntityFramework.SqlServerCompact.Legacy (for 3.5 SP2) NuGet packages. The DbFunctions (previously named EntityFunctions) in the System.Data.Entity namespace define a set of (CLR) methods that expose conceptual model canonical functions in LINQ to Entities queries. Before EF6.1, the SQL Server Compact provider only supported the functions defined for Entity Framework 1, not it supports all the functions listed here, except the following: Date/Time functions with micro and nanosecond precision (as only datetime exists as a data type in SQL Server Compact), StDev, StDevP, Var, VarP, Reverse, CurrentUtcDateTime, CurrentDateTimeOffset, GetTotalOffsetMinutes. This means you can now have the SQL Compact engine excute LINQ to Entities expressions like String.Contains, String.EndsWith, String.Left etc. The System.Data.Entity.SqlServerCompact.SqlCeFunctions class allows you to call database specific functions directly in LINQ to Entities queries, and the following functions have been implemented (for documentation of these, see the equivalent functions for SQL Server listed here): String functions CharIndex NChar PatIndex Replicate Space StringConvert Stuff Unicode Math functions Acos Asin Atan Atan2 Cos Cot Degrees Exp Log Log10 Pi Radians Rand Sign Sin SquareRoot Tan Date functions DateAdd DateDiff DateName DatePart GetDate, Other DataLength So you can compose LINQ to Entities queries like:var result = db.Album.Where(a => SqlCeFunctions.DataLength(a.Title) > 20).ToList(); And the resulting SQL will look like this: SELECT . AS , . AS , . AS FROM AS WHERE (DATALENGTH(.)) > 20
0 notes
Text
[Packt] An 18 Hour SQL/SQL Server 2014/Visual Studio 2017 Course [Video]
Learn SQL, SQL Server, SSMS, ASP.NET, Visual Studio, C#, HTML and More Video Course! Friends, please take the time to review the curriculum carefully before buying so you can see exactly whether this is the right course for you. Please watch the free preview videos so you can see whether the presentation style works for you. Please remember I am just one person, and I make my videos often after I have been working for many hours already. You are interested in real coding. You enjoy detailed explanations. You can take videos that are 13 minutes on average. You enjoy seeing how different technologies interact. You understand that most of the SQL is done in the Microsoft Management Studio, and not Visual Studio. You’re not looking for fancy graphics, a talking head, or entertainment. You’re looking for practical, carefully explained examples, where the code is written line by line. If you use SQL Server versions below 2014, some of the code will not work. You must use versions 2014 and above. This course uses ASP.NET, and not MVC. Style and Approach You understand this is a beginners course, and therefore everything is developed over a period of 18 hours, but by the end, assuming you complete the course, you will have many powerful, practical skills. What You Will Learn Learn SQL and SQL Server. Learn the basics of Microsoft Visual Studio 2017 Community, Microsoft ASP.NET with SQL Server, enough C# to connect to databases. Learn enough JQuery to make database controls interactive, the fundamentals of SQL Server administration. Learn how to work with built-in functions, how to write joins, how to make web pages for collecting and storing information, how to format data in web pages and tables, how to represent queries with pictures for easier understanding. Learn how to use program flow control features like if/else and more, how to write stored procedures, how to write user-defined functions, how to write views and triggers, how to use the SQL Server debugger. Learn how to create, save, commit and rollback transactions. Learn how to create users, database roles, logins, and work with securables, how to backup, restore, attach and detach databases. Learn how to use and save Table variables, how to create and use common table expressions, how to work with string functions like char, and substring, how to use the lag/lead functions and the over clause. Learn how to work with date functions like Datename, Datepart, getDate and more. Learn how to build dynamic theme switching with JQuery, how to build a dashboard with C#/CSS/HTML/SQL and JQuery, how to perform data validation, how to print to printers, PDF’s, Google Drive, and the Cloud. Learn how to build a web interface layout that can be dragged, dropped and saved between page loads. Authors Tom O. Tom O. has nine years experience as a teacher of mathematics, physics, statistics, and programming. He worked for five years as a database programmer using various technologies such as .NET, Clipper, SQL, SQL Server, SAS, Excel, and others. He is the publisher of one of the most successful programming courses, called “Learn C# With Visual Studio 2013”. Currently, he is working as a mathematics and computer science teacher at a college in NY. Related Education: Master of Science in Applied Statistical Computing, Kennesaw State University; Bachelor of Arts, Pure Mathematics, Queens College; Associates of Science in Computer ProgrammingMicroeconomics Certificate, MIT; source https://ttorial.com/an-18-hour-sqlsql-server-2014visual-studio-2017-course-video
source https://ttorialcom.tumblr.com/post/176084895738
0 notes
Text
[Packt] An 18 Hour SQL/SQL Server 2014/Visual Studio 2017 Course [Video]
Learn SQL, SQL Server, SSMS, ASP.NET, Visual Studio, C#, HTML and More Video Course! Friends, please take the time to review the curriculum carefully before buying so you can see exactly whether this is the right course for you. Please watch the free preview videos so you can see whether the presentation style works for you. Please remember I am just one person, and I make my videos often after I have been working for many hours already. You are interested in real coding. You enjoy detailed explanations. You can take videos that are 13 minutes on average. You enjoy seeing how different technologies interact. You understand that most of the SQL is done in the Microsoft Management Studio, and not Visual Studio. You're not looking for fancy graphics, a talking head, or entertainment. You're looking for practical, carefully explained examples, where the code is written line by line. If you use SQL Server versions below 2014, some of the code will not work. You must use versions 2014 and above. This course uses ASP.NET, and not MVC. Style and Approach You understand this is a beginners course, and therefore everything is developed over a period of 18 hours, but by the end, assuming you complete the course, you will have many powerful, practical skills. What You Will Learn Learn SQL and SQL Server. Learn the basics of Microsoft Visual Studio 2017 Community, Microsoft ASP.NET with SQL Server, enough C# to connect to databases. Learn enough JQuery to make database controls interactive, the fundamentals of SQL Server administration. Learn how to work with built-in functions, how to write joins, how to make web pages for collecting and storing information, how to format data in web pages and tables, how to represent queries with pictures for easier understanding. Learn how to use program flow control features like if/else and more, how to write stored procedures, how to write user-defined functions, how to write views and triggers, how to use the SQL Server debugger. Learn how to create, save, commit and rollback transactions. Learn how to create users, database roles, logins, and work with securables, how to backup, restore, attach and detach databases. Learn how to use and save Table variables, how to create and use common table expressions, how to work with string functions like char, and substring, how to use the lag/lead functions and the over clause. Learn how to work with date functions like Datename, Datepart, getDate and more. Learn how to build dynamic theme switching with JQuery, how to build a dashboard with C#/CSS/HTML/SQL and JQuery, how to perform data validation, how to print to printers, PDF's, Google Drive, and the Cloud. Learn how to build a web interface layout that can be dragged, dropped and saved between page loads. Authors Tom O. Tom O. has nine years experience as a teacher of mathematics, physics, statistics, and programming. He worked for five years as a database programmer using various technologies such as .NET, Clipper, SQL, SQL Server, SAS, Excel, and others. He is the publisher of one of the most successful programming courses, called "Learn C# With Visual Studio 2013". Currently, he is working as a mathematics and computer science teacher at a college in NY. Related Education: Master of Science in Applied Statistical Computing, Kennesaw State University; Bachelor of Arts, Pure Mathematics, Queens College; Associates of Science in Computer ProgrammingMicroeconomics Certificate, MIT; source https://ttorial.com/an-18-hour-sqlsql-server-2014visual-studio-2017-course-video
0 notes
Text
Transact-SQL ( Section 2)
Transact-SQL ( Section 2)
Introduction to Joins
Inner joins
Outer Joins (its used in Left,Right and Full join)
Cross Joins
Self Joins
Union Queries
INTERSECT and EXCEPT Queries
INTERSECT
its Like inner join
EXCEPT
its Like outer joins
EXCEPT and INTERSECT
Introduction to function
Scalar Fuctions
Year(datecolumn) 2018 Day(datecolumn) 22 Datename(mm,datecolumn) June Datename(dw,datecolumn) Saturday Datediff(yy,dob,…
View On WordPress
0 notes
Text
CSG1207 | Database Design and Implementation Online Store | Database
Presentation, Notional, and Formatting (2 marks per task) A small number of marks are awarded for presentation, notation, and formatting. This contains:a. Presentation and appearance of word processed PDF file for Task 1 b. Appropriateness and consistency of notation used for diagrams/data dictionary in
Task 1
c. Applicable commenting and formatting of scripts in
Task 2
Timeline (4 marks) Write a query that selects the number of orders and total cost of those orders per year and month. Each row of the query results should include a year, the name of a month, the number of orders placed in that month, and the total cost of those orders.The results should be in sequential order, with the earliest month of the earliest year at the top. Using the Ordered Item View in this query is recommended.Hint: Ensure that your sample data includes orders from different years and months. The DATENAME function can be used to determine the name of a month based on a date.Query 7 – Category Statistics (4 marks) Write a query that selects the following details for each category:a. The category number and category name
b. The number of items in the category c. The cost of the cheapest item in the category d. The cost of the most expensive item in the category e. The average cost of all items in the category rounded to two decimal places
f. Make sure that the results include all categories, even those with no items in them. Query 6 – Big Spenders (3 marks) Write a query that selects the customer number, customer’s full name, number of orders and combined total cost (of all of their orders) of the three customers who have spent the most. Using the Customer View and the Ordered Item View in this query is recommended.Hint: You may need to use DISTINCT obtain a correct count of the customer’s number of orders (refer to Lecture 9 Slide 34). Query 5 – Items per Customer (3 marks) Write a query that selects the customer number, customer’s full name and a total number of items that they have ordered in their orders. Customers who have never ordered anything should appear in the results with a 0 as their total number of ordered items. Order the results by the number of ordered items in descending order. Using the Customer View and the Ordered Item View in this query is recommended.Hint: Remember to take the quantity column of ordered items into account. Query 4 – Order Summary (3 marks) Write a query that selects the invoice number, order date, number of items ordered and total cost of each order. Order the results by the total cost in descending order. Using the Order View and the Ordered Item View in this query is recommended. Query 3 – Unpopular Items (3 marks) Write a query that selects the item number, item name, and price of any items that have never been purchased, i.e. Items that never appear in the ordered item table.Hint: Select items whose item numbers do not appear in the ordered item table. Consider using NOT IN and a subquery.Query 2 – Customer Interests List (3 marks) Write a query that concatenates details about customer interests in categories into a single column (give the resulting column an alias of “interests”). Present the information in the following format:UPPERCASE CUSTOMER NAME is interested in the UPPERCASE CATEGORY NAME category should only include the interests of customers who have a “Y” in the newsletter preference column. Order the results by the category name. Using the Customer View in this query is recommended.These views necessarily create joined or ‘flat’ versions of important tables of the database, providing you a convenient way to access and calculated information that is stored in multiple tables.You are fortified to use the views to simplify the queries which follow – you can use a view in a SELECT statement in just the same way as you can use a table, often evading the need to write the same joins and calculations over and over.When writing a view, it is easiest to write the SELECT statement first, and only add the CREATE VIEW statement to the starting once you have confirmed that the SELECT statement is working correctly. If you want to create extra views to use in the queries which follow, contain them in this file.Joins are enclosed in Module 9, and views are enclosed in Module 10.Filename: queries.sqlWrite SELECT statements to complete the following queries. If you do not understand or are not sure about exactly what a query requires, contact your tutor. Contain all specified columns and orderings. Using your views on these queries can significantly reduce their complexity and the amount of code to write. Query 1 – Item Search (2 marks) write a query that selects all details of items that have a price of up to $30.00 and include the word ‘shirt’ in the item name. Order the results by price, in descending order.Ordered Item View (2 marks) Create a view which selects the below-mentioned details of all ordered items:a. The invoice number and customer number of the order that the ordered item is a part of
b. The item number, name and price c. The quantity ordered and the subtotal
Order View (2 marks)
Create a view which the following details of all orders:a. All of the columns in the order table
b. The customer’s first name and last name, concatenated into the full name
c. The billing address and delivery addressThe final create.sql should be able to create your database and populate it with enough data to make all views and queries return meaningful results.Ensure all referential integrity is observed – you cannot add data to a column with a foreign key constraint if you do not yet have data in the table it refers to. It is necessary to you are using an auto-incrementing integer, you cannot specify a value for that column when inserting a row of data. Simply pretend the column does not exist when inserting data – do not try to specify a value for it.Note:the data you add is simply for testing purposes, and therefore does not require being particularly realistic, consistent and cohesive. Avoid spending unnecessary amounts of time writing sample data.Filename: views.sqlThe following page includes some general information and tips regarding views. Customer View (2 marks) Create a view which selects the below-mentioned details of all customers, even those without a referrer:a. Their customer number, newsletter preference, and email address
b. Their first name and last name, concatenated into a full name
c. The customer number of their referrer, and their referrer’s full name (if they have one)Task 1 (Database Design)
This task is to design a database for the given scenario on the following page. Your final database design should include approximately eight entities.
Note:The scenario for this assignment is the same as the one from Task ¾ of
Assignment 1.
State any assumptions you have made regarding your database design at the starting of the database design document. Do not make any assumptions that significantly change the structure of the scenario, as this may make Task 2 of the assignment more inappropriate. You need to make assumptions that affect your database design.
Finally, create a data dictionary with an entry for each entity in your database. The entries should list the entity name, a description of its purpose, a list of attributes, and details of any constraints applied to attributes. List the entries in your data dictionary in an applicable table creation order that can be used to create the database. It is necessary that a data dictionary should include all the information required to implement a database. Use the data dictionary in Lecture 4 and the data dictionary of the ‘company’ database (Module 5) as examples.
Some marks are also awarded for presentation and notation (2 marks).
You complete database design should include a list of assumptions, physical and logical diagrams and a data dictionary. This should be submitted as a single PDF file.
Scenario
You need to design and create a database for an online store. The database must encompass the customers, items, categories of items and the order made. You have the below-mentioned information about the way the store operates.
Customers and Addresses
1. Customer details must be recorded. This contains a customer number, first name, last name, email address, password and a column including either a ‘Y’ or an ‘N’ to indicate whether the customer desired to receive the store’s email newsletter.
a. The store wishes to ensure that each customer has a different email address.
2. The store wishes to implement a ‘referral system’ to reward customers who tell others about the store. As a result, customer details should also contain a ‘referrer column, which will include the customer number of the customer who referred them, if applicable.
3. Customers can describe addresses which are stored in the database. A customer can define multiple addresses, and each address is linked with a single customer by their customer number. Along with specifying the address, customers can specify a name for the address, e.g. ‘Home’. An address number is used to uniquely identify each address.
get more information Histogram JAVA Programming Assignment Help
Items & Categories
1. Item details must be recorded. This contains an item number, description, name, and price.
2. A list of item categories must be recorded and the database must keep track of which items are in which categories. All items are in at least one category but can be in some of them.
a. The only category details required are a category number and category name.
3. To receive more applicable newsletters, customers can stipulate which categories they are interested in. which customers are interested in which categories must be stored in a table of the database. The newsletter categories are the same as those which are associated with items.
Orders
1. Details of orders made by customers must be recorded. This contains an invoice number, the order date and customer number who made the order.
a. The order details should comprise two foreign keys referencing the address table- one for the delivery address and one of the billing address.
b. A customer then requires defining at list one address to make an order. The same address can be used for both the delivery and billing address.
2. For each order, the database must also record details of ordered items and the quantity ordered. Each order must include minimum one item, and an item can be in multiple orders.
General Information
The information above defines all of the entities, attributes, and relationships required in the database design.
It is recommended that you use auto-incrementing integers as the main key for most entities in this scenario, even though a composite primary key may be applicable in some tables such as the one keeping track of which items are in which categories.
Make sure to specify the most appropriate data type for each attribute in your data dictionary.
CSI5135 Additional Requirements
If you’re in CSI5135, the below mentioned additional requirements apply. If you’re in CSG1207, you do not need to do implement these requirements.
Make sure that your database design incorporating the following:
a. The name of each category must be unique b. The quantity of an ordered item must be between 1 to 100 with a default of 1 c. Email addresses of customers must contain a ‘@’ symbol. d. For security reasons, customer passwords will be encrypted using ‘bcrypt’ before storing them in a database. You must do some research to define an applicable data type and length for the password column so that it is able to comprise bcrypt hashes.
-It is up to you whether you really put bcrypt hashes into the column when writing your sample data in Task 2- it will not be used in any of the queries.
Some of these necessities will be implemented with the use of CHECK constraints when creating the database. State these CHECK constraints in your data dictionary in a way that clearly define what is being checked, or using the actual SQL code required to create the constraints.
Task 2 (implementation)
As your database has been designed, it is time to implement it in a DBMS, populate the database, and then manipulate the data via queries. The deliverables of this task are 3 files containing SQL statements.
Create your scripts as three ‘.sql’ files, with the filenames listed in the following headings. Templates for the script files are given wit this assignment brief – please use them. Format your code for readability, and use comments for heading ad to give further detail or information about your code if needed. (2 marks)
As each of the script files will include several SQL statements, it is very useful to be aware of a particular feature of SQL Server Management Studio (SSMS): if you have chosen some text in a query window, only the chosen text will be implemented when you press the Execute button.
This makes it easier to test a single statement, or even part of a statement, within a script document. You need to create all of the scripts detailed below.
Filename: create.sql
This file is a creation script, same as the ‘company.sql’ file (Module 5) used to create the company database.
Database Creation & Population Script (7 marks)
Produce a script to create the database you have designed in Task 1. Make sure to give your columns the same data types, properties, and constraints specified in your data dictionary, and ensure to name tables and columns consistently. Include any applicable default values and any CHECK or UNIQUE constraints that you feel are suitable.
Ensure this script can be run multiple times without resulting in any errors. you can use the code at the starting of the creation scripts of the sample databases available in the unit materials to implement this. You will need to follow an applicable creation order when creating your tables.
Following the SQL statements to create your database and its tables, you must contain statements to populate the database with sufficient test data. You only need to populate the database with enough data to make sure that all views and queries return meaningful results. You can start working on your views and queries and write INSERT statements as required for testing as you go.
Order Now
0 notes
Text
cover letter for the post of staff nurse
DateName of hiring agentHospital addressDear SirMadame,I am responding to the advertisement in the November 25,2012 in newspaperfor the post of a staff nurse in the medical surgical unit at XYZ hospital.My background includes 2 years of experience at a large technical urban hospitalwhere i provide c-- cover letter for the post of staff nurse from Job Portal http://www.jobisite.com/article/173-cover-letter-for-the-post-of-staff-nurse
0 notes
Text
cover letter for the post of staff nurse
DateName of hiring agentHospital addressDear SirMadame,I am responding to the advertisement in the November 25,2012 in newspaperfor the post of a staff nurse in the medical surgical unit at XYZ hospital.My background includes 2 years of experience at a large technical urban hospitalwhere i provide c-- cover letter for the post of staff nurse from Job Portal http://www.jobisite.com/article/173-cover-letter-for-the-post-of-staff-nurse
0 notes
Text
Tweeted
#SqlServerHelp - Interesting Datenames https://t.co/U0lyoKbF8A via SSC
— SQL Joker (@sql_joker) November 14, 2017
0 notes
Photo
Lambda から elasticsearch service に何かする [cloudpack OSAKA blog] http://ift.tt/2oKkkqh
ナスです。
elasticsearch service (ES) 2.3 の古くなったインデックスを削除することにしたんですが、完成までわりと苦労したので書きます。
まずは ES への接続
通常、ES へは curl で操作するんですが、この curl に AWS の認証情報をつけることができません。(いや、できるかもしれんけどわからない
今回は、Python で ES に接続します。elasticsearch モジュールがあったので、これも使います。 Python Elasticsearch Client — Elasticsearch 5.2.0 documentation
AWS 認証情報を作るところは、この aws4auth を使います。
requests-aws4auth 0.9 : Python Package Index
http://ift.tt/2oKpByg
AWS4 authentication for Requests
pypi.python.org
pypi.python.org
ES 側は、アクセスポリシーで特定の IAM ロールからのみアクセス許可するようにしています。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/rolename" }, "Action": "es:*", "Resource": "arn:aws:es:ap-northeast-1:123456789012:domain/domainname/*" } ] }
あとは、Lambda から ES へ接続するだけです。今回は下記のサンプルからほぼパクリました。本当にありがとうございます!
IAM ロールの切り替え(API) - AWS Identity and Access Management
http://ift.tt/2oKeTaS
AWS API を使用して、AWS アカウントのリソースへの一時的なアクセス権を付与する IAM ロールに切り替えます。
docs.aws.amazon.com
docs.aws.amazon.com
AWS LambdaからElasticsearch Serviceに接続するときに、IAM Roleを使う
http://ift.tt/2oKqqqD
Amazon ElasticSearch Serviceに接続するとき、アクセスポリシーを使い許可してあげる必要がある。いくつかテンプレートが用意されているのだが、その中の選択肢としてはIAM Userによる認証特定IPからの接続許可フルオープンとなっている。AWS Lambdaから接続するっ...
blog.youyo.info
blog.youyo.info
接続できたらやりたいことを実装
テスト的に 1 週間経ったインデックスは削除するように作りました。作ったのがこれ↓ インデックス名に年月日が含まれていたので、この文字列から何日経過したかを判定しました。普段コードはあまり書かないので、変数名がもう一つかもしれません…
# -*- coding: utf-8 -*- from elasticsearch import Elasticsearch, RequestsHttpConnection from requests_aws4auth import AWS4Auth import requests import json, os import boto3 import datetime region = 'ap-northeast-1' es_endpoint = 'search-domainname-hogehoge.ap-northeast-1.es.amazonaws.com' role_name = 'rolename' def lambda_handler(event, context): es = connect_to_es() for key in (es.indices.get_alias()).keys(): datename=key.split("-") pastdate=datetime.datetime.strptime(datename[len(datename)-1], '%Y.%m.%d') today=datetime.datetime.now() delta=(today-pastdate).days print(str(delta) + ' days has passed since index ' + key + ' was created.') if delta > 7 and es.indices.exists(index=key): if es.indices.delete(index=key): print('[INFO] Index ' + key + ' was deleted successfully.') else: print("[ERROR] Index " + key + " couldn't be deleted.") def connect_to_es(): credentials = get_credential() awsauth = AWS4Auth( credentials['access_key'], credentials['secret_key'], region, 'es', session_token=credentials['token'] ) es = Elasticsearch( hosts=[{'host': es_endpoint, 'port': 443}], http_auth=awsauth, use_ssl=True, verify_certs=True, connection_class=RequestsHttpConnection ) return es def get_credential(): sts_client = boto3.client('sts') assumedRoleObject = sts_client.assume_role( RoleArn="arn:aws:iam::123456789012:role/rolename", RoleSessionName="Access_to_ES_from_lambda" ) credentials = assumedRoleObject['Credentials'] return { 'access_key': credentials['AccessKeyId'], 'secret_key': credentials['SecretAccessKey'], 'token': credentials['SessionToken'] }
今まで curl で取ってきた JSON からデータ取り出していろいろして、ってやってたのが、elasticsearch モジュールに変えただけでむちゃくちゃシンプルなコードになりました!
本当は、Curator ってのを使って楽をしたかったのですが、Amazon ES のサ��ートが微妙だったので、今回はやめました。そのうち普通に使えるようになると信じてます。
elastic/curator
http://ift.tt/1ciq6sw
curator - Curator: Tending your Elasticsearch indices
GitHub
github.com
ここまでたどり着くのに 1 週間弱もかかってしまったけど、これでもう困らないだろう。
元記事はこちら
「Lambda から elasticsearch service に何かする [cloudpack OSAKA blog]」
April 26, 2017 at 02:00PM
0 notes
Text
50% off #A 13 Hour SQL Server 2014 /ASP.NET/CSS/C#/JQuery Course – $10
Push Yourself And Your Skills Hard To Get To The Next Level!
Intermediate Level, – Video: 14 hours Other: 0 mins, 86 lectures
Average rating 4.1/5 (4.1)
Course requirements:
Ability to download and install SQL Server 2014 (100% Free) Ability to download and install Visual Studio 2013 for Web (100% Free)
Course description:
Why learn SQL, SQL Server, and Visual Studio? To build applications today, a programmer must know how to combine the power of various technologies together to produce software that is powerful and web based. The focus of this course is SQL through Microsoft SQL Server 2014, but along the way, you also see how to use Microsoft Visual Studio 2013 for Web , and you get to build a real dashboard system powered by SQL, C#, AJAX, CSS, HTML and JQuery. This course uses Web Forms rather than MVC. Any of these skills alone are valuable, but knowing how to combine these skills makes you immediately standout in the job market. Enroll today, and learn how to give yourself a great competitive advantage in the job world.
1) Learn query writing by using the Microsoft Management Studio
2) Learn query writing by using the Microsoft Visual Studio Query Editor
3) Learn how to create database connected web pages using SQL and XML Data Sources
4) Get color PDF’s for many of the lessons for easy reference
5) Get PDF’s that depict difficult concepts in pictures for improved understanding
6) All in all, there are about 100 PDF’s to accompany the video lectures
7) Get 210 questions so you can feel confident you’re making true progress
8) Learn the basics of database connecting code using Microsoft’s premier programming language: C#
9) Get exposure to modern language features like Lag/Lead
10) Build a dashboard system with SQL Server, ASP Web Forms, C# and JQuery
Given the number of videos, PDF’s, variety of teaching methods, quizzes, and a project that is designed to give you a feeling of what to expect in the real world, we’re confident this is by far the best deal on this site. Join today, and learn truly valuable skills.
Full details Learn SQL Learn SQL Server Learn the Basics of Microsoft Visual Studio 2013 for Web Learn the Basics of Microsoft ASP.NET with SQL Server Learn Enough C# To Connect to Databases Learn Enough JQuery to Make Database Controls Interctive’ Learn the Fundamentals of SQL Server Administration Learn how to work with built in functions Learn how to write joins Learn how to make web pages for collecting and storing information Learn how to format data in web pages and tables Learn how to represent queries with pictures for easier understanding Learn how to use program flow control features like if/else and more Learn how to write stored procedures Learn how to write user defined functions Learn how to write views and triggers Learn how to use the SQL Server debugger Learn how to create, save, commit and roll back transactions Learn how to create users, database roles, logins, and work with securables Learn how to backup, restore, attach and detach databases Learn how to import data into SQL Server from other programs Learn how to bring tables into first, second and third normal form Learn how to work with XML in SQL Server and ASP.NET Controls Learn how to use and save Table variables Learn how to create and use Common Table Expressions Learn how to work with string functions like char, and substring Learn how to use the Lag/Lead Functions and the Over Clause Learn how to work with date functions like Datename, Datepart, getDate and more Learn how to build dynamic theme switching with JQuery Learn how to build dashboard with C#/CSS/HTML/SQL and JQuery Learn how to perform data validation Learn how to print to printers, PDF’s, Google Drive, and the Cloud Build a web based data entry system with C#/SQL, CSS and VS
Full details This course is intended for SQL Server novices This course is intended for ASP.NET novices This course is intended for Visual Studio novices
Reviews:
“The speed of the course and complexity is good.” (David Thomas)
“This is a great course to get to know what’s possible and grow your new skill fast!” (Jason Silva)
“not enough context given – simply demonstrating how to follow a recipe” (Andy)
About Instructor:
Tom Owsiak
Related experience: 12 years supporting top level management with Excel, VBA, MS Access, SQL, Crystal Reports, and contract administration. 2 years IT support. 1 year Computer Lab management, including classes on HTML. Education: BA in Business Administration from the University of Washington. Associates Arts & Science MS SQL Server 2008 DBA Business Intelligence Developer training (MS SQL 2008) VBA for Excel & Access Chinese (Mandarin) Level III TESOL
Instructor Other Courses:
Learn Basic Microsoft Razor with JQuery and Visual Studio Basic SQL Programming With SQL Server 2016 Learn Java with NetBeans! 2D Vector Basics For Unity First Careful Steps Towards Success In C# …………………………………………………………… Tom Owsiak coupons Development course coupon Udemy Development course coupon Web Development course coupon Udemy Web Development course coupon A 13 Hour SQL Server 2014 /ASP.NET/CSS/C#/JQuery Course A 13 Hour SQL Server 2014 /ASP.NET/CSS/C#/JQuery Course course coupon A 13 Hour SQL Server 2014 /ASP.NET/CSS/C#/JQuery Course coupon Jess Nault coupons
The post 50% off #A 13 Hour SQL Server 2014 /ASP.NET/CSS/C#/JQuery Course – $10 appeared first on Udemy Cupón.
from http://www.xpresslearn.com/udemy/coupon/50-off-a-13-hour-sql-server-2014-asp-netcsscjquery-course-10/
0 notes
Text
50% off #A 13 Hour SQL Server 2014 /ASP.NET/CSS/C#/JQuery Course – $10
Push Yourself And Your Skills Hard To Get To The Next Level!
Intermediate Level, – Video: 14 hours Other: 0 mins, 86 lectures
Average rating 4.1/5 (4.1)
Course requirements:
Ability to download and install SQL Server 2014 (100% Free) Ability to download and install Visual Studio 2013 for Web (100% Free)
Course description:
Why learn SQL, SQL Server, and Visual Studio? To build applications today, a programmer must know how to combine the power of various technologies together to produce software that is powerful and web based. The focus of this course is SQL through Microsoft SQL Server 2014, but along the way, you also see how to use Microsoft Visual Studio 2013 for Web , and you get to build a real dashboard system powered by SQL, C#, AJAX, CSS, HTML and JQuery. This course uses Web Forms rather than MVC. Any of these skills alone are valuable, but knowing how to combine these skills makes you immediately standout in the job market. Enroll today, and learn how to give yourself a great competitive advantage in the job world.
1) Learn query writing by using the Microsoft Management Studio
2) Learn query writing by using the Microsoft Visual Studio Query Editor
3) Learn how to create database connected web pages using SQL and XML Data Sources
4) Get color PDF’s for many of the lessons for easy reference
5) Get PDF’s that depict difficult concepts in pictures for improved understanding
6) All in all, there are about 100 PDF’s to accompany the video lectures
7) Get 210 questions so you can feel confident you’re making true progress
8) Learn the basics of database connecting code using Microsoft’s premier programming language: C#
9) Get exposure to modern language features like Lag/Lead
10) Build a dashboard system with SQL Server, ASP Web Forms, C# and JQuery
Given the number of videos, PDF’s, variety of teaching methods, quizzes, and a project that is designed to give you a feeling of what to expect in the real world, we’re confident this is by far the best deal on this site. Join today, and learn truly valuable skills.
Full details Learn SQL Learn SQL Server Learn the Basics of Microsoft Visual Studio 2013 for Web Learn the Basics of Microsoft ASP.NET with SQL Server Learn Enough C# To Connect to Databases Learn Enough JQuery to Make Database Controls Interctive’ Learn the Fundamentals of SQL Server Administration Learn how to work with built in functions Learn how to write joins Learn how to make web pages for collecting and storing information Learn how to format data in web pages and tables Learn how to represent queries with pictures for easier understanding Learn how to use program flow control features like if/else and more Learn how to write stored procedures Learn how to write user defined functions Learn how to write views and triggers Learn how to use the SQL Server debugger Learn how to create, save, commit and roll back transactions Learn how to create users, database roles, logins, and work with securables Learn how to backup, restore, attach and detach databases Learn how to import data into SQL Server from other programs Learn how to bring tables into first, second and third normal form Learn how to work with XML in SQL Server and ASP.NET Controls Learn how to use and save Table variables Learn how to create and use Common Table Expressions Learn how to work with string functions like char, and substring Learn how to use the Lag/Lead Functions and the Over Clause Learn how to work with date functions like Datename, Datepart, getDate and more Learn how to build dynamic theme switching with JQuery Learn how to build dashboard with C#/CSS/HTML/SQL and JQuery Learn how to perform data validation Learn how to print to printers, PDF’s, Google Drive, and the Cloud Build a web based data entry system with C#/SQL, CSS and VS
Full details This course is intended for SQL Server novices This course is intended for ASP.NET novices This course is intended for Visual Studio novices
Reviews:
“The speed of the course and complexity is good.” (David Thomas)
“This is a great course to get to know what’s possible and grow your new skill fast!” (Jason Silva)
“not enough context given – simply demonstrating how to follow a recipe” (Andy)
About Instructor:
Tom Owsiak
Related experience: 12 years supporting top level management with Excel, VBA, MS Access, SQL, Crystal Reports, and contract administration. 2 years IT support. 1 year Computer Lab management, including classes on HTML. Education: BA in Business Administration from the University of Washington. Associates Arts & Science MS SQL Server 2008 DBA Business Intelligence Developer training (MS SQL 2008) VBA for Excel & Access Chinese (Mandarin) Level III TESOL
Instructor Other Courses:
Learn Basic Microsoft Razor with JQuery and Visual Studio Basic SQL Programming With SQL Server 2016 Learn Java with NetBeans! 2D Vector Basics For Unity First Careful Steps Towards Success In C# …………………………………………………………… Tom Owsiak coupons Development course coupon Udemy Development course coupon Web Development course coupon Udemy Web Development course coupon A 13 Hour SQL Server 2014 /ASP.NET/CSS/C#/JQuery Course A 13 Hour SQL Server 2014 /ASP.NET/CSS/C#/JQuery Course course coupon A 13 Hour SQL Server 2014 /ASP.NET/CSS/C#/JQuery Course coupon Jess Nault coupons
The post 50% off #A 13 Hour SQL Server 2014 /ASP.NET/CSS/C#/JQuery Course – $10 appeared first on Udemy Cupón.
from Udemy Cupón http://www.xpresslearn.com/udemy/coupon/50-off-a-13-hour-sql-server-2014-asp-netcsscjquery-course-10/
from https://xpresslearn.wordpress.com/2017/02/04/50-off-a-13-hour-sql-server-2014-asp-netcsscjquery-course-10/
0 notes