삽입과 삽입
저는 한동안 MS SQL에서 T-SQL을 사용해 왔습니다.테이블에 데이터를 삽입해야 할 때마다 구문을 사용하는 경향이 있습니다.
INSERT INTO myTable <something here>
나는 그 키워드를 이해한다.INTO
여기에서는 선택 사항이고 나는 그것을 사용할 필요가 없지만 왠지 내 경우에는 습관이 되었다.
질문입니다.
- 를 사용할 때 어떤 영향이 있습니까?
INSERT
구문 대INSERT INTO
? - 규격에 완전히 부합하는 것은 무엇입니까?
- 둘 다 다른 SQL 표준 구현에서 유효합니까?
INSERT INTO
표준입니다.그럼에도 불구하고.INTO
는 대부분의 구현에서 옵션이며, 몇 가지 필수이므로 코드를 휴대할 수 있도록 하는 것이 좋습니다.
여러 버전의 SQL 표준에 대한 링크를 여기에서 찾을 수 있습니다.여기서 오래된 표준의 HTML 버전을 찾았습니다.
그것들은 같은 것이다.INTO
는 T-SQL에서는 완전히 옵션입니다(다른 SQL 방언은 다를 수 있습니다).
다른 답변과 달리, 제 생각에 그것은 가독성을 해치는 것 같습니다.INTO
.
나는 그것이 개념적인 것이라고 생각한다.제 생각에는 Customer라는 테이블에 행을 삽입하는 것이 아니라 Customer를 삽입하는 것입니다.(복수가 아닌 단수로 테이블에 이름을 붙이는 것과 관련이 있습니다).
첫 번째 콘셉트대로 하면INSERT INTO Customer
'괜찮게 느껴질 것 같아'
두 번째 컨셉을 따른다면 아마INSERT Customer
널 위해서.
mySQL에서는 선택 사항일 수 있지만 Oracle과 같은 일부 다른 DBMS에서는 필수 사항입니다.따라서 SQL은 INTO 키워드를 사용하여 휴대성이 향상될 가능성이 있습니다.
SQL Server 2005에서는 INSERT와 INTO 사이에 다음과 같은 것이 있을 수 있습니다.
tTable1에 톱(5)을 삽입한다.SELECT * From tTable2;
INT 없이도 작동하지만 읽기 쉽도록 INT를 사용하는 것이 좋습니다.
이 문제에 대해 내가 기댄 교훈 중 하나는 항상 일관성을 유지해야 한다는 것이다!INSERT INTO를 사용하는 경우 INSERT도 사용하지 마십시오.그렇지 않으면 일부 프로그래머가 같은 질문을 다시 할 수 있습니다.
다음은 또 다른 관련 사례입니다.MS SQL 2005에서 매우 긴 저장 프로시저를 업데이트할 기회가 있었습니다.문제는 결과 테이블에 너무 많은 데이터가 삽입되었다는 것입니다.데이터가 어디서 왔는지 알아내야 했어요나는 어디에서 새로운 기록이 추가되었는지 알아보려고 했다.SP의 첫 섹션에서 여러 INSERT INTO를 보았습니다.그런 다음 "INSERT IN"을 찾아 업데이트하려고 했지만 "INSERT"만 사용된 한 곳을 놓쳤습니다.실제로 일부 열에 빈 데이터 행을 4k 이상 삽입했습니다!물론 INSERT만 검색하면 됩니다.하지만 나에게도 그런 일이 있었다.나는 이전 프로그래머의 바보 탓을 한다:)
그들은 둘 다 같은 일을 한다.INTO는 (SQL Server의 T-SQL에서는) 옵션이지만 가독성을 향상시킵니다.
SQL을 ORACLE에서 쓰기 시작했기 때문에 INTO가 없는 코드를 보면 '끊겨져' 혼란스러워 보입니다.
네, 제 의견일 뿐이죠, 항상 INTO를 사용하라는 건 아니에요.다만, 다른 많은 유저도 같은 생각을 하고 있을 것입니다.특히, 새로운 실장에 의한 스크립팅을 개시하지 않은 유저도 마찬가지입니다.
SQL에서는 객체로 작업하지 않고 테이블에 ROW를 추가하는 것도 매우 중요하다고 생각합니다.SQL 테이블 행/엔트리를 객체로 생각하는 것은 신규 개발자에게 도움이 되지 않는다고 생각합니다.다시, 내 의견만.
INSERT INTO
SQL이 표준인 반면INSERT
없이INTO
는 SQL 표준이 아닙니다.
SQL Server, MySQL, Postgre에서 실험했습니다.SQL 및 SQLite는 다음과 같습니다.
데이터베이스 | 삽입처 | 삽입 |
---|---|---|
SQL Server | 가능 | 가능 |
MySQL | 가능 | 가능 |
포스트그레스Ql | 가능 | 무리다 |
SQLite | 가능 | 무리다 |
또 '하다', '하다', '하다'라는 .DELETE FROM
★★★★★★★★★★★★★★★★★」DELETE
없이FROM
SQL Server, MySQL, PostgreSQL 및 SQLite는 다음과 같습니다.
데이터베이스 | 에서 삭제하다 | 삭제 |
---|---|---|
SQL Server | 가능 | 가능 |
MySQL | 가능 | 무리다 |
포스트그레스Ql | 가능 | 무리다 |
SQLite | 가능 | 무리다 |
나는 그것을 사용하는 것을 선호한다. 언어의합니다.예를 들어 에는 SQL이 없습니다.group BY
,order BY
.
가능한 경우 표준 기능을 사용합니다.특정 데이터베이스에 대해 휴대성이 필요한 것은 아니지만 SQL 지식을 얻기 위해 휴대성이 필요할 수 있습니다.특히 귀찮은 T-SQL의 예로는 isull 사용, coulderce 사용 등이 있습니다.
언급URL : https://stackoverflow.com/questions/233919/insert-vs-insert-into
'programing' 카테고리의 다른 글
어플리케이션은 어디에 있습니까?WPF의 DoEvents()? (0) | 2023.04.10 |
---|---|
스와이프를 추가하여 UITable View Cell 삭제 (0) | 2023.04.10 |
2D Excel 테이블을 1D로 "축소"하거나 "축소"하는 방법은 무엇입니까? (0) | 2023.04.10 |
SQL Server 2000 데이터베이스에 열려 있는 트랜잭션을 나열하는 방법이 있습니까? (0) | 2023.04.10 |
Git - '가정 변경 없음'과 '스킵 워크트리'의 차이점 (0) | 2023.04.10 |