>  기사  >  데이터 베이스  >  SQL 데이터 연산의 기초(초급) 4

SQL 데이터 연산의 기초(초급) 4

黄舟
黄舟원래의
2016-12-17 14:31:06889검색

SQL을 사용하여 새 테이블 만들기

참고:

아직 자신만의 데이터베이스를 만들지 않았다면 3장으로 돌아가서 지금 이 라이브러리를 만드세요. master, tempdb 또는 기타 시스템 데이터베이스에 데이터를 추가하면 안 됩니다.

SQL에서 Sever 프로그램 그룹(작업 표시줄)에서 ISQL/w 프로그램을 시작합니다. 쿼리 창이 나타나면 창 상단의 드롭다운 목록에서 3장에서 생성한 데이터베이스를 선택합니다. 그런 다음 쿼리 창에 다음 SQL 문을 입력하고 쿼리 실행 버튼을 클릭하여 이 문을 실행합니다.

CREATE TABLE 방명록(방문자 VARCHAR(40),댓글 TEXT,입장 날짜

DATETIME)

모든 것이 정상이라면 결과 창에 다음 텍스트가 표시됩니다(예외가 발생하는 경우 3장을 참조하세요).

이것은 명령이 데이터를 반환하지 않았으며 어떤 행도 반환하지 않았습니다.

축하합니다. 첫 번째 테이블을 만들었습니다!

생성한 테이블을 방명록이라고 하며 이 테이블을 사용하여 사이트 방문자에 대한 정보를 저장할 수 있습니다. REEATE를 사용합니다. TABLE 문으로 생성된 테이블은 두 부분으로 구성됩니다. 첫 번째 부분은 테이블 이름을 지정하고, 두 번째 부분은 괄호로 묶인 각 필드의 이름과 속성을 쉼표로 구분합니다.

방명록 테이블에는 방문자, 댓글의 세 가지 필드가 있습니다. 그리고 입사일. 방문자 필드에는 방문자의 이름이 저장되고, 댓글 필드에는 사이트에 대한 방문자의 의견이 저장되며, 입력 날짜 필드에는 방문자가 사이트를 방문한 날짜와 시간이 저장됩니다.

각 필드 이름 뒤에는 특수 표현식이 옵니다. 예를 들어, 필드 이름 설명 뒤에는 TEXT 표현식이 옵니다. 이 표현식은 필드의 데이터 유형을 지정합니다. 데이터 유형에 따라 필드에 저장할 수 있는 데이터 종류가 결정됩니다. 필드 설명에는 텍스트 정보가 포함되어 있으므로 해당 데이터 유형은 텍스트로 정의됩니다.

필드에는 다양한 데이터 유형이 있습니다. 다음 섹션에서는 SQL에서 지원하는 몇 가지 중요한 데이터 유형을 설명합니다.

필드 유형

다른 필드 유형은 다양한 유형의 데이터를 저장하는 데 사용됩니다. 테이블을 생성하고 사용할 때 일반적으로 사용되는 5가지 필드 유형(문자, 텍스트, 숫자, 논리 및 날짜)을 이해해야 합니다.

문자 데이터

문자 데이터는 매우 유용합니다. 짧은 문자열 정보를 저장해야 할 경우 항상 문자 데이터를 사용합니다. 예를 들어 HTML을 사용할 수 있습니다. 양식의 텍스트 상자에 수집된 정보는 문자 필드에 배치됩니다.

가변 길이 문자열 정보를 저장하는 필드를 생성하려면 표현식을 사용하면 됩니다. VARCHAR. 이전에 생성한 방명록 테이블을 고려하세요.

CREATE TABLE 방명록(방문자 VARCHAR(40),댓글 TEXT,입력 날짜

DATETIME)

이 예에서 필드 방문자의 데이터 유형은 VARCHAR입니다. 데이터 유형 뒤에 괄호 안의 숫자를 기록해 두십시오. 이 숫자는 이 필드에 저장될 수 있는 문자열의 최대 길이를 지정합니다. 이 예에서 방문자 필드는 최대 40자의 문자열을 저장할 수 있습니다. 이름이 너무 길면 문자열이 40자로 잘립니다.

VARCHAR 유형은 최대 255자의 문자열을 저장할 수 있습니다. 더 긴 문자열 데이터를 저장하려면 텍스트 데이터를 사용할 수 있습니다(다음 섹션에서 설명).

또 다른 유형의 문자 데이터는 고정 길이 문자 데이터를 저장하는 데 사용됩니다. 다음은 이 데이터 유형을 사용하는 예입니다.

CREATE TABLE 방명록(방문자 CHAR(40),댓글 TEXT,입장일)

DATETIME)

이 예에서 필드 방문자는 40자의 고정 길이 문자열을 저장하는 데 사용됩니다. CHAR 표현식은 이 필드가 고정 길이 문자열이어야 함을 지정합니다.

VARCHAR과 CHAR 데이터의 차이는 미묘하지만 매우 중요합니다. 40자 길이의 VARCHAR 필드에 Bill 데이터를 입력한다고 가정합니다. 게이츠. 나중에 이 필드에서 이 데이터를 검색할 때 검색하는 데이터의 길이는 10자(Bill 문자열)입니다. 게이츠의 길이.

이제 CHAR 필드에 40자 길이의 문자열을 입력하면 데이터를 검색할 때 검색되는 데이터의 길이는 40자가 됩니다. 문자열 끝에 추가 공백이 추가됩니다.

자신만의 사이트를 구축할 때 CHAR 필드보다 VARCHAR 필드를 사용하는 것이 훨씬 더 편리하다는 것을 알게 될 것입니다. VARCHAR 필드를 사용할 때 데이터에서 추가 공백을 자르는 것에 대해 걱정할 필요가 없습니다.

VARCHAR 필드의 또 다른 뛰어난 이점은 CHAR 필드에 비해 메모리와 하드 디스크 공간을 덜 차지한다는 것입니다. 데이터베이스가 클 경우 이러한 메모리 및 디스크 공간 절약이 매우 중요해집니다.

텍스트 데이터

문자 데이터는 문자열 길이를 255자 이하로 제한합니다. 텍스트 데이터를 사용하면 20억 개가 넘는 문자열을 저장할 수 있습니다. 큰 문자열을 저장해야 할 경우 텍스트 데이터를 사용해야 합니다.

다음은 텍스트 데이터를 사용하는 예입니다.

CREATE TABLE 방명록(방문자 VARCHAR(40),댓글 TEXT,입장 날짜

DATETIME)

이 예에서 댓글 필드는 사이트에 대한 방문자의 의견을 저장하는 데 사용됩니다. 텍스트 데이터에는 길이가 없지만 이전 섹션에서 언급한 문자 데이터에는 길이가 있습니다. 텍스트 필드의 데이터는 일반적으로 비어 있거나 매우 큽니다.

HTML에서 이동할 때 양식의 여러 줄 텍스트 편집 상자(TEXTAREA)에서 데이터를 수집할 때 수집된 정보를 텍스트 필드에 저장해야 합니다. 그러나 텍스트 필드 사용을 피할 수 있는 경우에는 사용하지 마십시오. 텍스트 필드는 크고 느리며, 텍스트 필드를 과도하게 사용하면 서버 속도가 느려질 수 있습니다. 텍스트 필드도 많은 디스크 공간을 차지합니다.

경고:

텍스트 필드에 데이터(null 값 포함)를 입력하면 해당 데이터에 2K의 공간이 자동으로 할당됩니다. 기록을 삭제하지 않으면 이 저장소를 다시 가져올 수 없습니다.

숫자 데이터

SQL 서버는 다양한 숫자 데이터 유형을 지원합니다. 정수, 소수, 금액을 저장할 수 있습니다.

일반적으로 테이블에 숫자를 저장해야 할 때는 정수(INT) 데이터를 사용합니다. INT 유형 데이터의 테이블 번호 범위는 -2,147,483,647부터 2,147,483,647까지의 정수이다. 다음은 INT 유형의 데이터를 사용하는 방법의 예입니다.

CREATE TABLE 방문 로그(방문자 VARCHAR(40),방문 횟수 INT)

이 표는 귀하의 사이트 방문 횟수를 기록하는 데 사용할 수 있습니다. 아무도 귀하의 사이트를 2,147,483,647회 이상 방문하지 않는 한 nubvisits 필드는 방문 횟수를 저장할 수 있습니다.

메모리 공간을 절약하기 위해 SMALLINT 유형의 데이터를 사용할 수 있습니다. 스몰린트 유형 데이터는 -32768에서 32768까지의 정수를 저장할 수 있습니다. 이 데이터 유형의 사용법은 INT 유형과 정확히 동일합니다.

마지막으로 공간을 절약해야 한다면 TINYINT 유형의 데이터를 사용할 수 있습니다. 마찬가지로 이 유형의 사용법은 이 필드 유형이 0에서 255까지의 정수만 저장할 수 있다는 점을 제외하면 INT 유형과 동일합니다. TINYINT 유형 필드는 음수를 저장하는 데 사용할 수 없습니다.

일반적으로 공간을 절약하기 위해서는 가장 작은 정수 데이터를 최대한 활용하는 것이 좋습니다. TINYINT 유형의 데이터는 1바이트만 차지하고 INT 유형의 데이터는 4바이트를 차지합니다. 이는 큰 차이가 없어 보일 수 있지만 더 큰 테이블에서는 바이트 수가 매우 빠르게 증가합니다. 반면, 필드를 한번 생성하면 수정하기가 어렵습니다. 따라서 안전을 확보하려면 필드에 저장해야 하는 최대값을 예측한 다음 적절한 데이터 유형을 선택해야 합니다.

필드에 저장된 데이터를 더 효과적으로 제어하려면 NUMERIC 데이터를 사용하여 숫자의 정수 부분과 소수 부분을 모두 나타낼 수 있습니다. NUMERIC 데이터를 사용하면 INT 데이터보다 훨씬 큰 매우 큰 숫자를 표현할 수 있습니다. NUMERIC 필드는 -1038에서 1038 사이의 숫자를 저장할 수 있습니다. NUMERIC 데이터를 사용하면 소수 부분으로 숫자를 표현할 수도 있습니다. 예를 들어, NUMERIC 필드에 십진수 3.14를 저장할 수 있습니다.

NUMERIC 필드를 정의할 때 정수 부분의 크기와 소수 부분의 크기를 모두 지정해야 합니다. 다음은 이 데이터 유형을 사용하는 예입니다.

CREATE TABLE 숫자 데이터(큰 숫자 NUMERIC(28,0),

소수 NUMERIC(5,4) )

이 명령문이 실행되면 두 개의 필드를 포함하는 숫자_데이터라는 테이블이 생성됩니다. 필드 bignumber는 최대 28비트의 정수를 저장할 수 있습니다. 필드 분수는 5자리 정수 부분과 4자리 소수 부분으로 소수를 저장할 수 있습니다.

NUMERIC형 데이터의 정수 부분은 최대 28자리까지만 가능합니다. 소수 부분의 자릿수는 정수 부분의 자릿수보다 작거나 같아야 합니다. 0이 될 수 있습니다.

INT형이나 NUMERIC형 데이터를 이용하여 금액을 저장할 수 있습니다. 그러나 이 목적을 위해 특별히 사용되는 두 가지 다른 데이터 유형이 있습니다. 콘센트가 많은 돈을 벌기를 원한다면 MONEY 유형의 데이터를 사용할 수 있습니다. 덜 야심적인 경우 SMALLMONEY 유형 데이터를 사용할 수 있습니다. MONEY 유형 데이터는 -922,337,203,685,477.5808부터 922,337,203,685,477.5807까지 돈을 저장할 수 있습니다. 이보다 큰 금액을 저장해야 한다면 NUMERIC 데이터를 사용하면 됩니다.

SMALLMONEY 유형의 데이터는 -214,748.3648부터 214,748.3647까지만 저장할 수 있습니다. 돈의 양. 마찬가지로 가능하다면 MONEY 타입의 데이터 대신 SMALLMONEY 타입을 사용하여 공간을 절약하는 것이 좋습니다. 다음 예에서는 돈을 나타내는 두 가지 데이터 유형을 사용하는 방법을 보여줍니다.

CREATE 표 제품(제품 VARCHAR(40),가격 MONEY,

Discount_price SMALLMONEY)

이 테이블은 제품의 할인 가격과 정상 판매 가격을 저장하는 데 사용할 수 있습니다. 현장 가격 의 데이터 유형은 MONEY이고, 할인_가격 필드의 데이터 유형은 SMALLMONEY입니다.

논리값 저장

체크박스(CHECKBOX)를 사용하여 웹페이지에서 정보를 수집하는 경우 이 정보를 BIT 필드에 저장할 수 있습니다. BIT 유형 필드는 0 또는 1의 두 가지 값만 사용할 수 있습니다. 다음은 이러한 필드를 사용하는 방법에 대한 예입니다.

CREATE TABLE 의견 (방문객 VARCHAR(40),좋음 비트)

이 테이블은 매장의 여론 조사에서 얻은 정보를 저장하는 데 사용할 수 있습니다. 방문자는 귀하의 사이트가 마음에 드는지 투표할 수 있습니다. YES로 투표하면 BIT 필드에 1이 저장됩니다. 그렇지 않고 반대 투표를 하면 필드에 0을 저장합니다(다음 장에서 투표 계산 방법을 배우게 됩니다).

테이블을 생성한 후에는 테이블에 BIT 필드를 추가할 수 없으므로 주의하세요. 테이블에 BIT 필드를 포함시키려면 테이블을 생성할 때 이를 포함해야 합니다.

날짜 및 시간 저장

웹사이트를 설정할 때 일정 기간 동안의 방문자 수를 기록하고 싶을 수도 있습니다. 날짜와 시간을 저장하려면 다음 예와 같이 DATETIME 유형의 데이터를 사용해야 합니다.

CREATE TABL 방문자 로그( 방문자 VARCHAR (40), 도착 시간 DATETIME ,

출발시간 DATETIME)

이 테이블은 방문자가 사이트에 들어오고 나가는 시간과 날짜를 기록하는 데 사용할 수 있습니다. DATETIME 유형 필드는 1753년 1월 1일의 첫 번째 밀리초부터 9999년 12월 31일의 마지막 밀리초까지의 날짜 범위를 저장할 수 있습니다.

이렇게 광범위한 날짜와 시간을 다룰 필요가 없다면 SMALLDATETIME 유형의 데이터를 사용하면 됩니다. DATETIME 타입 데이터에 비해 표현할 수 있는 날짜와 시간 범위가 작고, DATETIME 타입 데이터만큼 정확하지 않다는 점을 제외하면 DATETIME 타입 데이터와 동일하게 사용된다. SMALLDATETIME 유형 필드는 1900년 1월 1일부터 2079년 6월 6일까지의 날짜를 저장할 수 있으며 초까지만 정확합니다.

DATETIME 필드에는 날짜와 시간을 입력할 때까지 실제 데이터가 포함되지 않는다는 점을 인식하는 것이 중요합니다. 다음 장에서는 다양한 SQL 함수를 사용하여 날짜와 시간을 읽고 조작하는 방법을 배우게 됩니다(아래 "기본값" 섹션 참조). VBScript 및 JScript를 사용할 수도 있습니다. 날짜 및 시간 함수를 사용하여 DATETIME 필드에 날짜 및 시간을 입력합니다.

필드 속성

이전 섹션에서는 다양한 유형의 필드가 포함된 테이블을 만드는 방법을 소개했습니다. 이 섹션에서는 필드의 세 가지 속성을 사용하는 방법을 알아봅니다. 이러한 속성을 사용하면 null, 기본값 및 ID 값을 제어할 수 있습니다.

NULL 값은 허용 및 금지됩니다

대부분의 필드는 NULL 값을 허용합니다. 필드가 null 값을 허용하는 경우 이를 변경하지 않으면 null로 유지됩니다. NULL은 0과 다릅니다. 엄밀히 말하면 NULL은 값이 없음을 의미합니다.

필드가 NULL 값을 허용하도록 허용하려면 필드 정의 뒤에 NULL 표현식을 사용합니다. 예를 들어 다음 표의 두 필드 모두 Null 값을 허용합니다.

CREATE TABLE 비어있음(비어있음1 CHAR(40) NULL,비어있음2 INT NULL(

참고:

BIT 유형 데이터는 null일 수 없습니다. 이 유형의 필드는 0 또는 1이어야 합니다.

때로는 필드에서 null을 사용하지 못하도록 금지해야 합니다. 값. 예를 들어 신용 카드 번호와 신용 카드 만료 날짜를 저장하는 테이블이 있다고 가정합니다. 신용 카드 번호는 입력하고 만료 날짜는 입력하지 않으려면 두 필드 모두에 데이터를 입력해야 합니다. 다음과 같이 테이블을 생성할 수 있습니다:

CREATE TABLE 신용카드 (creditcard_number CHAR(20) NOT NULL,

Creditcard_expire DATETIME NOT NULL)

필드 정의 뒤에는 NOT NULL 식이 옵니다. NOT 표현식을 포함하여 NULL을 사용하면 누구든지 다른 필드의 데이터를 입력하지 않고 한 필드에만 데이터를 삽입하는 것을 방지할 수 있습니다.

널 값을 비활성화하는 기능은 자신만의 네트워크를 구축하는 과정에서 매우 유용하다는 것을 알게 될 것입니다. 필드가 Null 값을 허용할 수 없도록 지정하면 Null 값을 입력하려고 할 때 오류 메시지가 나타납니다. 이러한 오류 경고는 프로그램 디버깅에 대한 귀중한 단서를 제공할 수 있습니다.

기본값

주소 정보를 저장하는 테이블이 있다고 가정합니다. 이 테이블의 필드에는 거리, 도시, 주, 우편번호 및 국가가 포함됩니다. 대부분의 주소가 미국에 있을 것으로 예상되는 경우 이 값을 국가 필드의 기본값으로 사용할 수 있습니다.

테이블을 생성할 때 기본값을 지정하려면 DEFAULT 표현식을 사용하면 됩니다. 테이블을 생성할 때 기본값을 사용하는 다음 예를 고려하십시오.

CREATE TABLE 주소(거리 VARCHAR(60) NULL,

시 VARCHAR(40) NULL,

상태 VARCHAR(20) NULL

zip VARCHAR(20) NULL,

국가 VARCHAR(30) 기본값 'USA')

이 예에서는 국가 필드의 기본값이 미국으로 지정됩니다. 이것이 문자 데이터임을 나타내는 작은따옴표의 사용에 유의하십시오. 문자가 아닌 필드에 기본값을 지정하려면 값을 따옴표로 묶지 마십시오.

CREATE TABLE 주문(가격 MONEY DEFAULT $38.00,

수량 INT DEFAULT 50,

이 CREATE의 항목 날짜 DATETIME DEFAULT GETDATE())

TABLE 문에서 각 필드에는 기본값이 할당됩니다. DATETIME 유형 필드 Entrydate에 지정된 기본값은 현재 날짜와 시간을 반환하는 Getdate() 함수의 반환 값입니다.

식별 필드

각 테이블에는 식별 필드가 하나 또는 하나만 있을 수 있습니다. 식별 필드는 테이블의 각 레코드를 고유하게 식별하는 특수 필드입니다. 예를 들어 pubs 데이터베이스의 jobs 테이블에는 각 작업을 고유하게 식별하는 필드가 포함되어 있습니다.

job_id job_desc

…………………………………………………….

신규 채용 채용 아님
최고 경영자
Bushness 운영 관리자 지정
최고재무책임자(CFO)
출판사
job_id 필드는 각 작업에 대한 고유 번호를 제공합니다. 새 채용정보를 추가하기로 결정한 경우 새 레코드의 job_id 필드에 새 고유 값이 자동으로 할당됩니다.

식별 필드를 생성하려면 필드 정의 뒤에 IDENTITY 표현식을 추가하기만 하면 됩니다. NUMERIC 또는 INT 유형 필드만 식별 필드로 설정할 수 있습니다. 예는 다음과 같습니다.

CREATE TABLE 방문자ID(ID NUBERIC(18) IDENTITY,이름 VARCHAR(40))

이 명령문으로 생성된 테이블에는 theid라는 식별 필드가 포함되어 있습니다. 새 방문자 이름이 테이블에 추가될 때마다 이 필드에 자동으로 새 값이 할당됩니다. 이 표를 사용하여 사이트의 각 사용자에 대한 고유 식별자를 제공할 수 있습니다.

팁:

레이블 필드를 생성할 때 충분히 큰 데이터 유형을 사용하도록 주의하세요. 예를 들어 TINYINT 유형 데이터를 사용하는 경우 테이블에 255개의 레코드만 추가할 수 있습니다. 테이블이 매우 커질 것으로 예상되면 NUMERIC 데이터를 사용해야 합니다.

정체성 분야의 존재로 인해 불가능한 일을 많이 시도하고 싶게 됩니다. 예를 들어, 식별 필드를 사용하여 테이블에서의 위치에 따라 레코드에 대한 작업을 수행할 수 있습니다. 이런 의도를 버려야 합니다. 각 레코드의 식별 필드 값은 서로 다르지만, 이는 식별 필드의 식별 번호 사이에 공백이 존재하는 것을 금지하지 않습니다. 예를 들어 테이블의 처음 10개 레코드를 검색하기 위해 테이블의 식별 필드를 사용해서는 안 됩니다. 이 작업을 수행하면 실패가 발생합니다. 예를 들어, 6번 레코드와 7번 레코드가 전혀 존재하지 않습니다.

위 내용은 SQL 데이터 연산 기초(초급) 내용입니다. 4. 더 많은 관련 글은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.