다음 문은 Mssql 문이므로 액세스에 사용할 수 없습니다.
SQL 분류:
DDL - 데이터 정의 언어(CREATE, ALTER, DROP, DECLARE)
DML - 데이터 조작 언어(SELECT, DELETE, UPDATE, INSERT)
DCL - 데이터 제어 언어(GRANT, REVOKE, COMMIT, ROLLBACK)
먼저 기본 설명에 대한 간략한 소개는 다음과 같습니다.
1. 지침: 데이터베이스 생성
CREATE DATABASE 데이터베이스 이름
2. 설명: 데이터베이스 삭제
데이터베이스 dbname 삭제
3. 설명: SQL Server 백업
--- 백업 데이터용 장치 생성
마스터 사용
EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'
--- 백업 시작
테스트백으로 백업 데이터베이스 퍼브
4. 설명: 새 테이블을 생성합니다.
테이블 생성 탭 이름(col1 type1 [not null] [기본 키],col2 type2 [not null],..)
기존 테이블을 기반으로 새 테이블을 만듭니다.
A: tab_old와 같이 tab_new 테이블을 생성합니다(이전 테이블을 사용하여 새 테이블을 생성합니다).
B: tab_old 정의에서만 col1,col2…를 선택하여 tab_new 테이블을 생성합니다.
5. 설명:
새 테이블 삭제: drop table tabname
6. 설명:
열 추가: 테이블 탭 이름 변경 열 유형 추가
참고: 열을 추가한 후에는 삭제할 수 없습니다. DB2에서는 컬럼을 추가한 후에는 데이터 유형을 변경할 수 없다. 변경할 수 있는 유일한 것은 varchar 유형의 길이를 늘리는 것이다.
7. 설명:
기본 키 추가: 테이블 탭 이름 변경 기본 키 추가(col)
설명하다:
기본 키 삭제: 테이블 탭 이름 변경 기본 키 삭제(col)
8. 설명:
인덱스 생성: tabname(col….)에 [고유] 인덱스 idxname을 생성합니다.
인덱스 삭제: 인덱스 idxname 삭제
참고: 인덱스를 변경하려면 인덱스를 삭제하고 다시 작성해야 합니다.
9. 설명:
뷰 생성: select 문으로 뷰 뷰 이름 생성
뷰 삭제: 뷰 삭제 viewname
10. 설명: 몇 가지 간단한 기본 SQL 문 선택: select * from table1 여기서 범위 삽입: table1(field1,field2)에 삽입 값(value1,value2)
삭제: table1에서 삭제, 범위 업데이트: table1 업데이트, field1=value1, 범위 검색: select * from table1, field1 like '%value1%' ---like의 구문은 매우 복잡합니다. 정보를 확인하세요!
정렬: table1에서 *를 선택하고 field1,field2별로 정렬 [desc]
총 개수: table1에서 총 개수로 개수 *를 선택합니다.
Sum: table1의 합계 값으로 sum(field1)을 선택합니다.
평균: table1에서 avgvalue로 avg(field1)를 선택합니다.
최대: table1에서 maxvalue로 max(field1)를 선택합니다.
최소값: table1에서 최소값으로 min(field1)을 선택합니다.
11. 설명: 여러 고급 쿼리 연산자 A: UNION 연산자 UNION 연산자는 두 개의 다른 결과 테이블(예: TABLE1 및 TABLE2)을 결합하고 테이블에서 중복 행을 제거하여 결과 테이블을 파생합니다. ALL을 UNION(즉, UNION ALL)과 함께 사용하면 중복 행이 제거되지 않습니다. 두 경우 모두 파생 테이블의 모든 행은 TABLE1 또는 TABLE2에서 가져옵니다.
B: EXCEPT 연산자 EXCEPT 연산자는 TABLE1에는 있지만 TABLE2에는 없는 모든 행을 포함하고 모든 중복 행을 제거하여 결과 테이블을 파생합니다. ALL을 EXCEPT(EXCEPT ALL)와 함께 사용하면 중복 행이 제거되지 않습니다.
C: INTERSECT 연산자 INTERSECT 연산자는 TABLE1과 TABLE2 모두에 있는 행만 포함하고 중복 행을 제거하여 결과 테이블을 파생합니다. ALL을 INTERSECT(INTERSECT ALL)와 함께 사용하면 중복 행이 제거되지 않습니다.
참고: 연산자 단어를 사용하는 여러 쿼리 결과 행은 일관성이 있어야 합니다.
12. 설명: 외부 조인 A를 사용하고 왼쪽 외부 조인:
왼쪽 외부 조인(왼쪽 조인): 결과 집합에는 조인된 테이블의 일치하는 행과 왼쪽 조인된 테이블의 모든 행이 포함됩니다.
SQL: LEFT OUT JOIN b ON aa = bc에서 aa, ab, ac, bc, bd, bf를 선택합니다.
B: 오른쪽 외부 조인:
오른쪽 외부 조인(오른쪽 조인): 결과 집합에는 조인 테이블의 일치하는 조인 행과 오른쪽 조인 테이블의 모든 행이 모두 포함됩니다.
C: 완전 외부 조인:
완전 외부 조인: 기호 연결 테이블의 일치하는 행뿐만 아니라 조인된 두 테이블의 모든 레코드도 포함합니다.
두 번째로 좋은 SQL 문 몇 개를 살펴보겠습니다. 1. 설명: 테이블 복사(구조만 복사, 원본 테이블 이름: a, 새 테이블 이름: b) (접근 가능)
방법 1: 1<>1인 a에서 *를 b로 선택
방법 2: a에서 상위 0 *를 b로 선택
2. 설명: 복사 테이블(복사 데이터, 원본 테이블 이름: a, 대상 테이블 이름: b) (접근 가능)
b(a, b, c)에 삽입하고 b에서 d,e,f를 선택합니다.
3. 설명: 데이터베이스 간 테이블 복사(특정 데이터는 절대 경로 사용)(접근 가능)
b(a, b, c)에 삽입 d,e,f를 '특정 데이터베이스'의 b에서 선택합니다. 조건 예: ..from b in '"&Server.MapPath(".")&"data.mdb" & "' 어디..
4. 설명: 하위 쿼리(테이블 이름 1: a 테이블 이름 2: b)
IN이 있는 a에서 a,b,c 선택(b에서 d 선택) 또는 IN(1,2,3)이 있는 a에서 a,b,c 선택
5. 설명: 기사, 제출자 및 마지막 답변 시간을 표시합니다.
a.title,a.username,b.adddate를 테이블 a에서 선택합니다.(table.title=a.title인 테이블에서 max(adddate) adddate를 선택합니다.) b
6. 설명: Outer Join 쿼리(테이블명 1: 테이블명 2: b)
LEFT OUT JOIN b ON aa = bc에서 aa, ab, ac, bc, bd, bf를 선택합니다.
7. 설명: 온라인 보기 쿼리(테이블 이름 1: a)
select * from (SELECT a,b,c FROM a) T 여기서 ta > 1;
8. 설명: 사이, 사이의 사용은 쿼리 데이터 범위를 제한하고 경계 값을 포함하며, 사이는 포함하지 않습니다.
time1과 time2 사이의 시간이 있는 table1에서 *를 선택합니다.
값 1과 값 2 사이에 있지 않은 table1에서 a,b,c를 선택합니다.
9. 설명: 사용방법
('value1','value2','value4','value6')에 [not]이 있는 table1에서 *를 선택하세요.
10. 설명: 두 개의 관련 테이블, 보조 테이블에 없는 기본 테이블의 정보를 삭제합니다.
존재하지 않는 table1에서 삭제( table1.field1=table2.field1인 table2에서 * 선택)
11. 설명: 4개 테이블 공동 쿼리 문제:
aa=bb의 왼쪽 내부 조인 b에서 *를 선택합니다. aa=cc의 오른쪽 내부 조인 c aa=dd의 내부 조인 d 여기서 .....
12. 설명: 5분 전에 알림을 예약하세요.
SQL: datediff('분',f 시작 시간,getdate())>5인 일정에서 *를 선택합니다.
13. 설명: 하나의 SQL 문으로 데이터베이스 페이징이 완료됩니다.
상위 10개 b.* 선택(상위 20개 기본 키 필드 선택, 필드 설명 정렬에 따라 테이블 이름 순서로 필드 정렬) a, 테이블 이름 b 여기서 b. 기본 키 필드 순서 a. 설명: 처음 10개 레코드
select top 10 * form table1 where range 15. 설명: b 값이 동일한 각 데이터 그룹에서 a 가 가장 큰 레코드의 모든 정보를 선택합니다. (월별 포럼 순위, 월간 핫 세일 제품 분석에도 유사한 사용법을 사용할 수 있습니다. 과목별 성과별 순위 등)
테이블 이름 ta에서 a,b,c를 선택합니다. 여기서 a=(테이블 이름 tb에서 max(a)를 선택합니다. 여기서 tb.b=ta.b)
16. 설명: TableA의 모든 행을 포함하지만 TableB 및 TableC는 제외하고 모든 중복 행을 제거하여 결과 테이블을 파생시킵니다.
(tableA에서 a 선택) 제외(tableB에서 a 선택) 제외(tableC에서 a 선택)
17. 설명: 무작위로 10개의 데이터를 추출합니다.
newid()를 기준으로 테이블 이름 순서에서 상위 10개 * 선택
18. 설명: 레코드를 무작위로 선택합니다.
새로운 ID()를 선택하세요
19. 설명: 중복된 기록 삭제
ID가 없는 테이블 이름에서 삭제(col1,col2,...별로 테이블 이름 그룹에서 max(id) 선택)
20. 설명: 데이터베이스의 모든 테이블 이름을 나열합니다.
유형='U'인 sysobjects에서 이름을 선택하십시오.
21. 설명: 테이블의 모든 항목을 나열합니다.
id=object_id('TableName')인 syscolumns에서 이름을 선택하세요.
22. 설명: 유형 필드별로 정렬된 유형, 공급업체 및 PC 필드를 나열합니다. Case는 select의 경우와 유사하게 다중 선택을 쉽게 구현할 수 있습니다.
유형 선택,sum('A'일 때 케이스 벤더 다음 pc else 0 종료),sum('C'일 때 케이스 벤더 다음 pc else 0 종료),sum('B'일 때 케이스 벤더 다음 pc else 0 종료) FROM tablename 그룹 유형별
표시 결과:
유형 공급업체 PC
컴퓨터 A 1
컴퓨터 A 1
디스크 B 2
디스크 A 2
휴대전화B 3
모바일 C 3
23. 설명: table1 테이블 초기화
TRUNCATE 테이블 테이블 1
24. 지침: 10에서 15까지의 레코드를 선택하세요.
상위 5개 * 선택(id asc별 테이블 순서에서 상위 15개 * 선택) table_alias id desc별 순서
데이터베이스 레코드를 무작위로 선택하는 방법(Randomize 기능 사용, SQL문을 통해 구현)
데이터베이스에 저장된 데이터의 경우 난수 기능을 사용하면 위와 같은 효과를 얻을 수 있지만 너무 느릴 수 있습니다. ASP에 "임의의 숫자 찾기"를 요청하여 인쇄할 수는 없습니다. 일반적인 해결책은 실제로 다음과 같은 루프를 만드는 것입니다.
무작위화
R숫자 = Int(Rnd*499) +1
objRec.EOF가 아닌 동안
objRec("ID") = RNumber이면 THEN
...실행 스크립트는 다음과 같습니다...
종료하면
objRec.MoveNext
향하게 하다
이해하기 쉽습니다. 먼저 1에서 500 사이의 임의의 숫자를 꺼냅니다(500이 데이터베이스의 총 레코드 수라고 가정). 그런 다음 각 레코드를 반복하여 ID 값을 테스트하여 RNumber와 일치하는지 확인합니다. 조건이 충족되면 THEN 키워드로 시작하는 코드 블록이 실행됩니다. RNumber가 495이면 데이터베이스를 순환하는 데 오랜 시간이 걸립니다. 500개는 큰 숫자처럼 보일 수 있지만, 단일 데이터베이스 내에 수천 개의 레코드가 포함되어 있는 보다 강력한 엔터프라이즈 솔루션에 비하면 여전히 작은 데이터베이스입니다. 지금은 죽은거 아냐?
SQL을 사용하면 다음과 같이 정확한 레코드를 빠르게 찾고 해당 레코드만 포함된 레코드세트를 열 수 있습니다.
무작위화
R숫자 = Int(Rnd*499) + 1
SQL = "SELECT * FROM Customers WHERE ID = " & R번호
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")
R번호와 ID를 직접 작성하는 대신 일치하는 항목만 확인하면 됩니다. 위 코드의 작업에 만족한다면 필요에 따라 "임의" 레코드를 조작할 수 있습니다. 레코드세트에는 다른 콘텐츠가 포함되어 있지 않으므로 필요한 레코드를 빠르게 찾을 수 있어 처리 시간이 크게 단축됩니다.
다시 난수에 대해 이야기해 보겠습니다. 이제 Random 함수에서 마지막 한 방울의 기름을 짜내기로 결정했으므로 한 번에 여러 개의 무작위 레코드를 꺼내거나 특정 무작위 범위 내의 레코드를 사용하려고 할 수 있습니다. 위의 표준 Random 예제를 확장하면 SQL을 사용하여 위의 두 가지 상황을 처리할 수 있습니다.
무작위로 선택한 여러 레코드를 검색하여 동일한 레코드 세트에 저장하려면 세 개의 임의의 숫자를 저장한 다음 이 숫자와 일치하는 레코드를 데이터베이스에 쿼리할 수 있습니다.
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3
10개의 레코드(페이지가 로드될 때마다 10개의 링크 목록)를 선택하려는 경우 BETWEEN 또는 수학 방정식을 사용하여 첫 번째 레코드와 적절한 증분 레코드 수를 선택할 수 있습니다. 이 작업은 여러 가지 방법으로 수행할 수 있지만 SELECT 문은 한 가지 가능성만 보여줍니다(여기서 ID는 자동으로 생성된 숫자입니다).
SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"
참고: 위 코드를 실행하는 목적은 데이터베이스에 동시 레코드가 9개 있는지 확인하는 것이 아닙니다.
여러 레코드를 무작위로 읽고 테스트했습니다.
액세스 구문: SELECT top 10 * From 테이블 이름 ORDER BY Rnd(id)
SQL Server:newid()를 기준으로 테이블 이름 순서에서 상위 n * 선택
mysql select * 테이블 이름에서 Order By rand() 제한 n
Access 왼쪽 조인 구문(최근 개발에서는 왼쪽 조인을 사용해야 합니다. Access 도움말에는 아무것도 없습니다. 인터넷에는 Access에 대한 SQL 설명이 없습니다. 혼자서만 테스트할 수 있습니다. 나중에 참조할 수 있도록 지금 적어 두겠습니다. .)
구문 select table1.fd1,table1,fd2,table2.fd2 table1에서 table1.fd1,table2.fd1의 table2를 왼쪽으로 조인합니다. 여기서 ...
지나치게 긴 문자열 표시 구문을 다음으로 바꾸려면 SQL 문을 사용하십시오.
SQL 데이터베이스: len(field)>10인 경우를 선택하고 left(field,10)+'...' else 필드는 테이블 이름에서 news_name,news_id로 끝납니다.
데이터베이스 액세스: SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;
Conn.Execute 설명 Execute 메소드 SQL 문을 실행하는 데 사용되는 메소드입니다. SQL 문이 실행된 후 레코드 세트가 반환되는지 여부에 따라 이 메서드의 사용 형식은 다음 두 가지 유형으로 구분됩니다.
1. SQL 쿼리 문이 실행되면 쿼리로 얻은 레코드 세트가 반환됩니다. 사용법은 다음과 같습니다:
개체 변수 이름 설정 = 연결 개체.Execute("SQL 쿼리 언어")
Execute 메서드가 호출되면 레코드 집합 개체가 자동으로 생성되고 쿼리 결과가 레코드 개체에 저장됩니다. Set 메서드를 통해 레코드 집합은 향후 저장을 위해 지정된 개체에 할당됩니다. 레코드세트 객체를 나타냅니다.
2. SQL의 작동 언어를 실행할 때 레코드 집합이 반환되지 않습니다. 이때 사용법은 다음과 같습니다.
연결 객체."SQL 연산문" 실행 [, RecordAffected][, Option]
·RecordAffected는 선택 사항입니다. 여기에는 SQL 문이 실행된 후 유효한 레코드 수가 자동으로 변수에 저장됩니다. 이 변수에 접근하면 SQL 문이 몇 개의 레코드에 대해 연산을 수행했는지 알 수 있습니다.
·선택적 옵션인 이 매개변수의 값은 일반적으로 adCMDText이며, 이는 Execute 메소드 뒤의 첫 번째 문자가 명령 텍스트로 해석되어야 함을 ADO에 알리는 데 사용됩니다. 이 매개변수를 지정하면 실행을 더욱 효율적으로 만들 수 있습니다.
·BeginTrans, RollbackTrans, CommitTrans 세 가지 메소드는 트랜잭션 처리를 위해 연결 개체에서 제공하는 메소드입니다. BeginTrans는 트랜잭션을 시작하는 데 사용되며, RollbackTrans는 트랜잭션을 롤백하는 데 사용됩니다. CommitTrans는 모든 트랜잭션 처리 결과를 제출하는 데, 즉 트랜잭션 처리를 확인하는 데 사용됩니다.
트랜잭션 처리는 여러 작업을 전체적으로 처리할 수 있으며, 모든 문이 성공적으로 실행되어야만 트랜잭션 처리가 성공한 것으로 간주됩니다. 한 문이 실행되지 않으면 전체 처리가 실패하고 이전 상태로 돌아갑니다.
BeginTrans와 CommitTrans는 트랜잭션의 시작과 끝을 표시하는 데 사용됩니다. 이 둘 사이의 문은 트랜잭션 처리 문으로 사용됩니다. 트랜잭션 처리의 성공 여부는 객체의 Error 컬렉션을 연결하여 확인할 수 있습니다. Error 컬렉션의 구성원 수가 0이 아닌 경우 오류가 발생하여 트랜잭션 처리에 실패한 것입니다. Error 컬렉션의 각 Error 개체는 오류 메시지를 나타냅니다.
SQL 문 백과사전 필수 사항
2006/10/26 13:46
DELETE 문
DELETE 문: FROM 절에 나열된 하나 이상의 테이블에서 레코드를 삭제할 수 있는 삭제 쿼리를 생성하는 데 사용되며 해당 절은 WHERE 절의 조건을 만족합니다. DELETE를 사용하여 여러 레코드를 삭제할 수 있습니다.
구문: DELETE [table.*] FROM table WHERE 기준
구문: DELETE * FROM table WHERE 기준='쿼리 단어'
설명: table 매개변수는 레코드가 삭제되는 테이블의 이름을 지정하는 데 사용됩니다.
기준 매개변수는 삭제해야 하는 레코드를 지정하는 데 사용되는 표현식입니다.
DROP 문과 함께 Execute 메서드를 사용하여 데이터베이스에서 전체 테이블을 삭제할 수 있습니다. 그러나 이 방법으로 테이블을 삭제하면 테이블의 구조가 손실됩니다. 차이점은 DELETE를 사용하면 데이터만 삭제되고 테이블의 모든 속성(예: 필드 속성, 인덱스)은 그대로 유지된다는 것입니다.
업데이트
업데이트 관련해서 긴급합니다! ! ! ! ! ! ! ! ! ! !
ORACLE 데이터베이스의 테이블 A(ID,FIRSTNAME,LASTNAME)
테이블 B(ID, 성)
테이블 A의 원본 ID 및 FIRSTNAME 필드의 데이터가 완료되었습니다. 이제 테이블 B의 LASTNAME 필드에 해당하는 데이터를 LASTNAME에 채워야 합니다. 표 A. 해당 위치. 두 테이블의 ID 필드는 서로 관련되어 있습니다.
미리 감사드립니다!!!!
세트 업데이트 a.lastname=(a.id=b.id인 b에서 b.lastname 선택)
SQL의 가장 기본적인 4가지 데이터 연산문인 삽입, 선택, 업데이트, 삭제를 마스터하세요.
SQL을 연습하는 것은 데이터베이스 사용자에게 귀중한 자산입니다. 이 글에서는 SQL의 핵심 기능인 가장 기본적인 4가지 데이터 조작 문을 숙지하여 비교 연산자, 선택 어설션, 값 3개 논리를 순서대로 소개합니다. 이 연구를 마치면 SQL에 능숙해지기 시작한 것이 분명합니다.
시작하기 전에 CREATE TABLE 문을 사용하여 테이블을 만듭니다(그림 1 참조). DDL 문은 테이블, 열, 뷰와 같은 데이터베이스 개체를 정의합니다. DDL 문은 데이터베이스의 실제 데이터를 처리하지 않기 때문에 테이블의 행을 처리하지 않습니다. 이러한 작업은 다른 유형의 SQL 문인 DML(데이터 조작 언어) 문에 의해 처리됩니다.
SQL에는 INSERT, SELECT, UPDATE 및 DELETE의 네 가지 기본 DML 작업이 있습니다. 이는 대부분의 SQL 사용자가 공통적으로 사용하는 것이므로 여기서는 하나씩 설명할 필요가 있다. 그림 1에는 EMPLOYEES라는 테이블이 있습니다. 각 행은 특정 직원 기록에 해당합니다. 이 표를 숙지하시기 바랍니다. 다음 예에서 이를 사용하겠습니다.