Cast digunakan untuk penukaran jenis cross-database mudah, dan menukar sesuai untuk penukaran fleksibel dengan format dalam SQL Server. Cast lebih disukai untuk memastikan keserasian. Apabila menggunakan Convert, anda perlu memberi perhatian kepada sekatan platform dan kesahan data.
Apabila bekerja dengan SQL, anda sering perlu menukar data dari satu jenis ke yang lain -seperti mengubah rentetan ke dalam tarikh atau nombor ke dalam teks. Untuk ini, SQL menyediakan dua fungsi utama: Cast dan Convert . Kedua -duanya melakukan perkara yang sama tetapi mempunyai sedikit perbezaan dalam sintaks dan fleksibiliti.
Menggunakan pelakon untuk penukaran jenis mudah
Fungsi pelakon adalah SQL standard dan berfungsi di kebanyakan sistem pangkalan data seperti PostgreSQL, SQL Server, MySQL (dengan batasan), dan SQLite. Ia mudah dan sesuai untuk penukaran asas.
Sintaks:
Cast (Ekspresi sebagai Data_Type)Contoh:
- Tukar rentetan ke integer: cast ('123' sebagai int)
- Tukar rentetan tarikh ke Tarikh Jenis: Cast ('2024-05-20' sebagai tarikh)
- Tukar nombor ke perpuluhan dengan ketepatan: Cast (45 sebagai perpuluhan (5,2))
Cast adalah bersih dan mudah alih. Gunakannya apabila anda mahu kod yang berfungsi di pelbagai pangkalan data.
Menggunakan Convert untuk pemformatan dan fleksibiliti (SQL Server & Sybase)
Convert lebih fleksibel daripada pelakon tetapi digunakan terutamanya dalam SQL Server dan Sybase . Ia membolehkan pemformatan, terutamanya berguna untuk tarikh dan rentetan.
Sintaks:
Tukar (data_type, ekspresi, [gaya])Parameter gaya pilihan membolehkan anda mengawal format output -terutamanya membantu tarikh.
Contoh:
- Tukar rentetan hingga tarikh: Tukar (Tarikh, '2024-05-20')
- Format tarikh sebagai 'mm/dd/yyyy': tukar (varchar, getdate (), 101)
- Tukar Nombor ke Format Mata Wang: Tukar (Wang, 1234.56)
Kod gaya Matter-seperti 103 untuk 'DD/MM/YYYY' atau 120 untuk 'YYYY-MM-DD HH: MI: SS'. Rujuk dokumentasi pangkalan data anda untuk gaya yang sah.
Perbezaan utama dan bila menggunakan yang mana
Cast adalah sebahagian daripada standard ANSI SQL. Ini bermakna ia disokong secara meluas dan terbaik untuk pertanyaan mudah dan mudah alih.
Tukar bukan SQL standard, jadi ia mungkin tidak berfungsi di PostgreSQL atau MySQL dengan cara yang sama. Tetapi ia bersinar apabila anda perlu memformat tarikh atau mengendalikan keperluan paparan khas dalam SQL Server.
Jika anda menulis kod untuk pelbagai pangkalan data, tetap dengan pelakon. Jika anda mendalam dalam SQL Server dan memerlukan pemformatan, Convert memberi anda lebih banyak kawalan.
Mengendalikan kesilapan dan penukaran tidak sah
Kedua -dua fungsi membuang kesilapan jika penukaran tidak mungkin -seperti cuba membuang 'hello' ke int.
Untuk mengelakkan kemalangan, gunakan pemeriksaan keselamatan:
- Dalam SQL Server, bungkus dengan try_cast atau try_convert : try_cast ('abc' as int) mengembalikan null dan bukannya gagal.
- Dalam sistem lain, gunakan logik bersyarat atau fungsi seperti isnumeric , isdate jika tersedia.
Sentiasa mengesahkan data input apabila melakukan penukaran, terutamanya dengan data yang disediakan pengguna atau diimport.
Pada dasarnya hanya memilih pelakon untuk kesederhanaan dan mudah alih, atau tukar apabila anda berada di SQL Server dan memerlukan kuasa pemformatan. Berhati -hati untuk data yang buruk, dan uji penukaran anda.
Atas ialah kandungan terperinci Cara menggunakan fungsi pelakon atau menukar dalam SQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

UseCOMMENTONCOLUMNorALTERTABLEwithCOMMENTtodocumenttablesandcolumnsinSQL;syntaxvariesbyDBMS—PostgreSQLandOracleuseCOMMENTON,MySQLusesCOMMENTinCREATE/ALTERstatements,andcommentscanbeviewedviasystemtableslikeINFORMATION_SCHEMA,butSQLitelackssupport.

Gunakan pengendali dalam untuk membandingkan lajur dengan cekap dengan pelbagai nilai, seperti pilih*fromemployeeswheredepartment_idin (1,2,3); Gunakan Notin jika pelbagai nilai dikecualikan, tetapi perhatikan null yang mempengaruhi hasilnya.

Fungsi Soundex menukarkan teks ke dalam kod empat aksara yang mewakili sebutan, menambah tiga digit ke huruf pertama, mengabaikan huruf vokal dan huruf tertentu, dan peta konsonan dengan sebutan yang sama dengan nombor yang sama, merealisasikan carian berasaskan sebutan. Sebagai contoh, Smith dan Smythe kedua -duanya menjana S530, dan nama -nama dengan sebutan yang sama boleh didapati melalui wheresoundex (last_name) = soundex ('smith'). Digabungkan dengan fungsi perbezaan, ia boleh mengembalikan skor kesamaan 0 hingga 4, menapis hasil sebutan yang ditutup, yang sesuai untuk menangani perbezaan ejaan, tetapi mempunyai kesan terhad pada nama bukan bahasa Inggeris, dan pengoptimuman prestasi perlu diberi perhatian.

Tofindorphanedrecords,useaLEFTJOINorNOTEXISTStoidentifychildrecordswithoutmatchingparentrecords.Forexample,SELECTo.FROMOrdersoLEFTJOINCustomerscONo.customer_id=c.customer_idWHEREc.customer_idISNULLreturnsorderslinkedtonon-existentcustomers.Alternativ

Togetthelastinsertedid, digunakan-specificfunctions: mysqluseslast_insert_id (), postgresqlusesReturningclause, sqlserverusesscope_identity () oroutput, andsqliteuseslast_insert_rowid ();

Subqueries adalah pertanyaan yang bersarang dalam pertanyaan lain. Mereka sesuai untuk pengiraan satu kali mudah dan boleh ditempatkan di Pilih, dari atau di mana klausa; 2. CTE ditakrifkan melalui klausa untuk meningkatkan kebolehbacaan pertanyaan kompleks dan rekursi sokongan dan pelbagai rujukan; 3. Subqueries sesuai untuk kegunaan tunggal, dan CTE lebih sesuai untuk senario di mana struktur, penggunaan semula atau rekursi yang jelas diperlukan.

Apabila menggunakan createtable, tambahkan kata kunci yang unik atau gunakan altertableaddconstraint untuk menambah kekangan ke jadual sedia ada untuk memastikan nilai -nilai dalam lajur adalah unik, dan menyokong lajur tunggal atau lajur berganda. Sebelum menambah, anda perlu memastikan bahawa data tidak diduplikasi. Anda boleh memadamkannya melalui dropconstraint, memberi perhatian kepada perbezaan sintaks antara pangkalan data yang berbeza dan nilai null.

RenamingadatabasedependsontheDBMS:inSQLServer,useALTERDATABASEwithMODIFYNAMEaftersettingsingle-usermode;inMySQL,nodirectrenameisavailable,socreateanewdatabase,copydataviamysqldumporRENAMETABLE,thendroptheoldone;inPostgreSQL,useALTERDATABASE...RENAMET
