<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SQL &#8211; SMsoft &#8211; informatica e dintorni</title>
	<atom:link href="https://blog.smsoft.it/category/sql/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.smsoft.it</link>
	<description>consigli settimanali su MacOS, GNU/Linux ed Open Source</description>
	<lastBuildDate>Tue, 05 Dec 2017 08:30:54 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=69348</generator>
	<item>
		<title>Esportare in formato CSV da un DB sqlite</title>
		<link>https://blog.smsoft.it/2017/12/05/esportare-formato-csv-un-db-sqlite/</link>
					<comments>https://blog.smsoft.it/2017/12/05/esportare-formato-csv-un-db-sqlite/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 05 Dec 2017 08:30:54 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[csv]]></category>
		<category><![CDATA[SQLite]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=3888</guid>

					<description><![CDATA[Un amico mi hachiesto se gli preparavo uno script per la conversione di un database sqlite in csv. Gli ho chiesto se i dati dovessero essere elaborati prima di essere esportati e mi ha detto che bastava solo esportarli. Beh, allora perché fare uno script, quando puoi esportare direttamente da sqlite3 ? Dunque, ipotizziamo che ... <a title="Esportare in formato CSV da un DB sqlite" class="read-more" href="https://blog.smsoft.it/2017/12/05/esportare-formato-csv-un-db-sqlite/" aria-label="Per saperne di più su Esportare in formato CSV da un DB sqlite">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[<p>Un amico mi hachiesto se gli preparavo uno script per la conversione di un database sqlite in csv. Gli ho chiesto se i dati dovessero essere elaborati prima di essere esportati e mi ha detto che bastava solo esportarli.</p>
<p>Beh, allora perché fare uno script, quando puoi esportare direttamente da sqlite3 ?</p>
<p>Dunque, ipotizziamo che il nostro DB si chiami <strong>dati.sqlite</strong> e che la tabella al suo interno sia chiamata ugualmente <strong>dati</strong>, da CLI bisogna fare come segue:<br />
<code>$ sqlite3 dati.sqlite<br />
sqlite> .mode csv<br />
sqlite> .output dati.csv<br />
sqlite> .headers on<br />
sqlite> SELECT * FROM dati;<br />
sqlite> .output stdout<br />
sqlite> .quit</code><br />
Bene, per vedere il contenuto del file csv:<br />
<code>$ cat dati.csv</code></p>
<p>enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2017/12/05/esportare-formato-csv-un-db-sqlite/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>MySQL: cancellare le tabelle con chiavi esterne (Foreign key)</title>
		<link>https://blog.smsoft.it/2013/10/15/mysql-cancellare-le-tabelle-con-chiavi-esterne/</link>
					<comments>https://blog.smsoft.it/2013/10/15/mysql-cancellare-le-tabelle-con-chiavi-esterne/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 15 Oct 2013 08:30:01 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[chiavi esterne]]></category>
		<category><![CDATA[Foreign key]]></category>
		<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">http://blog.smsoft.it/?p=2625</guid>

					<description><![CDATA[Ormai anche per piccoli progetti MySQL si tende a creare relazioni tra tabelle (solo con motore InnoDB) definendo chiavi esterne. Le Foreign key aiutano a stabilire i comportamenti che il database dovrà assumere quando si tenterà di eliminare o modificare un record di una tabella padre legato ad uno o più record nella tabella figlio. ... <a title="MySQL: cancellare le tabelle con chiavi esterne (Foreign key)" class="read-more" href="https://blog.smsoft.it/2013/10/15/mysql-cancellare-le-tabelle-con-chiavi-esterne/" aria-label="Per saperne di più su MySQL: cancellare le tabelle con chiavi esterne (Foreign key)">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[<p>Ormai anche per piccoli progetti MySQL si tende a creare relazioni tra tabelle (solo con motore InnoDB) definendo <strong>chiavi esterne</strong>.<br />
Le <strong>Foreign key</strong> aiutano a stabilire i comportamenti che il database dovrà assumere quando si tenterà di eliminare o modificare un record di una tabella padre legato ad uno o più record nella tabella figlio. Possiamo definire in teoria cinque azioni da attivare in caso di cancellazione o modifica, anche se in pratica le azioni sono solo tre:<br />
<strong>CASCADE</strong> &#8211; La cancellazione o modifica di un record nella tabella padre genererà la cancellazione o la modifica dei record collegati nella tabella figlia.<br />
<strong>SET NULL</strong> -E&#8217; possibile attivere questa azione solo se il campo interessato della tabella figlia non è impostato a <strong>NOT NULL</strong>. In caso di eliminazione o modifica di un record nella tabella padre i record collegati della tabella figlia verranno impostati a NULL.<br />
<strong>NO ACTION</strong> o <strong>RESTRICT</strong> &#8211; Il nome di queste azioni potrebbe far pensare che il record della tabella padre venga cancellato o modificato senza ulteriori modifiche. Queste azioni invece impediscono direttamente la modifica o la cancellazione dei record della tabella padre. Praticamente specificare queste due azioni equivale a non inserire alcuna azione.<br />
<strong>SET DEFAULT</strong> &#8211; Questa azione benché supportata dallo standard SQL genera un errore sulla definizione della tabella quindi non è utilizzabile, al momento, con MySQL.</p>
<h4>Errore durante la cancellazione di tabelle con Foreign key</h4>
<p>D&#8217;altra parte, le relazioni a volte non consentono la cancellazione di tutte le tabelle, proprio perché la cancellazione è bloccata da qualche chiave esterna (Foreign key). </p>
<p>Come fare un questo caso? Semplice, si disabilita il controllo delle relazioni prima di cancellare e poi si riabilita a cancellazione avvenuta. Le query da usare sono:</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SET FOREIGN_KEY_CHECKS = 0;</pre><p></p>
<p>cancelliamo ora tutte le tabelle ed infine:</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SET FOREIGN_KEY_CHECKS = 1;</pre><p></p>
<p>enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2013/10/15/mysql-cancellare-le-tabelle-con-chiavi-esterne/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>MySQL: ERROR 1030 (HY000): Got error 28 from storage engine</title>
		<link>https://blog.smsoft.it/2012/08/14/mysql-error-1030-hy000-got-error-28-from-storage-engine/</link>
					<comments>https://blog.smsoft.it/2012/08/14/mysql-error-1030-hy000-got-error-28-from-storage-engine/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 14 Aug 2012 14:32:06 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">http://blog.smsoft.it/?p=1966</guid>

					<description><![CDATA[Se vi capita di ricevere l&#8217;errore: [crayon-6a74a15abed0a458193729/] durante l&#8217;esecuzione di una query, sicuramente c&#8217;è un problema di spazio sul disco (probabilmente la partizione /tmp o un&#8217;altra partizione disco interessata da MySQL). In questo caso, basterà eseguire un: [crayon-6a74a15abed17932827324/] per avere il quadro di occupazione delle varie partizioni e per intervenire in modo da liberare spazio. ... <a title="MySQL: ERROR 1030 (HY000): Got error 28 from storage engine" class="read-more" href="https://blog.smsoft.it/2012/08/14/mysql-error-1030-hy000-got-error-28-from-storage-engine/" aria-label="Per saperne di più su MySQL: ERROR 1030 (HY000): Got error 28 from storage engine">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[<p>Se vi capita di ricevere l&#8217;errore:</p><pre class="urvanov-syntax-highlighter-plain-tag">ERROR 1030 (HY000): Got error 28 from storage engine</pre><p>durante l&#8217;esecuzione di una query, sicuramente c&#8217;è un problema di spazio sul disco (probabilmente la partizione /tmp o un&#8217;altra partizione disco interessata da MySQL).<br />
In questo caso, basterà eseguire un:</p><pre class="urvanov-syntax-highlighter-plain-tag">df</pre><p>per avere il quadro di occupazione delle varie partizioni e per intervenire in modo da liberare spazio.</p>
<p>enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2012/08/14/mysql-error-1030-hy000-got-error-28-from-storage-engine/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Simulare la clausola SQL IF su SQLite</title>
		<link>https://blog.smsoft.it/2011/10/18/simulare-la-clausola-sql-if-su-sqlite/</link>
					<comments>https://blog.smsoft.it/2011/10/18/simulare-la-clausola-sql-if-su-sqlite/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 18 Oct 2011 08:38:54 +0000</pubDate>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[CASE]]></category>
		<category><![CDATA[IF]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQLite]]></category>
		<guid isPermaLink="false">http://blog.smsoft.it/?p=1361</guid>

					<description><![CDATA[Se siete abituati ad usare MySQL, sicuramente vi sarà capitato di utilizzare la clausola IF che permette di &#8220;popolare&#8221; un campo calcolato con un valore che varia in base ad un altro campo. In SQLite purtroppo questa clausola non esiste, ma c&#8217;è qualcosa di alternativo, ovvero CASE. Prendiamo in considerazione una query MySQL che popola ... <a title="Simulare la clausola SQL IF su SQLite" class="read-more" href="https://blog.smsoft.it/2011/10/18/simulare-la-clausola-sql-if-su-sqlite/" aria-label="Per saperne di più su Simulare la clausola SQL IF su SQLite">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[<p>Se siete abituati ad usare MySQL, sicuramente vi sarà capitato di utilizzare la clausola <strong>IF</strong> che permette di &#8220;popolare&#8221; un campo calcolato con un valore che varia in base ad un altro campo. In SQLite purtroppo questa clausola non esiste, ma c&#8217;è qualcosa di alternativo, ovvero <strong>CASE</strong>.<br />
Prendiamo in considerazione una query MySQL che popola il campo calcolato <strong>b</strong> uguale al valore del campo <strong>a</strong> se la sua lunghezza è maggiore di 4, altrimenti lo pone vuoto:</p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT IF( LENGHT( a ) > 4 , a , '') AS b FROM table</pre><p>l&#8217;omonima query in SQLite sarà:</p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT CASE WHEN LENGTH(a) > 4 THEN a ELSE '' END AS b FROM table</pre><p></p>
<p>enjoy</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2011/10/18/simulare-la-clausola-sql-if-su-sqlite/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
