1. 설명: 테이블 복사(구조만 복사, 원본 테이블 이름: a, 새 테이블 이름: b) (액세스 가능)
방법 1: SELECT * into b from a where 1<>1 (SQlServer에서만 사용)
방법 2: SELECT top 0 * into b from a
2. 설명: 테이블 복사(복사 데이터, 원본 테이블 이름: 대상 테이블 이름: b) (접근 가능)
insert into b(a, b, c) select d,e,f from b;
3. 설명: 데이터베이스 간 테이블 복사(특정 데이터는 절대 경로 사용) (접근 가능)
insert into b( a, b, c) '특정 데이터베이스'의 b에서 d,e,f를 선택합니다. 여기서 조건은
예: ..from b in '"&Server.MapPath(".")&"data.mdb" &"' where ..
4. 설명: 하위 쿼리(테이블 이름 1: 테이블 이름 2: b)
select a,b,c from a where a IN(select d from b) 또는: select a,b, c from a where a IN (1,2,3)
5. 설명: 기사, 제출자 및 마지막 응답 시간 표시
테이블 a에서 a.title,a.username,b.adddate를 선택하고,(select max(adddate) adddate from table where table.title=a.title) b
6. 설명: 외부 조인 쿼리(테이블명 1: 테이블명 2: b)
select a.a, a.b, a.c, b.c , b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
7. 설명: 온라인 뷰 쿼리 (테이블 이름 1: a)
select * from (SELECT a,b,c FROM a) T where t.a > 1;
8. 설명: between, between은 쿼리 데이터 범위를 제한하고 경계 값을 포함하며, not between은 포함하지 않습니다.
select * from table1 where time1과 time2
select a ,b ,c, from table1 where a not between value 1 and value 2
9. 설명:
에서 사용 방법 select * from table1 where a [not] in ('value 1','value 2' ,' 값 4', '값 6')
10. 설명: 두 개의 관련 테이블, 보조 테이블에 없는 기본 테이블의 정보 삭제
존재하지 않는 table1에서 삭제(여기서 table2에서 * 선택) table1.field1=table2.field1 )
11. 설명: 4개 테이블 결합 쿼리 문제:
a.a의 왼쪽 내부 조인 b에서 * 선택=b.b 오른쪽 내부 조인 c on a.a=c.c 내부 조인 d on a.a =d.d where .....
12. 설명: 5분 전에 미리 알림 예약
SQL: select * from Schedule where datediff('분',f start time,getdate())>5
13 , 설명: 데이터베이스 페이징을 완료하는 하나의 SQL 문
선택 상위 10 b.* from (상위 20개 기본 키 필드 선택, 테이블 이름 순서에서 필드 설명 정렬로 필드 정렬) a, 테이블 이름 b where b. 키 필드 = a. 기본 키 필드 순서 a. 필드 정렬
구체적인 구현:
데이터베이스 페이징 정보:
@start int,@end int
@sql nvarchar(600)
set @sql='select top'+str(@end-@start+1)+'+from T whererid not in(select top'+str(@str-1)+'Rid from T where Rid>-1 )'
exec sp_executesql @sql
참고: top 바로 뒤에는 변수가 올 수 없으므로 실제 응용 프로그램에서는 이것이 특수 처리를 수행하는 유일한 방법입니다. Rid는 top 뒤에 특정 필드가 있는 경우 매우 유용합니다. 이는 상위 필드가 논리적 인덱스인 경우(논리적 인덱스의 데이터가 데이터 테이블의 데이터와 불일치할 수 있고, 쿼리 도중 인덱스에 있는 경우) 쿼리 결과 이후 실제 테이블의 불일치를 방지할 수 있기 때문입니다. 인덱스를 먼저 쿼리합니다)
14. 설명: 상위 10개 선택 * form table1 where range
15. 설명: b 값이 동일한 각 데이터 그룹에서 a가 가장 큰 레코드의 모든 정보를 선택합니다. (이러한 사용법은 월간 포럼 순위, 월간 인기 상품 분석, 주제별 점수 순위 등에 사용될 수 있습니다.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
16. 설명: TableA에는 모든 행을 포함하고 TableB 및 TableC에는 포함하지 않고 모든 중복 행을 제거하여 결과 테이블을 파생합니다
(select a from tableA) Except (select a from tableB) Except (select a from tableC)
17. 설명: 무작위로 10개의 데이터를 꺼냅니다.
select top 10 * from tablename order by newid()
18 , 설명: 무작위로 레코드 선택
newid() 선택
19. 설명: 중복 레코드 삭제
1) ID가 없는 tablename에서 삭제(col1로 tablename 그룹에서 max(id) 선택, col2, ...)
2),select independent * into temp from tablename
delete from tablename
insert into tablename select * from temp
평가: 이 작업에는 많은 양의 이동이 포함됩니다. data 이 접근 방식은 대용량이 아닌 데이터 작업에 적합합니다
3). 예를 들어 외부 테이블로 데이터를 가져올 때 어떤 이유로 처음에는 일부만 가져오지만 어렵습니다. 특정 위치를 결정하면 다음에 모든 데이터만 가져올 수 있습니다. 이렇게 하면 중복 필드가 많이 생성됩니다. 중복 필드를 삭제하는 방법
테이블 테이블 이름 변경
-- 자동 증가 열 추가
add column_bint ID(1,1)
delete from tablenamewhere column_b는 in(
select max(column_b) from tablename group by column1,column2,...)
alter table tablename drop columns column_b
20. 설명: 데이터베이스의 모든 테이블 이름 나열
select name from sysobjects where type='U' // U는 사용자를 나타냄
21. 설명: 테이블의 모든 열 이름 나열
select name from syscolumns where id=object_id('TableName')
22. 설명: 유형 필드별로 정렬된 유형, 공급업체 및 PC 필드를 나열합니다. Case는 select의 경우와 유사하게 다중 선택을 쉽게 구현할 수 있습니다.
유형 선택,sum('A'인 경우 케이스 벤더, pc else 0 종료),sum('C'인 경우 케이스 벤더, pc else 0 종료),sum('B'인 경우 케이스 벤더, pc else 0 종료) FROM tablename 그룹별 유형
표시 결과:
type vender pc
컴퓨터 A 1
컴퓨터 A 1
CD-ROM B 2
CD-ROM A 2
휴대전화 B 3
휴대폰 C 3
23. 설명: 테이블 table1
TRUNCATE TABLE table1
24. 설명: 10~15까지 레코드 선택
(에서 상위 5개 * 선택) select top 15 * from table order by id asc) table_alias order by id desc
위 내용은 MYSQL 클래식 구문 개선 장의 내용입니다. 자세한 내용은 PHP 중국어 웹사이트를 참고하세요. (www.php.cn)!