2017. 12. 1. 09:52

[IN]

-조건의 범위를 지정, 값은 콤마로 구분하야 묶으며, 이 값 중 하나 이상과 일치하면 조건에 맞는것으로 판단


ex)

Select prod_name, prod_price

from Products

Where vend_id IN ('d111', 'b111')

order by prod_name;


=>  Products 테이블에 vend_id가 'd111' 또는 'b111'인 Row의 prod_name과 prod_price를 prod_name으로 정렬하여 Return




SELECT COUNT(*) AS NUM_ITEMS,

       MIN(PROD_PRICE) AS PRICE_MIN,

       MAX(PROD_PRICE) AS PRICE_MAX,

       AVG(PROD_PRICE) AS PRICE_AVG,

FROM PRODUCTS;



[GROUP BY]


SELECT VEND_ID, COUNT(*) AS NUM_PRODS

FROM PRODUCTS

GROUP BY VEND_ID;



[HAVING]

- GROUP BY 의 조건절. GROUP BY용 WHERE 이라고 생각하면 됨.

SELECT VEND_ID, COUNT(*) AS NUM_PRODS

FROM PRODUCTS

GROUP BY VEND_ID

HAVING COUNT(*) > 2;


WHERE은 그룹화 전에 필터링, HAVING은 그룹화 후 필터링



[2중쿼리]


SELECT CUST_ID

FROM ORDERS

WHERE ORDER_NUM

IN (SELECT ORDER_NUM 

    FROM ORDERITEMS

    WHERE PROD_ID = 'AA1');


[조인]

SELECT VEND_NAME, PROD_NAME, PROD_PRICE

FROM VENDERS, PRODUCTS

WHERE VENDORS.VEND_ID = PRODUCTS.VEND_ID;


-내부조인

SELECT VEND_NAME, PROD_NAME, PROD_PRICE

FROM VENDORS INNER JOIN PRODUCTS

ON VENDORS.VEND_ID = PRODUCTS.VEND_ID


ON 은 JOIN 사용시 WHERE 이라고 생각하면 됨.


INNER JOIN 은 조건이 맞는 COLUMN만 표기를 한다면, OUTER JOIN은 LEFT OUTER JOIN 이나 RIGHT OUTER JOIN 이냐에 따라서

LEFT인 경우 왼쪽 테이블의 모든 정보 + 조건 정보, RIGHT인 경우 조건정보 + 오른쪽 테이블의 모든 정보 식으로 표현된다.


LEFT : *= 

RIGHT : =*


SELECT CUSTOERS.CUST_ID, ORDERS.ORDER_NUM

FROM CUSTOMERS, ORDERS

WHERE CUSTOMERS.CUST_ID *= ORDER.CUST_ID;


[UNION]

SQL 쿼리를 결합하는데 사용


SELECT CUST_NAME, CUST_CONTACT, CUST_EMAIL

FROM CUSTOMERS

WHERE CUST_STATE IN ('IL','IN','MI');


SELECT CUST_NAME, CUST_CONTACT, CUST_EMAIL

FROM CUSTOMERS

WHERE CUST_NAME = 'FUN4ALL';


==>

SELECT CUST_NAME, CUST_CONTACT, CUST_EMAIL

FROM CUSTOMERS

WHERE CUST_STATE IN ('IL','IN','MI')

UNION 

SELECT CUST_NAME, CUST_CONTACT, CUST_EMAIL

FROM CUSTOMERS

WHERE CUST_NAME = 'FUN4ALL';


UNION 사용시 중복결과도 모두 표현하고 싶을 경우 UNION 대신 UNION ALL 을 사용하면 된다.



[insert]


insert into Customers (cust_id,

cust_name,

cust_address,

cust_city,

cust_state,

cust_zip)

values('100006',

'Toy land',

'123 andy',

'new york',

'ny',

'11111');













'DB > MSSQL' 카테고리의 다른 글

[MSSQL] For 문으로 데이터 넣기  (0) 2017.10.24
외부 접속 허용  (0) 2017.10.23
Try Catch 예제  (0) 2017.09.05
오전오후 -> datetime 변환  (0) 2017.03.28
index 방법  (0) 2017.02.23
Posted by 까망후니
2017. 10. 24. 17:33

DECLARE @count INT

SET @count = 1


WHILE @count <= 1000


BEGIN

INSERT INTO T_TAGS (id, timeStamp, value) VALUES ('TEST', DATEADD(SECOND, @count,'2017-10-01 00:00:00') , @count)

SET @count = @count+1

END



'DB > MSSQL' 카테고리의 다른 글

기본 문법 중 자꾸 까먹는것들 위주로..  (0) 2017.12.01
외부 접속 허용  (0) 2017.10.23
Try Catch 예제  (0) 2017.09.05
오전오후 -> datetime 변환  (0) 2017.03.28
index 방법  (0) 2017.02.23
Posted by 까망후니
2017. 10. 23. 14:56

1. 방화벽 오픈(1433)

2. SQL Server Configuration Manager(SQL 서버 구성관리자) 실행

3. SQL Server 네트워크 구성 -> SQL~~~ 에 대한 포로토콜 -> TCP/IP 사용 & 아래의 포트 오픈

4. SQL 재시작

'DB > MSSQL' 카테고리의 다른 글

기본 문법 중 자꾸 까먹는것들 위주로..  (0) 2017.12.01
[MSSQL] For 문으로 데이터 넣기  (0) 2017.10.24
Try Catch 예제  (0) 2017.09.05
오전오후 -> datetime 변환  (0) 2017.03.28
index 방법  (0) 2017.02.23
Posted by 까망후니
2017. 9. 5. 22:29
BEGIN TRY
    SELECT *
        FROM sys.messages
        WHERE message_id = 21;
END TRY
GO
-- The previous GO breaks the script into two batches,
-- generating syntax errors. The script runs if this GO
-- is removed.
BEGIN CATCH
    SELECT ERROR_NUMBER() AS ErrorNumber;
END CATCH;
GO


'DB > MSSQL' 카테고리의 다른 글

[MSSQL] For 문으로 데이터 넣기  (0) 2017.10.24
외부 접속 허용  (0) 2017.10.23
오전오후 -> datetime 변환  (0) 2017.03.28
index 방법  (0) 2017.02.23
MSSQL express to standard upgrade  (0) 2016.11.18
Posted by 까망후니
2017. 3. 28. 17:16

set @eventdatetime = '2017-03-03 오전 10:20:30'

convert(datetime, 

                  left(@eventdatetime,charindex(' ',@eventdatetime,1)-1) 

                + ' ' 

                + right(@eventdatetime,charindex(' ',reverse(@eventdatetime),1)-1) 

                + case when charindex('오전',@eventdatetime,1) > 0 then 'AM' else 'PM' 

                  end 

      ) 



==========================================================


(convert(datetime,

left(@timeStamp, charindex(' ',@timeStamp, 1)-1)

+' '

+right(@timeStamp, charindex(' ',reverse(@timeStamp), 1)-1)

+case when charindex('오전', @timestamp, 1) > 0 then 'AM' else 'PM'

end)

'DB > MSSQL' 카테고리의 다른 글

외부 접속 허용  (0) 2017.10.23
Try Catch 예제  (0) 2017.09.05
index 방법  (0) 2017.02.23
MSSQL express to standard upgrade  (0) 2016.11.18
[MSSQL] MSSQL MANAGEMENT에서 테이블 수정 안되는 오류  (0) 2015.12.14
Posted by 까망후니
2017. 2. 23. 06:00

1. table에 index 존재 여부 확인 방법

exec SP_HELPINDEX [table명]

ex) table명 : testTable인경우

exec SP_HELPINDEX [testTable]


2. table에 index 추가(*noncluster 방법임)

create index index명 on table명(Column1, Column2)

ex) table명 : testTable, index명 : testIndex, Column1 : id, Column2: name 인경우

create index testIndex on testTable(id, name)



'DB > MSSQL' 카테고리의 다른 글

Try Catch 예제  (0) 2017.09.05
오전오후 -> datetime 변환  (0) 2017.03.28
MSSQL express to standard upgrade  (0) 2016.11.18
[MSSQL] MSSQL MANAGEMENT에서 테이블 수정 안되는 오류  (0) 2015.12.14
[MSSQL] Password 분실  (0) 2015.12.02
Posted by 까망후니
2016. 11. 18. 14:29

https://blog.brankovucinec.com/2014/07/23/upgrade-from-sql-server-2014-express-to-standard-edition/

'DB > MSSQL' 카테고리의 다른 글

Try Catch 예제  (0) 2017.09.05
오전오후 -> datetime 변환  (0) 2017.03.28
index 방법  (0) 2017.02.23
[MSSQL] MSSQL MANAGEMENT에서 테이블 수정 안되는 오류  (0) 2015.12.14
[MSSQL] Password 분실  (0) 2015.12.02
Posted by 까망후니
2015. 12. 14. 10:27

MSSQL MANAGEMENT STUDIO를 사용해서 테이블 수정을 했는데, 오류! 발생!

지우고 다시 만들어야 한다는..ㄷㄷㄷ

이런 개뼈다구 같은 경우가 어딨어..옵션이 있겠지 하고 찾아봤더니


도구->옵션

디자이너(Designers)->테이블 및 데이터베이스 디자인

테이블옵션 -> 테이블을 다시 만들어야 하는 변경 내용 저장 사용 안함   <=============요거 비활성화 해야 함(unCkeck)


이러고 저장하고 다시 수정저장하면


잘된다~

'DB > MSSQL' 카테고리의 다른 글

Try Catch 예제  (0) 2017.09.05
오전오후 -> datetime 변환  (0) 2017.03.28
index 방법  (0) 2017.02.23
MSSQL express to standard upgrade  (0) 2016.11.18
[MSSQL] Password 분실  (0) 2015.12.02
Posted by 까망후니
2015. 12. 2. 09:43

이 방법은 Microsoft SQL Server Management Studio로 Password를 변경하는 방법이다.


Admin 계정으로 로그인 후에 새쿼리 창을 열고 아래의 방법으로 입력하고 수정하려는 걔정과 Password를 입력하고 실행하면 된다.


sp_password null, '변경할 패스워드 입력', '계정정보 입력';


ex) sp_password null, 'Password', 'sa';

'DB > MSSQL' 카테고리의 다른 글

Try Catch 예제  (0) 2017.09.05
오전오후 -> datetime 변환  (0) 2017.03.28
index 방법  (0) 2017.02.23
MSSQL express to standard upgrade  (0) 2016.11.18
[MSSQL] MSSQL MANAGEMENT에서 테이블 수정 안되는 오류  (0) 2015.12.14
Posted by 까망후니