본문 바로가기
  • Pozip's House
Sql

Sql - 2

by 포집 2023. 8. 18.

먼저 SQL의 대표적이라 생각할수있는 INSERT , UPDATE, DELETE, SELECT 가 있다.

SELECT는 테이블 내용을 보여주는 명령어,

INSERT 는 추가하는 명령어이다.

UPDATE는 새로운 내용을 집어넣는 명령어이며, 

DELETE는 삭제하는 명령어이다.

 

하지만, UPDATE와 DELETE는 항상 WHERE와 같이 사용해야된다고 생각하면 편하다. 왜냐하면, 여러가지 데이터를 관리하고있는 상황에서 where같은 조건이 아닌 단순 update나 delete를 사용하게되면 전체적으로 모든 데이터가 변동되거나 삭제되는 불상사가 발생될수있기 때문이다. 단순히 나혼자 작업하는 환경이라면 크게 문제가 되지않겠지만, 회사나 협업중이라면 데이터 전체가 변동이되면 혼란이 생길수있기 때문에 왠만해서는 거의 항상 where로 조건을 달아주는것이 안전하고 좋다.

 

 

먼저 SELECT*FROM [테이블명] 을 통해서 테이블에 무슨데이터가 있는지 확인가능하다.

from은 그 테이블을 보여주라는 느낌이다. 

SELECT*FROM [HumanResources].[Department]

실습파일에 있는 테이블을 이용하여 확인해볼려고한다. [HumanResources].[Department]라는 테이블을 보여주게되면,

결과값으로 테이블을 불러와준다. 

 

 

 

다른 테이블은 뭐가있는지 봐보자

SELECT*FROM [HumanResources].[Employee]

[HumanResources].[Employee]

라는 테이블을 확인하게되면

뭔가 엄청많은 내용을 확인할수있다. 여기서

SELECT [BusinessEntityID], [LoginID],[Gender]  FROM [HumanResources].[Employee]

를 사용하게되면[HumanResources].[Employee] 에서 [BusinessEntityID], [LoginID],[Gender]만 찾으라는 뜻이된다.

실행값으론

[BusinessEntityID], [LoginID],[Gender] 이름으로 되어있는 결과만 나오게된다.

 

또는 주어진 누군가의 아이디나 이름등 특정 데이터를 알고있다면

SELECT*FROM [HumanResources].[Employee] WHERE [BusinessEntityID]=25

 

라는식으로 [BusinessEntityID]가 25번인 사람을 찾으라는 뜻이된다.

실행하게되면 [BusinessEntityID]가 25번인 사람만 보여주게되며 굳이 [BusinessEntityID]가 아니여도 다른명과 알고있는 데이터를 입력하면된다.

SELECT*FROM [HumanResources].[Employee] WHERE [OrganizationLevel]=1

[OrganizationLevel] 이 1인사람을 찾았더니

 

로 나오기도한다!

 

SELECT는 사용자가 보기 편하게 오름차순 내림차순으로도 설정할수있는데 이것이 ASC와 DESC이다. ASC는 오름차순으로 DESC는 내림차순으로 볼수있다.

SELECT*FROM [HumanResources].[Employee] ORDER BY [BusinessEntityID] ASC

[BusinessEntityID]를 오름차순으로 하게되면 

보통 우리가 보던 화면과 비슷하게 나오게되고, 내림차순으로 보게되면

SELECT*FROM [HumanResources].[Employee] ORDER BY [BusinessEntityID] DESC

반대된 숫자부터 차례대로 보여주는것을 볼수있다.

 

 

 

 

다음으로 INSERT를 보기위해 

SELECT*FROM [HumanResources].[Department]

내용이 조금은 덜한 [HumanResources].[Department]를 확인해보겠다. 기존 [HumanResources].[Department] 테이블은

로만 나온다. 여기에

insert into [HumanResources].[Department] ([Name],[GroupName],[ModifiedDate]) values
('Marketing2', 'Sales and Marketing2', GETDATE())

를 적용하게되면 

라는 문구가 뜨면 제대로 실행이된것이다. 다시 SELECT를 통해 확인해보면

Marketing2가 추가된것을 볼수가있다. 

 

다음으로 UPDATE는 테이블을 수정하는데 사용된다. 앞서 말했듯이 where는 거의 항상 붙어야한다 생각해야한다.

UPDATE [HumanResources].[Department] SET Name='Mkt2' WHERE DepartmentID=19

기존에 추가한 Marketing2의 이름을 변동하고싶어 DepartmentID가 19번인것을 확인후 이름을 변동하고자 한다. 실행하게되면

로 변동된것을 볼수가있다. 

 

다음으로 DELETE는 내가 원하는 내용을 삭제하는것이다. UPDATE와 마찬가지로 where이 거의 항상 붙어야한다.

DELETE FROM [HumanResources].[Department] WHERE DepartmentID=19

내가 앞에 추가했던 mkt2를 삭제하고자 한다. ID값이 19번인것을 확인후 명령어를 실행하게되면

삭제가 된것을 볼수가있다.

'Sql' 카테고리의 다른 글

Sql - 5 함수-1  (0) 2023.08.22
Sql - 4 특수연산자  (0) 2023.08.22
Sql - 3 비교연산자,논리연산자  (0) 2023.08.21
Sql - 1.5  (0) 2023.08.18
SQL -1  (0) 2023.08.18