-- SQL
구문7가지

 

 

-- DDL : 데이터정의어

-- DML : 데이터조작어

 

 

-- [1] 한줄메모장테이블생성: Memos

Create Table dbo.Memos

(

      Num Int Identity(1,1) Not Null Primary Key,    -- 번호

      Name VarChar(25) Not Null,                     -- 이름

      Email VarChar(50) Null,                        -- 이메일

      Title VarChar (150) Not Null,                  -- 메모(제목)

      PostDate DateTime Default(GetDate()),          -- 작성일

      PostIP VarChar(15) Null                        -- IP주소

)

Go

      

-- 형식: 필드명데이터형식제약조건

-- IDENTITY(속성)(Transact-SQL) : 테이블에ID 열을만듭니다. 이속성은CREATE TABLE ALTER TABLE Transact-SQL 문에사용됩니다.

-- 작성한코드를실행하려면작성한코드를마우스로블록잡아서"개체탐색기" 위에실행버튼을누르면되고, 제대로실행될경우에는아래창에"명령이완료되었습니다"라고메시지가출력된다.

-- 실행후"명령이완료되었습니다" 창을닫으려면"Ctrl + R"을누르면해제된다.

 

 

 

 

 

--[2] 테이블구조변경

-- Alter문을사용해서변경한다.

-- PostIP 컬럼을삭제하고싶다면???

Alter Table dbo.Memos Drop Column PostIP

Go

Alter Table dbo.Memos Add PostIP VarChar(15) Null

Go

 

-- Alter Table 명령어의"온라인도움말"을보고싶으면Alter Table을마우스를블록잡아서Shift + F1을같이누른다.

-- ALTER TABLE(Transact-SQL): 열과제약조건을변경, 추가또는삭제하거나파티션을재할당하거나제약조건과트리거를설정또는해제하여테이블정의를수정합니다.

-- 테이블을수정하고싶을때굳이길고어렵게쿼리문을작성하는방법보다는해당테이블의[디자인]을통해서쉽게편집하는방법을추천. 여기서는내가만든테이블인[dbo.Memos][개체탐색기] -[dbo.Memos] 마우스우클릭-> [디자인]을통해서쉽게편집하면된다.

 

 

 

 

 

--[3] 테이블구조삭제

-- Drop: 한번실행하면트랜젝션처리할때까지는절대로되돌리기할수없으니조심할것!

Drop Table dbo.Memos

Go

 

 

 

 

 

---[4] 테이블에데이터입력: Insert

Insert Memos(Name, Email,Title,PostDate,PostIP)

Values('제시카', 'h@h.com', '안녕.', GetDate(), '127.0.0.1')

Go

 

/*

Insert Into Memos(Name, Email, Title, PostIP)        -- Into는생략가능

Values('제시카', 'h@h.com', '안녕', '127.0.0.1')

Go

*/

 

 

 

--[5] 테이블에서테이터출력/조회: Select

Select * From Memos

Go

Select Num, Name, Email, Title, PostDate, PostIP

From Memos

Order By Num Desc -- 번호필드()에역순으로출력

Go

/*

Select * From Memos

Go

Select Num, Name, Email

From Memos

Where Num > 0

Go

*/

 

 

 

 

--[6] 테이블의테이터를수정: Update

Update Memos

Set

       Name = '김유진',

       Email = 'b@b.com'

Where

       Name = '제시카'

Go

/*

Update Memos

Set

       Name = '김유진'

Where

       Num = 1

Go

*/

 

 

 

--[7] 테이블의데이터를삭제: Delete

Delete Memos

Where Name = '김유진'

Go

/*

Delete Memos

Where Name Like '%'

Go

*/

 

 

 

 

 


'.NET프로그래밍 > SQL Server 2008' 카테고리의 다른 글

8. SQL 구문2 - Select문  (0) 2009.09.10
7. SQL 구문1 - Insert문  (0) 2009.09.10
5. Table(테이블)  (0) 2009.09.09
4. OLE DB 설정 : 원격 접속 테스트  (0) 2009.09.09
3. 사용자 관리  (0) 2009.09.09
Posted by holland14
:
 
  1. 테이블 : 데이터베이스에 실제로 데이터가 저장되는 공간
    1. (레코드) (필드,컬럼) 구성된 표형태로 데이터 보관 : 관계형 데이터베이스
  1. 명령어가 아닌 관리도구로 테이블 생성
    1. 한줄메모장 응용 프로그램 만든다면???
      1. Memos : 메모
        1. Num : 번호, 자동증가
        2. Name : 작성자
        3. Email : 이메일
        4. Title : 메모
        5. PostDate : 작성일, 자동입력


--> 아래 그림에서 "MyDatabase"라는 이름의 데이터베이스에 "Num", "Name", "Email", "Title", "PostDate"의 항목을 넣은 테이블을 생성하였으며 테이블의 이름은 테이블 작성 완료 후 마지막에 이름을 정할 때 "Memos"로 지정하였다. 그림 가운데 있는 테이블에서 "Null 허용"에 체크박스를 하지 않으면 'Null을 허용하지 않는다는 것'이므로 '데이터를 필수로 입력해야 한다'는 의미이다. 반대로 "Null 허용" 체크박스에 '체크'한 것은 'Null을 허용', 즉 '아무것도 입력안해도 상관없다는 것'을 설정해 주는 것이다. 테이블의 "데이터 형식"에서는 각 형식에 맞게 데이터타입(int, varchar 등...)과 입력할 수 있는 최대 데이터크기(25, 100, 150 등...)를 지정해 주면 된다. 테이블의 아래에 있는 [열 속성]그림은 "Num"의 "ID 사양"을 변경하였는데, [ID 사양] -> [(ID)]를 "예"로 설정하면 바로 위의 [ID 사양]도 "예"로 바뀌고 아래의 [ID 증가값]과 [ID 초기값]이 1로 바뀐다.(이 과정은 "Num"의 [ID 사양]을 "예"로 하여 "Num 속성"을 활성화 시키고, "Num"의 초기값을 "1"로 설정하고, 증가값도 "1"씩 자동으로 증가하도록 설정해 준것이다.

--> 테이블 맨 아래에 있는 항목인 [PostDate]도 "Null"허용 체크박스에 체크해 주었고 아래의 [열 속성]에서 [데이터 형식]은 '콤보박스'를 클릭하여 "datetime"으로 설정하고, 바로 윗칸에 있는 [기본값 또는 바인딩]은 "getdate()"로 입력했는데, 이것은 출력시에 컴퓨터의 현재시간을 가져와서 테이블의 " PostDate"셀에 자동입력되어 표시되도록 설정한 것이다.

--> 그리고 테이블의 첫번째 항목인 "Num"을 보면 왼쪽 옆에 "열쇠 그림"으로 체크가 되어 있는 것이 보인다. 이것은 그림 왼쪽에 있는 [개체 탐색기] 바로 위에 "열쇠 그림"을 체크해서 설정된 것인데, 이 "열쇠 그림"은 "기본키"를 설정해 주는데, 이는 테이블 내에서 같은 이름의 데이터가 존재할 때 중복되는 것을 방지해 주는 식별자 역할을 하는 것이다. 예를 들어 이 그림에 있는 한 개의 테이블에서 "홍길동"이라는 이름의 데이터가 2개 존재한다면 "기본키 설정"을 체크하여 중복을 방지하면 되는 것이다. 




--> 테이블에 데이터를 입력한 후에 파일이름을 "Memos"로 지정한 후 '확인'버튼을 누르면 [개체 탐색기]의 [데이터베이스] - [MyDatabase] - [테이블]안에 [dbo.Memos]라는 테이블형식의 파일이 만들어 진것을 볼 수 있다. --> [dbo.Memos] 마우스 우클릭 -> [상위 200개 행 편집]을 클릭하면 [dbo.Memos]테이블에 입력한 데이터가 아래와 같이 출력된다. 위의 테이블에서 "Email"과 "PostDate"의 "Null 허용"체크박스에 체크를 하였는데 "Email"과 "PostDate"항목은 데이터를 입력하지 않아도 상관없으며, 만약 이 2개의 항목에 데이터를 입력하지 않으면 출력되는 테이블에는 해당항목셀에 "NULL"이라고 표시된다. 







Posted by holland14
:
 

OLE DB 설정 : 원격 접속 테스트

    1. DB접속을 위한 4가지 필수 조건(항목) : 커넥션 스트링(Connection String)
      1. Server / Data Source
      2. Database / Initial Catalog
      3. User ID / Uid
      4. Password / Pwd
    1. 데이터베이스 연결문자열 : 닷넷 프로그래밍에서 필요
      1. ConnectionString = "Server=(local)\SQLExpress;Database=MyDatabase;User ID=My;Password=Pa$$w0rd;";
      2. ConnectionString="Data Source=(local)\SQLExpress;Initial Catalog=MyDatabase;uid=My;pwd=Pa$$w0rd;";
    1. UDL 파일을 만들어서 데이터베이스 연결문자열을 생성
      1. *.txt -> 확장자를 *.udl 변경 -> 속성 -> 4가지 정보 기록 저장 -> udl 파일을 노트패드로 열면 데이터베이스 연결문자열을 얻을 있다.
        1. ASP3.0까지는(.NET 이전버전) Provider 사용
        2. ASP.NET 이후로(.NET 이후버전) Provider 제외해서 사용


          

           
          ** 추가 참고자료

          "MyDatabase"라는 DB에 접근하려면 아래에서 4가지 정보가 필요하다.

          [oledb]

          ; Everything after this line is an OLE DB initstring
          Provider=SQLOLEDB.1;Password=rkfcl;Persist Security Info=True;User ID=My;Initial Catalog=MyDatabase;Data Source=(local)\SQLExpress

           

           

           

           



          
Posted by holland14
:
 
  1. 사용자관리 : 로그인 사용자
      1. Windows Server 최고관리자 : Administrator
      2. SQL Server 최고관리자 : sa
      3. 일반 계정(모든 기능할 수 가질 수 있는 계정만들기)
        1. 아이디 : My
        2. 암호 : Pa$$w0rd
        3. 권한 : MyDatabase 모든권한(db owner)

 



** 참고용 추가 필기

- Sql Server 구성관리자-SQL Server서비스에서 SQL Server(MSSQLSERVER)실행중이어야 함
- 데이터베이스-보안-로그인-우클릭-새 로그인-아이디,암호,어떤DB,어떤권한(4가지)정해줌. 중요!

- 주의! 해당데이터베이스-보안-사용자 절대 아님!
- 사용자매핑에서 권한 부여 db_owner
- 연결메뉴 클릭해서 데이터베이스엔진
- SQL Server인증선택하고 새롭게 만든 아이디, 패스워드로 들어가기
- 관리는 sa나 Administrator로 들어와서 관리
- Createuser등 명령어로 만들기 가능




 



 

Posted by holland14
:
 
  1. Database : 데이터(Data) 모아 놓는 캐비닛 역할을 하는 파일시스템
    1. 하나의 데이터베이스(파일) 여러 개의 테이블(레코드들의 집합) SQL 개체들을 모아서 하나의 이름으로 관리할 있는 구조
    2. 예를 들어, 닷넷코리아 사이트의 모든 정보는 DotNetKorea.MDF 파일에 모두 저장되어져 있다. 공지사항, 자유게시판, 회원정보
    3. 데이터 저장
      1. 텍스트 파일에 보관
      2. DB 데이터를 보관 - SQL구문을 이용해 쉽게 저장 및 불러오기 가능.
      3. XML 데이터를 보관
  1. 확장자
    1. MDF : Primary : 실제 데이터
    2. LDF : Log : 로그파일 - 셋업파일, 설정 정보
    3. NDF : Secondary : MDF파일과 동일하지만 물리적으로 파일을 따로 보관하고 싶을 때 사용. C드라이브와 D,E,F...드라이브로 나눠서 저장 가능
  1. 데이터베이스 생성
    1. DB : Hawaso, DotNetKorea, VisualAcademy,…,RedPlus,
      1. MyDatabase 생성

 


 ** 참고용 추가 필기

- 데이터베이스 생성시 필요한 요소 : 이름(회사명, 주제, 사이트명, 프로젝트명, 관리자 등), 호스트 업체에서는 사이트 이름으로 만듬. 

- 기본으로 설치 했을 경우 C드라이브-Program Files-Microsoft SQL Server-MSSQL10.SQLEXPRESS-MSSQL-DATA 경로에 새 데이터 베이스 저장됨
(.mdf 파일과 .ldf 파일이 저장) 

- 데이터베이스 생성하기 : 데이터베이스-우클릭-새데이터베이스

- 명령어로 데이터베이스 생성하기 : Create 명령어 : master데이터베이스에서 새쿼리 클릭

--명령어로 데이터베이스 만들기
Create Database MyDatabaseTwo
Go


- 위의 코드 작성후 블록으로 잡아서 !실행

- Create 명령어는 사용빈도 적지만 뒤에 나오는 Select, Delete 등의 명령어는 많이 사용한다.

 


 

Posted by holland14
:
 
  1. 설치 환경구성
    1. 다운로드 : http://www.microsoft.com/express/sql/download/
      1. SQL Server 2008 Express 버전 : 무료
      2. SQL Server 2008 Standard 버전 : 상용
    1. 설치 동영상
      1. http://www.hawaso.com/JeilStudy/BoardList.asp?BoardName=Sample
    1. 엔진이름 : (local) == 서버명 == IP주소( 컴퓨터를 나타냄)
      1. SQL Express : (local)\SQLExpress
      2. SQL Standard 이상 : (local)
        1. (local) 사용 가능
        2. (local)\원하는이름
          1. (local)\RedPlusSql
      1. SQL Server 삭제(?) : MSDN 검색
    1. 설치후 확인
      1. 인증 : Windows 인증 -> SQL Server 혼합 인증 변경
      2. sa 사용자 : 로그인 허용




** 참고용 추가필기

ㄱ.
       ex) (local)\RedPlusSql
         SQL이름을 정확히 알아야 함. DB연동 시 필요
  익스프레스버전:(local)\SQLExpress :  Visual Studio는 기본적으로 익스프레스엔진을 사용(Visual Studio를 설치하면 SQL Server Expresee버전 엔진이 설치된다.)

ㄴ.
 - 설치 중 기능 선택시 주의 : 엔진, 관리도구, 온라인 설명서 정도만 설치해도 됨
 - 서비스계정 : 엔진 수동이면 컴퓨터 껐다 키면 sql서버 중지됨. 자동이면 sql서버가 컴퓨터 킬 때 마다 시작됨
 - 실제 서버라면 시작 유형을 자동으로 선택
 - 데이터베이스 엔진 구성에서 인증 모드 중요.
 -  개발자를 위한 인증 모드는 무조건 혼합 모드로 함
 - 삭제하려면 msdn 검색
 

 <반드시 확인해야 할 2가지>
  1) 인증변경 : 엔진 마우스 오른쪽 클릭-속성-보안-SQL Server 및 Windows 인증 모드로 변경
  2) 보안-로그인-sa-우클릭-속성-상태-데이터베이스엔진연결권한허용,로그인사용으로 체크 (반드시 주의!)

Posted by holland14
: