Excel dosyalarını SQL Server için dönüştürün
Excel dosyanızı bırakın, CREATE TABLE ve INSERT ifadeleri içeren bir SQL Server betiği alın. Her sütuna bir tür verilir ve her düzeltme satırı ve sütunuyla listelenir.
4 satır dönüştürüldü, 10 düzeltme, reddedilen yok
| Satır | ||||||
|---|---|---|---|---|---|---|
| 5 | 00127 | Peña Muñoz | 01234 | 03/02/2024 | sí | 1.234,50 |
| 6 | 00128 | José Ángel | 09870 | 15/02/2024 | no | N/A |
| 7 | 00129 | Zoë Ortíz | 44100 | 29/02/2024 | sí | -12,00 |
| 8 | 00130 | Ñuño Castañeda | 06700 | 11/03/2024 | no | 980,75 |
-- Written by IntoSQL for SQL Server.
SET NOCOUNT ON;
BEGIN TRANSACTION;
CREATE TABLE clientes_2024 (
no_cliente nvarchar(8) NOT NULL, -- Nº Cliente
nombre nvarchar(16) NOT NULL,
c_p nvarchar(8) NOT NULL, -- C.P.
alta date NOT NULL,
activo bit NOT NULL,
saldo decimal(6,2)
);
INSERT INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES
(N'00127', N'Peña Muñoz', N'01234', '2024-02-03', 1, 1234.50),
(N'00128', N'José Ángel', N'09870', '2024-02-15', 0, NULL),
(N'00129', N'Zoë Ortíz', N'44100', '2024-02-29', 1, -12.00),
(N'00130', N'Ñuño Castañeda', N'06700', '2024-03-11', 0, 980.75);
COMMIT TRANSACTION;
Düzeltmeler
- Başlık 4. satırda; üstündeki satırlar dışarıda bırakıldı.
- 9. satır ("TOTAL") bir toplam; bu yüzden dışarıda bırakıldı.
- "Nº Cliente" sütununun adı artık no_cliente; böylece SQL Server onu tırnaksız okur.
- "C.P." sütununun adı artık c_p; böylece SQL Server onu tırnaksız okur.
- "Nº Cliente" içindeki baştaki sıfırlar korundu: 00127, 00127 olarak kalır ve metin olarak saklanır.
- "C.P." içindeki baştaki sıfırlar korundu: 01234, 01234 olarak kalır ve metin olarak saklanır.
- 15/02/2024 değeri, "Alta" içindeki tarihlerde günün önce geldiğini kanıtlıyor; bu yüzden 03/02/2024, 2024‑02‑03 olarak okunur.
- "Activo" evet ve hayır sözcükleri içeriyor (sí, no); boolean olarak saklandı.
- "Saldo" içindeki sayılar ondalık virgül kullanıyor: 1.234,50, 1234.50 olarak okunur.
- "Saldo" içindeki N/A boş olarak okundu (4 değerden 1).
Dosyan bu bilgisayarda dönüştürülür ve asla yüklenmez.
Diğer örnekler:
Excel dosyasından SQL Server için, sütun sütun
Yukarıdaki örnek clientes_2024.xlsx, IntoSQL'in SQL Server için yazdığı haliyle: her sütunun dosyada ne tuttuğu, aldığı tür ve ilk değerinin betiğe nasıl yazıldığı.
| Dosyada | İlk değer | Sütun | SQL Server türü | Betikte |
|---|---|---|---|---|
| Nº Cliente | 00127 | no_cliente | nvarchar(8) | N'00127' |
| Nombre | Peña Muñoz | nombre | nvarchar(16) | N'Peña Muñoz' |
| C.P. | 01234 | c_p | nvarchar(8) | N'01234' |
| Alta | 03/02/2024 | alta | date | '2024-02-03' |
| Activo | sí | activo | bit | 1 |
| Saldo | 1.234,50 | saldo | decimal(6,2) | 1234.50 |
Betiği SQL Server veritabanına yükleyin
İndirilen dosya düz bir .sql dosyasıdır. SQL Server araçlarıyla çalıştırın.
Terminalden
sqlcmd -S localhost -d mydb -f 65001 -i clientes_2024.sql_server.sql-f 65001 dosyayı UTF-8 olarak okur, böylece aksanlı harfler ve ñ yazıldığı gibi ulaşır.
Bir veritabanı aracından
SQL Server Management Studio veya Azure Data Studio'da dosyayı açıp Execute'u seçin.
Excel dosyaları ve SQL Server hakkında bilmeniz gerekenler
IntoSQL'in Excel dosyalarında okudukları
- Üstünde başlıklar veya notlar olsa bile başlık satırı bulunur ve sondaki toplam satırı dışarıda bırakılır.
- Excel seri numarası olarak saklanan tarihler, hem 1900 hem 1904 tarih sisteminde gerçek tarihlere dönüşür.
- 00127 gibi başında sıfır olan kodlar metin olarak kalır. Bir çalışma kitabında birden fazla sayfa varsa sayfayı siz seçersiniz.
SQL Server hakkında bilmeniz gerekenler
- Metin, N'...' değerleriyle nvarchar olur, böylece aksanlar korunur; 4000 karakteri aşan metin nvarchar(max) olur.
- Evet ve hayır değerleri bit olur, saat farkı olan tarihler ise datetimeoffset olur.
- Uzun değerler parçalar halinde yazılır, böylece sqlcmd ve SQL Server Management Studio betiği kabul eder.
Her değer türü SQL Server içinde nasıl saklanır
| Değer | SQL Server |
|---|---|
| Evet ve hayır | bit |
| Tam sayılar | int |
| Büyük tam sayılar | bigint |
| Ondalık sayılar | decimal(p,s) |
| Kayan noktalı sayılar | float |
| Tarihler | date |
| Günün saatleri | time |
| Saatli tarihler | datetime2 |
| Saatli ve saat farkı olan tarihler | datetimeoffset |
| Metin | nvarchar(n)nvarchar(max) |
Excel dosyasından SQL Server için sorular
Yanıtınızı bulamadınız mı? İletişim sayfasından bize yazın, bir kişi yanıt verir. İletişim sayfası
Excel dosyasını SQL Server için nasıl dönüştürürüm?
Dosyanızı bu sayfanın üstündeki dönüştürücüye bırakın. Başlığı bulur, her değeri okur ve yaptığı her düzeltmeyi listeleyerek SQL Server betiğini yazar. Betiği indirip sqlcmd ile çalıştırın.
Çalışma kitabının hangi sayfası dönüştürülür?
Görünür ilk sayfa. Çalışma kitabında birden fazla sayfa varsa bir Sayfa seçeneği çıkar ve başka birini seçebilirsiniz.
Hangi SQL Server türlerini kullanır?
Evet/hayır değerleri bit, tam sayılar int, ondalıklar decimal(p,s), tarihler date, saatli tarihler datetime2 ve metin nvarchar(n) olur. Boyutlar her sütundaki en uzun değere göre belirlenir.
SQL Server için baştaki sıfırları korur mu?
Evet. 00127 gibi bir kod metin olarak kalır; SQL Server onu nvarchar(8) olarak saklar ve betik onu N'00127' olarak yazar.
Verileri betik olmadan SQL Server veritabanına yükleyebilir mi?
Hayır. Betiği indirip sqlcmd ile çalıştırın. Betiksiz yükleme masaüstü uygulamasından veya komut satırından PostgreSQL, MySQL, MariaDB ve SQLite için çalışır.
Excel dosyası ne kadar büyük olabilir?
Tarayıcıda çalışma kitabı bütün olarak okunur, bu yüzden sınır tarayıcının bu sayfaya verdiği bellektir. Masaüstü uygulaması ve komut satırı her boyutta çalışma kitabını alır; Apple M4'lü bir dizüstü bilgisayarda komut satırı bir milyon satırlık 117 MB'lık bir çalışma kitabını yaklaşık bir saniyede dönüştürür.