SQL 모든 테이블. 복잡한 MySQL 데이터베이스 쿼리


기사의 내용
1. 대부분 간단한 MySQL요청
2. 간단한 SELECT 쿼리
3. 단순 INSERT(새 항목) 쿼리
4. 단순 업데이트(덮어쓰기, 추가) 쿼리
5. 단순 DELETE(항목 삭제) 요청
6. 단순 DROP(테이블 삭제) 쿼리
7. 복잡한 MySQL 쿼리
8. MySQL 쿼리 및 PHP 변수

1. 가장 간단한 SQL 쿼리

1. 모든 데이터베이스를 나열합니다.

SHOW 데이터베이스;
2. base_name 데이터베이스의 모든 테이블을 나열합니다.

base_name의 SHOW 테이블;

2. MySQL 데이터베이스에 대한 간단한 SELECT(선택) 쿼리

고르다- 데이터베이스에서 이미 존재하는 데이터를 선택하는 쿼리. 선택을 위해 특정 선택 옵션을 지정할 수 있습니다. 예를 들어, 러시아어 요청의 본질은 다음과 같이 들립니다. SELECT 등의 열 FROM 등의 테이블 WHERE 이러한 열의 매개 변수는 값과 같습니다.

1. tbl_name 테이블의 모든 데이터를 선택한다.

SELECT * FROM tbl_name;
2. tbl_name 테이블의 레코드 개수를 표시한다.

SELECT count(*) FROM tbl_name;
3. (FROM) 테이블 tbl_name limit (LIMIT) 3개 레코드에서 (SELECT) 2개부터 선택합니다.

SELECT * FROM tbl_name LIMIT 2,3;
4. (FROM) 테이블 tbl_name에서 (SELECT) ALL(*) 레코드를 선택하고 id 필드를 기준으로 순서대로 정렬(ORDER BY)합니다.

SELECT * FROM tbl_name ORDER BY id;
5. (FROM) 테이블 tbl_name에서 모든 레코드를 선택(SELECT)하고 id 필드를 기준으로 REVERSE 순서로 정렬(ORDER BY)합니다.

SELECT * FROM tbl_name ORDER BY id DESC;
6. 선택( 고르다) (의 모든 (*) 레코드 에서) 테이블 사용자정렬하고( 주문) 현장에서 ID오름차순으로 제한( 한계) 처음 5개 레코드.

SELECT * FROM 사용자 ORDER BY ID LIMIT 5;
7. 테이블에서 모든 레코드 선택 사용자, 필드 fname값에 해당 제나.

SELECT * FROM 사용자 WHERE fname="Gena";
8. 테이블에서 모든 레코드 선택 사용자, 여기서 필드 값 fname시작하다 .

SELECT * FROM 사용자 WHERE fname LIKE "Ge%";
9. 테이블에서 모든 레코드 선택 사용자, 어디 fname로 끝나다 , 값의 오름차순으로 항목을 정렬합니다. ID.

SELECT * FROM 사용자 WHERE fname LIKE "%na" ORDER BY id;
10. 열에서 모든 데이터 선택 fname, 이름테이블에서 사용자.

SELECT fname, lname FROM 사용자;

11. 사용자 데이터 테이블에 국가가 있다고 가정해 보겠습니다. 따라서 발생하는 값의 목록만 표시하려면(예를 들어 러시아가 20번이 아니라 하나만 표시되도록) DISTINCT를 사용하십시오. 러시아, 우크라이나, 벨로루시가 반복되는 값의 덩어리에서 추론합니다. 그래서 테이블에서 사용자기둥 국가 ALL UNIQUE 값이 표시됩니다.

SELECT DISTINCT 국가 FROM 사용자;
12. 테이블에서 모든 행 데이터 선택 사용자어디 나이값은 18,19 및 21입니다.

SELECT * FROM 사용자 WHERE age IN (18,19,21);
13. MAXIMUM 값을 선택합니다. 나이테이블에서 사용자. 즉, 테이블에서 가장 높은 값이 있는 경우 나이(영어 연령부터)이 55이면 쿼리 결과는 55가 됩니다.

SELECT max(age) FROM 사용자;
14. 테이블에서 데이터 선택 사용자필드별 이름그리고 나이어디 나이가장 작은 값을 취합니다.

SELECT 이름, 최소(연령) FROM 사용자;
15. 테이블에서 데이터 선택 사용자현장에서 이름어디 ID 2와 같지 않습니다.

SELECT 이름 FROM 사용자 WHERE id!="2";

3. 간단한 INSERT(새 항목) 쿼리

끼워 넣다– 데이터베이스에 레코드를 처음에 삽입할 수 있는 쿼리입니다. 즉, 데이터베이스에 새로운 레코드(라인)를 생성합니다.

1. 하다 새로운 기록테이블에서 사용자, 현장에서 이름 Sergey를 삽입하고 현장에서 나이 25를 삽입합니다. 따라서 테이블이 추가됩니다. 개행이러한 값으로. 더 많은 열이 있는 경우 나머지 열은 비어 있거나 기본값으로 유지됩니다.

INSERT INTO 사용자(이름, 나이) VALUES("Sergey", "25");

4. MySQL 데이터베이스에 대한 간단한 업데이트 쿼리

업데이트- 필드 값을 덮어쓰거나 데이터베이스의 이미 존재하는 행에 무언가를 추가할 수 있는 쿼리. 예를 들어 기성 문자열이 있지만 시간이 지남에 따라 변경되었기 때문에 age 매개변수를 덮어써야 합니다.

1. 테이블 사용자 나이 18이 된다.

업데이트 사용자 SET 연령 = "18" WHERE id = "3";
2. 모든 것은 첫 번째 요청과 동일하며 두 개 이상의 필드를 덮어쓰는 요청 구문만 표시합니다.
테이블 사용자 WHERE id는 3 필드 값입니다. 나이 18이 되고 국가러시아.

업데이트 사용자 SET 연령 = "18", 국가 = "러시아" WHERE id = "3";

5. MySQL 데이터베이스에 대한 간단한 DELETE(레코드 제거) 쿼리

삭제테이블에서 행을 제거하는 쿼리입니다.

1. 테이블에서 행 제거 사용자어디 ID 10과 같습니다.

DELETE FROM 사용자 WHERE id = "10";

6. MySQL 데이터베이스에 대한 간단한 DROP(테이블 삭제) 쿼리

하락테이블을 삭제하는 쿼리입니다.

1. 전체 테이블 삭제 tbl_name.

드롭 테이블 tbl_name;

7. 복잡한 MySQL 데이터베이스 쿼리

숙련된 사용자도 사용할 수 있는 호기심 쿼리

SELECT ID, 이름, 국가 FROM 사용자, 관리자 WHERE TO_DAYS(NOW()) - TO_DAYS(registration_date)<= 14 AND activation != "0" ORDER BY registration_date DESC;
이 복잡한 쿼리는 열을 선택합니다. 아이디,이름,국가테이블에서 사용자, 관리자어디 등록 날짜(날짜) 14 일과 활성화같지 않음 0 , 정렬 기준 등록 날짜역순으로(처음에 새 항목).

사용자 업데이트 SET age = "18+" WHERE age = (SELECT age FROM users WHERE male = "man");
위는 소위 말하는 예입니다. 쿼리에서 쿼리 SQL에서. 사용자의 연령을 18세 이상으로 업데이트합니다. 여기서 성별은 남성입니다. 나는 이러한 유형의 요청을 권장하지 않습니다. 개인적인 경험에서 나는 여러 개의 개별 항목을 만드는 것이 더 낫다고 말할 것입니다. 그것들은 더 빨리 해결될 것입니다.

8. MySQL 및 PHP 데이터베이스 쿼리

PHP 페이지의 MySQL 쿼리에서 비교 값 등으로 변수를 삽입할 수 있습니다. 몇 가지 예

1. 테이블에서 모든 레코드 선택 사용자, 필드 fname변수의 값과 일치 $이름.

SELECT * FROM 사용자 WHERE fname="$name";
2. 표 사용자 WHERE id는 3 필드 값입니다. 나이$age 변수의 값이 변경됩니다.

업데이트 사용자 SET age = "$age" WHERE id = "3";

주목!다른 예에 관심이 있으시면 의견에 질문을 작성하십시오!

대부분의 최신 웹 응용 프로그램은 일반적으로 이라는 언어를 사용하여 데이터베이스와 상호 작용합니다. SQL. 운 좋게도 이 언어는 배우기 매우 쉽습니다. 이 글에서는 간단한 SQL 요청하고 이를 사용하여 상호 작용하는 방법을 배웁니다. MySQL 데이터베이스.

뭐가 필요하세요?

SQL(구조적 쿼리 언어) 다음과 같은 데이터베이스 관리 시스템과 상호 작용하도록 특별히 설계된 언어 MySQL, 오라클, SQLite 및 기타 ... 수행하기 위해 SQL 이 기사의 요청에 따라 설치하는 것이 좋습니다. MySQL 로컬 컴퓨터에. 또한 나는 사용하는 것이 좋습니다 phpMyAdmin 시각적 인터페이스로.

이 모든 것은 모두가 좋아하는 덴버에서 사용할 수 있습니다. 나는 모든 사람들이 그것이 무엇인지, 어디서 얻을 수 있는지 알아야한다고 생각합니다. :). 할 수 있다그렇지 않으면 WAMP 또는 MAMP를 사용하십시오.

덴버에는 내장되어 있습니다. MySQL 콘솔. 우리는 그것을 사용할 것입니다.

데이터베이스 생성:데이터베이스 생성

여기 우리의 첫 번째 요청이 있습니다. 추가 작업을 위해 첫 번째 데이터베이스를 만들 것입니다.

시작하려면 MySQL 콘솔 및 로그인. 을 위한왤케 기본 암호는 비어 있습니다. 그건 아무것도 아니에요 :). 을 위한 MAMP - "루트". 덴버를 명확히 해야 합니다.

로그인 후 다음 줄을 입력하고 클릭입력하다:

데이터베이스 생성 my_first_db;

다른 언어와 마찬가지로 쿼리 끝에 세미콜론(;)이 추가됩니다.

또한 SQL의 명령 대소문자를 구분합니다. 우리는 대문자로 씁니다.

옵션 만: 문자 집합그리고 대조

설치를 원하시면문자 집합(문자 집합) 및 데이터 정렬(비교)은 다음 명령을 작성하십시오.

CREATE DATABASE my_first_db 기본 문자 설정 utf8 COLLATE utf8_general_ci;

에서 지원되는 문자 집합 목록 찾기 MySQL.

데이터베이스 표시:모든 데이터베이스 나열

이 명령은 사용 가능한 모든 데이터베이스를 표시하는 데 사용됩니다.

데이터베이스 삭제:데이터베이스 삭제

이 쿼리를 사용하여 기존 db를 삭제할 수 있습니다.

이 명령은 경고 없이 실행되므로 주의하십시오. 데이터베이스에 데이터가 있으면 모두 삭제됩니다.

사용:데이터베이스 선택

기술적으로 이것은 쿼리가 아니라 연산자이며 끝에 세미콜론이 필요하지 않습니다.

그것은 MySQL에게 알려줍니다 현재 세션에서 기본적으로 작동할 데이터베이스를 선택합니다. 이제 테이블을 만들고 데이터베이스로 다른 작업을 수행할 준비가 되었습니다.

데이터베이스의 테이블이란 무엇입니까?

데이터베이스의 테이블을 다음과 같이 나타낼 수 있습니다.엑셀 파일.

그림과 같이 테이블에는 열 이름, 행 및 정보가 있습니다. 사용하여 SQL 쿼리를 통해 이러한 테이블을 만들 수 있습니다. 또한 정보를 추가, 읽기, 업데이트 및 삭제할 수 있습니다.

테이블 생성: 테이블 만들기

이 쿼리를 사용하여 데이터베이스에 테이블을 만들 수 있습니다. 불행히도 문서 MySQL 이 주제에 대한 초보자에게는 명확하지 않습니다. 이러한 유형의 요청 구조는 매우 복잡할 수 있지만 쉬운 것부터 시작하겠습니다.

다음 쿼리는 2개의 열이 있는 테이블을 생성합니다.

CREATE TABLE 사용자(사용자 이름 VARCHAR(20), create_date DATE);

들여쓰기를 위한 탭과 여러 줄에 쿼리를 작성할 수 있습니다.

첫 번째 줄은 간단합니다. 우리는 단순히 "users"라는 테이블을 생성합니다. 다음으로 쉼표로 구분된 괄호 안에는 모든 열의 목록이 나와 있습니다. 각 열 이름 뒤에는 VARCHAR 또는 DATE와 같은 정보 유형이 있습니다.

VARCHAR(20)은 열이 문자열 유형이고 최대 20자 길이가 될 수 있음을 의미합니다. DATE는 "YYYY - MM-DD" 형식으로 날짜를 저장하는 데 사용되는 정보 유형이기도 합니다.

기본 키( 기본 키시간)

다음 쿼리를 실행하기 전에 기본 키가 될 "user_id "에 대한 열도 포함해야 합니다. PRIMARY KEY는 테이블의 각 행을 식별하는 데 사용되는 정보로 생각할 수 있습니다.

CREATE TABLE 사용자(user_id INT AUTO_INCREMENT PRIMARY KEY, 사용자 이름 VARCHAR(20), create_date DATE);

지능 32비트 정수 유형(숫자와 같은)을 만듭니다.자동 증가 새로운 가치를 자동으로 생성 ID 새로운 정보 행을 추가할 때마다 이것은 필수는 아니지만 전체 프로세스를 더 쉽게 만듭니다.

이 열은 정수 값일 필요는 없지만 가장 일반적으로 사용됩니다. 기본 키를 갖는 것도 선택 사항이지만 데이터베이스 아키텍처 및 성능을 위해 권장됩니다.

쿼리를 실행해 보겠습니다.

쇼 테이블:모든 테이블 표시

이 쿼리를 사용하면 데이터베이스에 있는 테이블 목록을 가져올 수 있습니다.

설명:테이블 구조 표시

이 쿼리를 사용하여 기존 테이블의 구조를 표시할 수 있습니다.

열은 모든 속성과 함께 표시됩니다.

드롭 테이블:테이블 삭제

DROP DATABASES와 마찬가지로 이 쿼리는 경고 없이 테이블과 해당 내용을 삭제합니다.

테이블 변경: 테이블 변경

이 쿼리는 테이블에 더 많은 변경 사항을 적용할 수 있으므로 복잡한 구조를 포함할 수도 있습니다. 예를 살펴보겠습니다.

(마지막 단계에서 테이블을 삭제했다면 테스트를 위해 다시 생성)

열 추가

ALTER TABLE 사용자 ADD 이메일 VARCHAR(100) AFTER 사용자 이름;

SQL의 가독성이 좋기 때문에 자세히 설명하는 것은 무의미하다고 생각합니다. "사용자 이름" 다음에 새 열 "이메일"을 추가하고 있습니다.

열 제거

또한 매우 쉬웠습니다. 이 쿼리는 경고 없이 데이터가 삭제될 수 있으므로 주의하여 사용하십시오.

추가 실험을 위해 방금 삭제한 열을 복원합니다.

열 변경

때때로 열의 속성을 변경하고 싶을 수 있으며 그렇게 하기 위해 완전히 제거할 필요는 없습니다.

이 쿼리는 사용자 열의 이름을 "user_name"으로 바꾸고 해당 유형을 VARCHAR(20)에서 VARCHAR(30)으로 변경했습니다. 이러한 변경으로 인해 테이블의 데이터가 변경되지 않아야 합니다.

끼워 넣다: 테이블에 정보 추가

다음 쿼리를 사용하여 테이블에 정보를 추가해 보겠습니다.

보시다시피 VALUES()에는 쉼표로 구분된 값 목록이 포함되어 있습니다. 모든 값은 단일 열로 묶여 있습니다. 그리고 값은 테이블 생성 시 정의한 컬럼의 순서로 되어 있어야 합니다.

첫 번째 값은 "user_id"라는 PRIMARY KEY 필드에 대해 NULL입니다. 열에 AUTO_INCREMENT 속성이 있기 때문에 ID가 자동으로 생성되도록 하기 위해 이 작업을 수행합니다. 정보가 처음 추가되면 ID는 1이 됩니다. 다음 행은 2가 되는 식으로...

대체 옵션

행을 추가하기 위한 또 다른 쿼리 옵션이 있습니다.

이번에는 VALUES 대신 SET 키워드를 사용하며 괄호가 없습니다. 몇 가지 뉘앙스가 있습니다.

열을 건너뛸 수 있습니다. 예를 들어, 기본적으로 AUTO_INCREMENT 값을 가져오는 "user_id"에 값을 할당하지 않았습니다. VARCHAR 열을 생략하면 빈 문자열이 추가됩니다.

각 열은 이름으로 참조해야 합니다. 이 때문에 이전 버전과 달리 임의의 순서로 언급될 수 있습니다.

대안 2

여기 또 다른 옵션이 있습니다.

다시 말하지만 열 이름에 대한 참조가 있으므로 임의의 순서로 값을 지정할 수 있습니다.

LAST_INSERT_ID()

이 쿼리를 사용하여 현재 세션의 마지막 행에 대해 AUTO_INCREMENT였던 ID를 얻을 수 있습니다.

지금()

이제 쿼리에서 MySQL 함수를 사용하는 방법을 보여줄 차례입니다.

NOW() 함수는 현재 날짜를 반환합니다. 따라서 새 행을 삽입할 때 열의 날짜를 현재 날짜로 자동 설정하는 데 사용할 수 있습니다.

1개의 경고를 받았지만 무시합니다. 그 이유는 NOW()가 임시 정보를 표시하는 역할도 하기 때문입니다.

고르다: 테이블에서 데이터 읽기

테이블에 정보를 추가하면 거기에서 읽는 방법을 배우는 것이 논리적일 것입니다. 여기에서 SELECT 쿼리가 도움이 될 것입니다.

다음은 테이블을 읽는 가장 간단한 SELECT 쿼리입니다.

이 경우 별표(*)는 테이블에서 모든 필드를 요청했음을 의미합니다. 특정 열만 원하는 경우 쿼리는 다음과 같습니다.

상태어디

대부분의 경우 모든 열에 관심이 있는 것이 아니라 일부 열에만 관심이 있습니다. 예를 들어 사용자 "nettuts"의 이메일 주소만 필요하다고 가정해 보겠습니다.

WHERE를 사용하면 쿼리에서 조건을 설정하고 세부적으로 선택할 수 있습니다.

같음은 프로그래밍에서와 같이 두 개 대신 하나의 등호(=)를 사용한다는 점에 유의하십시오.

비교를 사용할 수도 있습니다.

AND 또는 OR을 사용하여 조건을 결합할 수 있습니다.

숫자 값은 따옴표로 묶으면 안 됩니다.

에()

이는 여러 값에 대한 샘플링에 유용합니다.

처럼

"와일드카드" 요청을 할 수 있습니다.

% 기호는 "와일드카드"로 사용됩니다. 즉, 그 자리에 무엇이든 될 수 있습니다.

상태주문

어떤 기준에 따라 정렬된 형식으로 결과를 얻으려면

기본 순서는 ASC(가장 작은 것에서 큰 것)입니다. 반대의 경우 DESC가 사용됩니다.

한계 ... 오프셋 ...

받는 결과의 수를 제한할 수 있습니다.

LIMIT 2는 처음 2개의 결과만 가져옵니다. LIMIT 1 OFFSET 2는 처음 2개 이후에 1개의 결과를 얻습니다. LIMIT 2, 1은 같은 의미입니다( offset 이 먼저 오고 그 다음에 limit ).

업데이트: 테이블의 정보를 변경합니다.

이 쿼리는 테이블의 정보를 변경하는 데 사용됩니다.

대부분의 경우 특정 열을 변경하려는 경우가 많기 때문에 WHERE 절과 함께 사용됩니다. WHERE 절이 없으면 변경 사항이 모든 행에 영향을 미칩니다.

LIMIT를 사용하여 수정해야 하는 행 수를 제한할 수도 있습니다.

삭제: 테이블에서 정보 제거

UPDATE와 마찬가지로 이 쿼리는 WHERE와 함께 사용됩니다.

테이블의 내용을 제거하려면 다음과 같이 하면 됩니다.

사용자로부터 삭제

그러나 사용하는 것이 더 낫습니다.자르다

삭제 외에도 이 쿼리는 값도 재설정합니다.자동 증가 행을 다시 추가하면 카운트다운이 0부터 시작됩니다.삭제 이 작업을 수행하지 않고 카운트다운이 계속됩니다.

문자열 값 및 특수 단어 비활성화

문자열 값

일부 문자를 비활성화해야 합니다(탈출하다 ) 또는 문제가 있을 수 있습니다.

이를 위해 백슬래시가 사용됩니다.(\).

특수 단어

왜냐하면 MySQL에서 많은 특별한 단어가 있습니다선택 또는 업데이트 ), 사용 시 오류를 방지하려면 따옴표를 사용해야 합니다. 그러나 일반적인 인용문은 아니지만 이러한(`).

즉, "삭제 ", 다음과 같이 해야 합니다.

결론

끝까지 읽어주셔서 감사합니다. 이 기사가 도움이 되었기를 바랍니다. 아직 끝나지 않았다! 계속됩니다:).

SQL 테이블 생성을 시작하기 전에 데이터베이스 모델을 정의해야 합니다. 엔터티, 속성 및 관계를 정의하는 ER 다이어그램을 디자인합니다.

기본 컨셉

엔터티는 정보를 저장해야 하는 객체 또는 사실입니다. 예를 들어 회사의 직원이나 기업에서 구현한 프로젝트가 있습니다. 속성 - 엔터티를 설명하거나 한정하는 구성 요소입니다. 예를 들어, 엔티티 "employee"의 속성은 급여이고 엔티티 "project"의 속성은 예상 비용입니다. 링크는 두 요소 간의 연결입니다. 양방향일 수 있습니다. 재귀적 관계, 즉 엔터티와 자체의 관계도 있습니다.

또한 데이터베이스의 무결성이 유지되는 키와 조건을 결정해야 합니다. 무슨 뜻인가요? 즉, 데이터베이스를 정확하고 일관된 방식으로 유지하는 데 도움이 되는 제약 조건입니다.

ER 다이어그램에서 테이블 형식 모델로 이동

테이블 형식 모델로의 전환 규칙:

  1. 모든 엔터티를 테이블로 변환합니다.
  2. 모든 속성을 열로 변환합니다. 즉, 각 엔터티 속성은 테이블 열 이름에 매핑되어야 합니다.
  3. 고유 식별자를 기본 키로 변환합니다.
  4. 모든 관계를 외래 키로 변환합니다.
  5. SQL 테이블을 생성합니다.

베이스 생성

먼저 MySQL 서버를 시작해야 합니다. 실행하려면 "시작" 메뉴로 이동한 다음 "프로그램"으로 이동한 다음 MySQL 및 MySQL 서버로 이동하여 MySQL-Command-Line-Client를 선택합니다.

데이터베이스 생성 명령은 데이터베이스를 생성하는 데 사용됩니다. 이 함수의 형식은 다음과 같습니다.

데이터베이스 생성 데이터베이스 이름.

기본 이름 제한은 다음과 같습니다.

  • 길이는 최대 64자이며 문자, 숫자, 기호 "" 및 ""를 포함할 수 있습니다.
  • 이름은 숫자로 시작할 수 있지만 문자를 포함해야 합니다.

또한 일반 규칙을 기억해야 합니다. 모든 요청이나 명령은 구분 기호로 끝납니다. SQL에서는 세미콜론을 구분 기호로 사용하는 것이 일반적입니다.

서버는 작업할 데이터베이스를 알려야 합니다. 이에 대한 USE 문이 있습니다. 이 연산자의 구문은 다음과 같습니다. USE n 데이터베이스 이름.

SQL 테이블 생성

따라서 모델이 설계되고 데이터베이스가 생성되며 서버에 정확히 어떻게 작업해야 하는지 알려줍니다. 이제 SQL 테이블 생성을 시작할 수 있습니다. 데이터 정의 언어(DDL)가 있습니다. MS SQL 테이블을 생성하고 객체를 정의하고 해당 구조로 작업하는 데 사용됩니다. DDL에는 일련의 명령이 포함됩니다.

SQL 서버 테이블 생성

단 하나의 DDL 명령을 사용하여 매개변수를 변경하여 다양한 데이터베이스 개체를 생성할 수 있습니다. 테이블 생성 명령을 사용하려면. tt 형식은 다음과 같습니다.

태들 만들기 테이블 이름,(column_name1 제목 _컬럼2데이터 유형 [column_constraint],[table_constraints]).

지정된 명령의 구문은 다음과 같이 더 자세히 설명되어야 합니다.

  • 테이블 이름은 최대 30자여야 하며 문자로 시작해야 합니다. 알파벳 문자, 문자 및 "_", "$" 및 "#" 문자만 허용됩니다. 키릴 자모를 사용할 수 있습니다. 테이블 이름은 Column, Table, Index 등과 같은 다른 개체 이름 및 데이터베이스 서버 예약어와 동일하지 않아야 합니다.
  • 각 열에 대해 데이터 유형을 지정해야 합니다. 대부분의 사람들이 사용하는 표준 세트가 있습니다. 예를 들어 Char, Varchar, 숫자, 날짜, Null 유형 등

  • Default 매개변수를 사용하면 기본값을 설정할 수 있습니다. 이렇게 하면 테이블에 null 값이 없습니다. 무슨 뜻인가요? 기본값은 문자, 표현식, 함수일 수 있습니다. 이 기본 데이터의 유형은 열의 입력 데이터 유형과 일치해야 함을 기억하는 것이 중요합니다.
  • 열별 제약 조건은 테이블 수준에서 데이터 무결성 조건을 적용하는 데 사용됩니다. 더 많은 뉘앙스가 있습니다. 테이블에 종속된 다른 테이블이 있는 경우 테이블을 삭제하는 것은 금지되어 있습니다.

베이스 작업 방법

대규모 프로젝트는 각각 많은 테이블을 필요로 하는 여러 데이터베이스를 생성해야 하는 경우가 많습니다. 물론 사용자가 모든 정보를 머릿속에 저장하는 것은 불가능합니다. 이를 위해 데이터베이스 및 테이블의 구조를 볼 수 있습니다. 다음과 같은 몇 가지 명령이 있습니다.

  • SHOW DATABASES - 생성된 모든 SQL 데이터베이스를 화면에 표시합니다.
  • SHOW TABLES - USE 명령으로 선택한 현재 데이터베이스의 모든 테이블 목록을 표시합니다.
  • 설명하다 table_name- 테이블의 모든 열에 대한 설명을 표시합니다.
  • ALTER TABLE - 테이블 구조를 변경할 수 있습니다.

마지막 명령은 다음을 허용합니다.

  • 테이블에 열 또는 제약 조건을 추가합니다.
  • 기존 열을 변경합니다.
  • 열 또는 열을 삭제하십시오.
  • 무결성 제약을 제거합니다.

이 명령의 구문은 다음과 같습니다. ALTER TABLE table_name( | | | | [(활성화 | 비활성화) 상수 제약 이름 ] | }.

다른 명령이 있습니다.

  • RENAME - 테이블 이름 바꾸기.
  • TRUNCATE TABLE - 테이블에서 모든 행을 제거합니다. 이 함수는 테이블을 다시 채워야 할 때 필요할 수 있지만 이전 데이터를 저장할 필요는 없습니다.

데이터베이스 구조가 변경되어 테이블을 삭제해야 하는 상황도 있습니다. 이를 위한 DROP 명령이 있습니다. 물론 현재 테이블과 다른 테이블을 삭제하려는 데이터베이스를 먼저 선택해야 합니다.

명령 구문은 매우 간단합니다. DROP TABLE 제목_테이블.

SQL Access에서는 위에 나열된 동일한 명령을 사용하여 테이블을 만들고 수정합니다.

CREATE TABLE을 사용하면 빈 테이블을 만든 다음 데이터로 채울 수 있습니다. 하지만 그게 다가 아닙니다. 다른 테이블에서 즉시 테이블을 생성할 수도 있습니다. 이와 같이? 즉, 테이블을 정의하고 다른 테이블의 데이터로 채울 수 있습니다. 이를 위한 특별한 AS 키워드가 있습니다.

구문은 매우 간단합니다.

  • 테이블 생성 제목_테이블[(column_definition)] AS 하위 쿼리;
  • column_definition -열 이름, 새로 생성된 테이블 열에 대한 무결성 규칙 및 기본값;
  • 하위 쿼리 - 새 테이블에 추가할 행을 반환합니다.

따라서 이러한 명령은 특정 열이 있는 테이블을 만들고 쿼리에서 반환되는 행을 테이블에 삽입합니다.

임시 테이블

임시 테이블은 각 세션이 끝날 때 또는 그 전에 데이터가 지워지는 테이블입니다. 중간 값이나 결과를 기록하는 데 사용됩니다. 워크시트로 사용할 수 있습니다. 모든 세션에서 임시를 정의할 수 있지만 현재 세션에서만 해당 데이터를 사용할 수 있습니다. SQL 임시 테이블은 CREATE TABLE 명령을 사용하여 평소와 같은 방식으로 생성됩니다. 테이블이 임시임을 시스템에 표시하려면 GLOBAL TEMPORARY 매개변수를 사용해야 합니다.

ON COMMIT 절은 이러한 테이블에 있는 데이터의 수명을 설정하고 다음을 수행할 수 있습니다.

  • DELETE ROWS - 각 트랜잭션 완료 후 임시 테이블을 지웁니다(모든 세션 데이터 삭제). 이것은 일반적으로 기본값입니다.
  • PRESERVE ROWS - 다음 트랜잭션에서 사용할 데이터를 남겨둡니다. 또한 세션이 종료된 후에만 테이블을 지울 수 있습니다. 그러나 기능이 있습니다. 트랜잭션이 롤백되면(ROLLBACK) 테이블은 이전 트랜잭션이 종료된 상태로 돌아갑니다.

임시 테이블을 생성하는 구문은 다음과 같이 나타낼 수 있습니다. CREATE TABLE 제목_테이블,(제목_열1데이터 유형 [column_constraint], 제목 _컬럼2데이터 유형 [column_constraint], [table_constraints]).

질문: 쿼리 - 테이블 및 인덱스 목록과 해당 압축 유형 가져오기


안녕하세요 여러분!

도와주세요. 데이터베이스 테이블과 압축 유형(없음, 페이지, 행)을 나열하는 스크립트가 필요합니다.
가능하다면 인덱스로도 가능합니다.

대답:매우 감사합니다!

질문: 테이블에 새 레코드를 추가하는 SQL 쿼리 만들기


1. 여객 운송에 대한 정보가 포함된 테이블에 새 항목을 추가하는 SQL 쿼리를 만듭니다. State number - BB148B, Brand - Volkswagen, Capacity - 20
이렇게 썼다
INSERT INTO 여객 운송(주 번호, 브랜드, 용량,) VALUES (ВВ148В, "Volkswagen", 20)
오류
"transport" 구성 근처에 잘못된 구문이 있습니다.

2.AI92 및 AI95 가솔린 가격을 2% 인상하는 SQL 쿼리 생성

대답:

메시지 iap

밑줄 문자는 더 이상 문자가 아닌가요? 공간과 같나요?

나는 요청에서 그녀의 모든 오류를 수정했으며 공간이 환경 및 resp에 의해 요청 구문 분석 오류를 일으킬 수 있음을 의미했습니다. 요청이 실패합니다. 여백이나 그런걸로 대체할 수 있다는 말은 안했어요.

질문: MS SQL 2014는 설명과 함께 테이블 필드 목록을 얻습니까?


설명이 포함된 필드 목록을 어디에서 얻을 수 있는지 알려주십시오.
설명은 다음 스크립트와 함께 추가됩니다.
EXEC 시스템 sp_addextendedproperty @name =N"MS_Description" , @value=N "원장 문서 유형", @level0type=N"SCHEMA" , @level0name=N"dbo" , @level1type=N"TABLE" , @level1name=N"Fct_0008" , @level2type=N"COLUMN" , @level2name=N"IdNci_0063"
테이블의 필드 이름 옆에 있는 쿼리에서 어떻게 얻을 수 있습니까?
이러한 모든 요청:
INFORMATION_SCHEMA에서 *를 선택합니다. COLUMNS WHERE TABLE_NAME = "Fct_0008" SELECT * FROM [ sys].[ 열 ] WHERE OBJECT_ID = OBJECT_ID ("Fct_0008" ) SELECT * FROM [ 시스템].[ all_columns] WHERE OBJECT_ID = 8FJECT_00 (0)
그들은 원하는 결과를 제공하지 않으며 설명이 없습니다. 설명을 얻는 방법을 알려주시겠습니까?

대답:

:피

질문: 테이블, 필드 및 데이터베이스 필드 설명 목록 가져오기


안녕하세요!

데이터베이스의 테이블, 필드 및 필드 설명 목록을 수신하는 방법을 묻는 메시지가 표시됩니까?

대답:나는 또한 자필 기록 보관인을 위한 몇 가지 옵션을 거쳤습니다.
-- 97 버전에서는 아카이비스트가 정상이었고 워드와 엑셀 모두 잘 내보냈습니다.
--2000년 이후 --foci 시작(예: 요청 텍스트가 254자로 잘림)
-- 형식에 따라 보고서 생성 -- 모든 속성 .... 매우 긴 것으로 판명되었습니다.
... 그런 다음 약간 다른 몇 가지 옵션이 더 있습니다.

모든 개체에 대한 간략한 참조를 위한 필드 목록 결정

이름유형크기설명행 소스
코드4 4
문서4 4 문서SELECT .[코드], .[문서], .[참고] FROM 문서 ORDER BY [문서];
룸닥4 4
데이트닥8 8
목적4 4 서비스의 목적SELECT .[코드], .[보기], .[참고] FROM CelUsl ORDER BY [보기];
요구4 4
송장4 4
어디에4 4
어디에4 4 SELECT .[코드], .[이름] FROM 베이스;
데이터PR8 8 도착 일
선박4 4 SELECT .[Code], .[NameNumber], .[Notes] FROM Ships ORDER BY [NameNumber];
자동4 4 SELECT .[코드], .[브랜드 번호], .[참고] FROM ATS;
트레일러1 1
직원10 243 SELECT [드라이버].[패밀리 이름] FROM 드라이버;
점원10 243 SELECT [점포].[성] FROM 점원;
동의10 243 SELECT [동의함].[성] FROM 동의함;
날짜가져오기8 8
OhrImport10 243
날짜내보내기8 8
Okhr내보내기10 243 SELECT [Guard].[Family Name] FROM Guard;
TMC10 255
타라4 4 SELECT .[코드], .[보기], .[참고] FROM 팩;
안부4 4
역겨운6 4
메모10 255
추가 항목 추가1 1
양식/보고서 --컨트롤 유형, 버튼/레이블 텍스트, 필드의 데이터 소스
+ 모듈 텍스트

그것에 멈췄다
여기서 진실은 포함된 매크로의 텍스트를 표시하는 옵션입니다(출력을 정리하지만 비뚤어짐)

질문: 3개의 테이블에 대한 SQL 쿼리입니다. 올바른 방향으로 킥!


세 개의 테이블로 구성된 데이터베이스에 대한 SQL 쿼리를 작성해야 합니다. 첨부 파일의 데이터베이스 구조입니다.
쿼리: 남녀에게 가장 인기 있는 동물
나는 이것을하기 위해 어떤 구성과 운영자와 함께하는지조차 모릅니다. 올바른 방향으로 차세요.

대답:우와! 나는 멍청이 같은 느낌이 든다. 여기 내가 달성한 것이 있습니다. 각 성별의 애완 동물의 반복 횟수를 표시합니다.

SQL 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 선택 NamePet , ss. 섹스, ㅅ. koll FROM ( SELECT f. NamePet , t. Pet_ID , r. Sex , COUNT (* ) OVER (PARTITION BY t. pet_id, r. sex) AS koll FROM 적합성 t , People r , Pets f WHERE t. People_ID = r. ID AND f.ID = t.Pet_ID ) ss GROUP BY ss. NamePet , ss. 섹스, ㅅ. 콜

질문: 테이블에 저장할 SQL 쿼리


안녕 모두. 문제는 SQL 쿼리 문자열을 테이블 자체에 저장하고 거기에서 가져 와서 새 쿼리를 만드는 가장 좋은 방법은 무엇입니까?

이렇게 저장할 쿼리 문자열을 준비합니다.
$query = mysql_real_escape_string($query);

이렇게 추출한 후

$schemequery = 스트립 슬래시($data[ "schemequery" ]);

대답:

이해가 잘 안됩니다. SQL 쿼리와 다른 일부 조건 및 사용자 정의 필드를 컴파일하기 위한 편집기가 있습니다. 이러한 필드와 조건을 기반으로 쿼리가 작성됩니다. 이러한 필드와 조건은 동일한 테이블에 저장되며 이러한 조건을 매우 자주 확인해야 하기 때문에 매번 쿼리를 생성하지 않도록 이미 구성된 테이블에 저장했습니다. 그리고 이러한 쿼리가 실행되면 IN(%s)에 있는 값의 배열만 대체됩니다.

동의합니다. 그러면 제가 쓴 내용을 잊어버리세요.

질문: SQL 쿼리를 통해 데이터베이스, dle_post의 데이터 교체


안녕하세요, phpmyadmin에서 sql 쿼리를 통해 비어있는 숫자를 제외한 데이터베이스(dle_post - xfields - kp_ssilka)의 모든 값을 교체하거나 단순히 삭제해야 합니다.
일반적으로 숫자를 그대로 두십시오. CREATE TABLE emoployee_atpt ( EmpId INTEGER , EmpStart DATE , EmpEnd DATE , EmpDept VARCHAR (30 ) , EmpPeriod PERIOD (EmpStart, EmpEnd) , ) ;

"PERIOD FOR EmpPeriod (EmpStart, EmpEnd)" 라인에서 맹세합니다. 이유를 알아내도록 도와주세요.

대답: Access가 직접 작동하는 SQL Jet 또는 SQL-92의 경우는 그렇지 않습니다. MS SQL 테이블에 조인(버전>=2016, ....)하고 이러한 쿼리를 실행합니다. 서버에.