Jak se připojit z macOS k MS SQL pomocí terminálu

Řeším teď nějaké propojení eshopu s Drupalem na účetní program, který vyžaduje přímý zápis dat do své databáze. Eshop běží v PHP na hostingu, účetnictví v kanceláři na počítači. Potřeboval jsem se připojit ze svého Macu a sledovat, zda se do databáze dostávají správná data.

Běžně používám k prohlížení databází buď příkazový řádek nebo bezplatnou aplikaci Sequel Pro. Problém je, že ta si poradí jenom s MySQL. Na Microsoftí databázi ji nepřipojíte. U větších projektů se to dá řešit s využitím databázového nástroje v PhpStormu.

Já však nechtěl být závislý na vývojářském prostředí. Navíc si tak nějak říkám, že se mi může možnost rychlého kouknutí do vzdálené databáze na Microsoft SQL Serveru hodit.

Nakonec to připojení není tak složité a můžete fungovat přímo z terminálu podobně, jako při použití příkazu mysql.

Jak na přístup do Microsoft SQL Serveru z Terminálu na Macu:

A tím jste připojeni a můžete začít s prohlížením dat. Zadáte jednotlivé příkazy, můžete odcentrovat na více řádků.

Důležité je vědět, že pro spuštění naskládaného příkazu musíte ještě poté přidat na samostatný řádek příkaz GO.

Pár tipů na příkazy pro neznalé MS SQL

MySQL pro mě po všech těch letech už není žádná neznámá, nicméně Microsoft SQL Server mě trochu zaskočil. Pořád je to samozřejmě SQL, ale je tu několik odlišností. Možná se vám bude hodit pár tipů, které si sem odložím vlastně i jako poznámku pro sebe.

Výpis tabulek v databázi (čili show tables v MySQL):

SELECT * FROM nazevdb.INFORMATION_SCHEMA.TABLES

GO

Výpis dat z tabulky v databázi (tady už se to od MySQL moc neliší, jen zadáváte název databáze):

SELECT * FROM nazevdb.dbo.nazev_tabulky

GO

Filtrování přes WHERE, hledání částí řetězců přes LIKE %, řazení pomocí ORDER BY, to je stejné jako v MySQL.

A konečně omezení počtu získaných záznamů. V MySQL máme LIMIT 0,10. Microsoft SQL Server to tak snadné nemá, pokud mi něco neuniklo. Limit nahrazuje pomocí OFFSET … FETCH. Takže zápis selectu s podmínkou, řazením a omezením na poslední výsledek by vypadal takto:

SELECT * FROM nazevdb.dbo.tabulka WHERE Prijmeni LIKE 'Polzer' ORDER BY datum DESC OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY

Pro ukončení spojení stačí jenom napsat příkaz exit a potvrdit Enterem.

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Komentáře k článku

návštěvník

Není alternativou LIMIT v prostředí MSSQL příkaz TOP?

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru