programing

삽입과 삽입

newsource 2023. 4. 10. 21:57

삽입과 삽입

저는 한동안 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 INTOSQL이 표준인 반면INSERT 없이INTO는 SQL 표준이 아닙니다.

SQL Server, MySQL, Postgre에서 실험했습니다.SQLSQLite는 다음과 같습니다.

데이터베이스 삽입처 삽입
SQL Server 가능 가능
MySQL 가능 가능
포스트그레스Ql 가능 무리다
SQLite 가능 무리다

또 '하다', '하다', '하다'라는 .DELETE FROM ★★★★★★★★★★★★★★★★★」DELETE 없이FROMSQL Server, MySQL, PostgreSQLSQLite는 다음과 같습니다.

데이터베이스 에서 삭제하다 삭제
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