<?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 Training</title>
	<atom:link href="http://sql-training.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://sql-training.de</link>
	<description>Wissenswertes zu SQL und relationalen Datenbanken</description>
	<lastBuildDate>Tue, 07 May 2013 19:14:28 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Zähler einer Detailtabelle erhöhen</title>
		<link>http://sql-training.de/2013/04/posititionsnummer-in-einer-detailtabelle-automatisch-hochzahlen/</link>
		<comments>http://sql-training.de/2013/04/posititionsnummer-in-einer-detailtabelle-automatisch-hochzahlen/#comments</comments>
		<pubDate>Fri, 26 Apr 2013 11:49:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Funktionen]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[SQL Grundlagen]]></category>
		<category><![CDATA[Positionen]]></category>
		<category><![CDATA[VBA]]></category>

		<guid isPermaLink="false">http://sql-training.de/?p=311</guid>
		<description><![CDATA[In einer Auftragsdatenbank werden Aufträge in einer Mastertabelle und die dazu gehörigen Positionen in einer Detailtabelle gespeichert. Hierbei soll die Positionsnummer bei der Neuanlage einer Auftragsposition automatisch um 10 hoch gezählt werden. In diesem Beispiel besitzt die Auftragstabelle ein Key-Feld &#8220;Auftrags-ID&#8221;. Die Positionstabelle ist mit dem Feld &#8220;AUFTRAGS-ID_der_POSITION&#8221; mit der Auftragstabelle verbunden. In der Positiontabelle [...]]]></description>
				<content:encoded><![CDATA[<p>In einer Auftragsdatenbank werden Aufträge in einer Mastertabelle und die dazu gehörigen Positionen in einer Detailtabelle gespeichert. Hierbei soll die Positionsnummer bei der Neuanlage einer Auftragsposition automatisch um 10 hoch gezählt werden.</p>
<p>In diesem Beispiel besitzt die Auftragstabelle ein Key-Feld &#8220;Auftrags-ID&#8221;. Die Positionstabelle ist mit dem Feld &#8220;AUFTRAGS-ID_der_POSITION&#8221; mit der Auftragstabelle verbunden. In der Positiontabelle befindet sich ebenfalls das Feld POS-Nr.</p>
<p>Die hier beschiebene Lösung funktioniert sowohl mit Access Datenbanken, Access Projekten (SQL Server) oder mit Access ODBC Datenbanken.</p>
<p>Folgende Schritte sind erforderlich:</p>
<p>Standardwert für die Pos-Nr auf 10 setzen. Beim Anlegen der ersten Auftragsposition wird der Standardwert verwendet.</p>
<p>Im Unterformular (der Positionstabelle) eine Prozedur &#8220;BeforeInsert&#8221; anlegen.</p>
<pre>Private Sub Form_BeforeInsert(Cancel As Integer)
On Error GoTo Fehler

Dim txtPOSneu As Integer

  If DCount("[POS-Nr]", "POSITIONEN", "[AUFTRAGS-ID_der_POSITION] =" &amp; AUFTRAGS-ID_der_POSITION) &lt; 1 Then Exit Sub

  txtPOSneu = DMax("[POS-Nr]", "POSITIONEN", "[AUFTRAGS-ID_der_POSITION] =" &amp; AUFTRAGS-ID_der_POSITION) + 10

  Me.POS-NR = txtPosneu

Exit_Fehler:

  Exit Sub

Fehler:

  MsgBox Err.Description

  Resume Exit_Fehler

End Sub</pre>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2013/04/posititionsnummer-in-einer-detailtabelle-automatisch-hochzahlen/&text=Zähler einer Detailtabelle erhöhen" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2013/04/posititionsnummer-in-einer-detailtabelle-automatisch-hochzahlen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Server 2010</title>
		<link>http://sql-training.de/2012/08/sharepoint-server-2010/</link>
		<comments>http://sql-training.de/2012/08/sharepoint-server-2010/#comments</comments>
		<pubDate>Fri, 10 Aug 2012 07:54:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Fortbildung]]></category>
		<category><![CDATA[Office]]></category>

		<guid isPermaLink="false">http://sql-training.de/?p=293</guid>
		<description><![CDATA[Mit SharePoint Server 2010 vereinfacht man erheblich die Zusammenarbeit von Teams. Informationen und Dokumente können zentral verwaltet, veröffentlicht und ausgetauscht werden. Im Kurs am 12.07.2013 hat jeder Teilnehmer die Möglichkeit ein eigenes Websiteportal aufzubauen und mithilfe von Microsoft Office eine neue Dimension der Zusammenarbeit kennenzulernen. Kursinhalte: Installation und Konfiguration der Server-Farm Zusammenarbeit mit Microsoft Office [...]]]></description>
				<content:encoded><![CDATA[<p>Mit SharePoint Server 2010 vereinfacht man erheblich die Zusammenarbeit von Teams. Informationen und Dokumente können zentral verwaltet, veröffentlicht und ausgetauscht werden.</p>
<p>Im Kurs am 12.07.2013 hat jeder Teilnehmer die Möglichkeit ein eigenes Websiteportal aufzubauen und mithilfe von Microsoft Office eine neue Dimension der Zusammenarbeit kennenzulernen.</p>
<p>Kursinhalte:</p>
<ul>
<li>Installation und Konfiguration der Server-Farm</li>
<li>Zusammenarbeit mit Microsoft Office (Access-, Excel-, Word- und Visio Services) Anwendung von Webparts, Websites, Listen, Dokumentenbibliothen Einsatz von Dashboards und Statuslisten (KPIs)</li>
<li>Dokumentenmanagement mit Versionsverwaltung</li>
<li>Nutzung von PowerPivot mit Excel und SharePoint</li>
<li>Verwendung des SharePoint Workspace und den Microsoft WebApps</li>
<li>Erstellen von Workflows mit dem Designer 2010</li>
</ul>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/08/sharepoint-server-2010/&text=SharePoint Server 2010" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/08/sharepoint-server-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alter Table</title>
		<link>http://sql-training.de/2012/04/alter-table/</link>
		<comments>http://sql-training.de/2012/04/alter-table/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 16:04:30 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[Daten abfragen]]></category>
		<category><![CDATA[SQL Grundlagen]]></category>
		<category><![CDATA[Alter]]></category>
		<category><![CDATA[Alter Table]]></category>
		<category><![CDATA[Constraint]]></category>
		<category><![CDATA[Foreign key]]></category>
		<category><![CDATA[References]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/04/alter-table/</guid>
		<description><![CDATA[Mit dem Befehl ALTER TABLE werden Änderungen und Erweiterungen in Tabellen durchgeführt. Mit geeigneten Parametern können zum Beispiel Felder, Primärschlüssel (Primary Key), Einschränkungen und Gültigkeitsregeln (CHECK CONSTRAINTS), Standardwerte (DEFAULT) und Beziehungen (REFERENCES) einer Tabelle hinzugefügt oder entfernt werden. Einige Befehle können auch als Kombination verwendet werden. Beispiele: Feld PLZ in der Tabelle KDE hinzufügen ALTER [...]]]></description>
				<content:encoded><![CDATA[<p>Mit dem Befehl ALTER TABLE werden Änderungen und Erweiterungen in Tabellen durchgeführt. Mit geeigneten Parametern können zum Beispiel Felder, Primärschlüssel (Primary Key), Einschränkungen und Gültigkeitsregeln (CHECK CONSTRAINTS), Standardwerte (DEFAULT) und Beziehungen (REFERENCES) einer Tabelle hinzugefügt oder entfernt werden. Einige Befehle können auch als Kombination verwendet werden.</p>
<p><strong>Beispiele:<span id="more-231"></span></strong></p>
<p><strong>Feld PLZ in der Tabelle KDE hinzufügen</strong></p>
<p>ALTER TABLE KDE<br />
ADD PLZ varchar(5)</p>
<p><strong>Gültigkeitsregel hinzufügen</strong></p>
<p>ALTER TABLE KDE<br />
ADD Constraint CKStatus CHECK (STATUS &gt;=10)</p>
<p><strong>Standardwert (Defauft) für ein Feld hinzufügen</strong></p>
<p>ALTER TABLE KDE<br />
ADD DEFAULT 10 FOR STATUS</p>
<p><strong>Primärschlüssel für Tabelle KDE auf Feld KNR setzen</strong></p>
<p>ALTER TABLE KDE<br />
ADD Constraint PK_Test PRIMARY KEY Clustered (KNR)</p>
<p><strong>Feld Datum in die Tabelle KDE einfügen und einen Standardwert auf das aktuelle Datum setzen</strong></p>
<p>ALTER TABLE KDE<br />
ADD DATUM smalldatetime<br />
CONSTRAINT DFDatum DEFAULT Getdate() with Values</p>
<p><strong>Einschränkung (Constraint) CKStatus entfernen</strong></p>
<p>ALTER TABLE KDE<br />
DROP Constraint CKStatus</p>
<p><strong>Primärschlüssel (Constraint) löschen</strong></p>
<p>ALTER TABLE KDE<br />
DROP CONSTRAINT PK_TEST</p>
<p><strong>Beziehung zwischen Fremdschlüssel und Primärschlüssel setzen</strong></p>
<p>ALTER TABLE KDE<br />
ADD Constraint FK_KDE_AUF FOREIGN KEY (KNR)<br />
REFERENCES AUF (KNR)</p>
<p><strong>Beziehung zwischen Tabellen löschen</strong></p>
<p>ALTER TABLE TEST<br />
DROP Constraint FK_KDE_AUF</p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/04/alter-table/&text=Alter Table" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/04/alter-table/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Union Abfragen</title>
		<link>http://sql-training.de/2012/03/union-abfragen/</link>
		<comments>http://sql-training.de/2012/03/union-abfragen/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 11:12:10 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[Daten abfragen]]></category>
		<category><![CDATA[SQL Grundlagen]]></category>
		<category><![CDATA[UNION]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/03/union-abfragen/</guid>
		<description><![CDATA[Mit einer UNION Abfrage können Abfrageergebnisse aus mehreren SELECT Anweisungen zu einem &#8220;vereinigten&#8221; Ergebnis ausgegeben werden. Wenn Sie z.B. eine Adressliste aus einer Kundentabelle und Lieferantentabelle in eine Ergebnistabelle zusammenführen wollen, ist UNION eine gute Möglichkeit. SELECT KUNDE, STRASSE, PLZ, ORT as WOHNORT FROM KUNDENTABELLE WHERE BEDINGUNG UNION SELECT LIEFERANT, STRASSE, PLZ, ORT as WOHNORT [...]]]></description>
				<content:encoded><![CDATA[<p>Mit einer UNION Abfrage können Abfrageergebnisse aus mehreren SELECT Anweisungen zu einem &#8220;vereinigten&#8221; Ergebnis ausgegeben werden. Wenn Sie z.B. eine Adressliste aus einer Kundentabelle und Lieferantentabelle in eine Ergebnistabelle zusammenführen wollen, ist UNION eine gute Möglichkeit.<span id="more-224"></span></p>
<p><em>SELECT KUNDE, STRASSE, PLZ, ORT as WOHNORT<br />
</em></p>
<p><em>FROM KUNDENTABELLE<br />
</em></p>
<p><em>WHERE BEDINGUNG<br />
</em></p>
<p><strong><em>UNION<br />
</em></strong></p>
<p><em>SELECT LIEFERANT, STRASSE, PLZ, ORT as WOHNORT<br />
</em></p>
<p><em>FROM LIEFERANTENTABELLE<br />
</em></p>
<p><em>ORDER BY 1<br />
</em></p>
<p><strong><em>UNION<br />
</em></strong></p>
<p><em>…..<br />
</em></p>
<p>Dabei sind UNION Abfragen nicht kompliziert, wenn einige Grundregeln beachtet werden. Die Anzahl der von den benutzten Abfragen muss identisch sein. Die Spalten müssen einen &#8220;ähnlichen&#8221; Datentyp besitzen. Die erste Anweisung (vor dem ersten UNION) legt die Feldnamen und die resultierenden Datentypen fest. Am Ende der letzten Anweisung kann eine Sortierung mit ORDER BY durchgeführt werden.</p>
<p>UNION ist dabei nicht auf zwei SELECT Anweisungen beschränkt, sondern kann beliebig viele &#8220;ähnliche&#8221; Auswahlabfragen zu einer Ergebnismenge vereinigen.</p>
<p>Eine Möglichkeit die Daten nach der Vereinigung noch zu identifizieren, wäre eine Infospalte:</p>
<p><em>SELECT KUNDE, STRASSE, PLZ, ORT as WOHNORT, `Kunde` as Info<br />
</em></p>
<p><em>FROM KUNDENTABELLE<br />
</em></p>
<p><em>WHERE BEDINGUNG<br />
</em></p>
<p><strong><em>UNION<br />
</em></strong></p>
<p><em>SELECT LIEFERANT, STRASSE, PLZ, ORT as WOHNORT, `Lieferant` as Info<br />
</em></p>
<p><em>FROM LIEFERANTENTABELLE<br />
</em></p>
<p><em>ORDER BY 1<br />
</em></p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/03/union-abfragen/&text=Union Abfragen" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/03/union-abfragen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zeugnisverleihung im Bildungszentrum</title>
		<link>http://sql-training.de/2012/03/zeugnisverleihung-im-bildungszentrum/</link>
		<comments>http://sql-training.de/2012/03/zeugnisverleihung-im-bildungszentrum/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 07:48:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fortbildung]]></category>
		<category><![CDATA[Betriebsinformatiker]]></category>
		<category><![CDATA[BTZ]]></category>
		<category><![CDATA[HWK]]></category>
		<category><![CDATA[Kurs]]></category>
		<category><![CDATA[Netzwerkservicetechniker]]></category>

		<guid isPermaLink="false">http://sql-training.de/?p=208</guid>
		<description><![CDATA[Im Bildungszentrum Mühldorf der Handwerkskammer erhielten am 12. März 2012 im Rahmen einer kleinen Feier insgesamt 11 Teilnehmer nach 200 Unterrichtseinheiten ihre Zeugnisse für die bestandene Prüfung zum „Netzwerkservicetechniker (HWK)“. Sechs Teilnehmer erhielten sogar für den erfolgreichen Abschluss zum Betriebsinformatiker (HWK) neben dem Zeugnis die begehrte Schmuckurkunde. Der Leiter des Bildungszentrums Jochen Englmeier hob im [...]]]></description>
				<content:encoded><![CDATA[<p>Im Bildungszentrum Mühldorf der Handwerkskammer erhielten am 12. März 2012 im Rahmen einer kleinen Feier insgesamt 11 Teilnehmer nach 200 Unterrichtseinheiten ihre Zeugnisse für die bestandene Prüfung zum „Netzwerkservicetechniker (HWK)“.</p>
<p><a href="http://sql-training.de/wp-content/uploads/2012/03/IMG_9072_kl1.jpg"><img class="aligncenter size-full wp-image-215" title="IMG_9072_kl" src="http://sql-training.de/wp-content/uploads/2012/03/IMG_9072_kl1.jpg" alt="" width="448" height="299" /></a></p>
<p>Sechs Teilnehmer erhielten sogar für den erfolgreichen Abschluss zum Betriebsinformatiker (HWK) neben dem Zeugnis die begehrte Schmuckurkunde.<span id="more-208"></span><br />
Der Leiter des Bildungszentrums Jochen Englmeier hob im Beisein von mehreren Dozenten die teilweise hervorragenden Ergebnisse und insgesamt das große Engagement der Teilnehmer und die bewiesene Ausdauer bei den Kursen mit insgesamt 1000 UE hervor. Diese Leistung ist umso höher zu bewerten, da die Kurse als Abendkurse berufsbegleitend absolviert werden.</p>
<p>Der Netzwerkservicetechniker (HWK) umfasst die Bereiche Grundlagen und Planung von Netzwerken, Führungsaufgaben in Netzwerk-Projekten, Betreuungsaufgaben, Sicherheitsaspekte, Heterogene Netzwerke unter Windows und Linux.</p>
<p>Die Urkunde als Betriebsinformatiker (HWK) erhalten Teilnehmer nach dem Bestehen der Fortbildungsprüfungen (staatl. anerkannte Prüfungen) in den Kursen Professioneller EDV-Anwender, Netzwerk-Service-Techniker und Anwendungsentwickler.</p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/03/zeugnisverleihung-im-bildungszentrum/&text=Zeugnisverleihung im Bildungszentrum" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/03/zeugnisverleihung-im-bildungszentrum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Datum des Freitags einer KW ermitteln</title>
		<link>http://sql-training.de/2012/03/datum-des-freitags-einer-woche-ermitteln/</link>
		<comments>http://sql-training.de/2012/03/datum-des-freitags-einer-woche-ermitteln/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 14:49:00 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[Bedingungen]]></category>
		<category><![CDATA[Daten abfragen]]></category>
		<category><![CDATA[Funktionen]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[FridayOfTheWeek]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[KW]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/03/datum-des-freitags-einer-woche-ermitteln/</guid>
		<description><![CDATA[Falls in einer Datenbank oder als Ergebnis einer Funktion nur die Kalenderwoche und das Jahr gegeben sind, kann diese Funktion dazu verwendet werden, den Freitag (oder jeden anderen Tag) der Woche als Datum zu ermitteln. Die Funktion setzt das Vorhandensein der Funktion ISOWeek voraus, die in einem anderen Beitrag erklärt wurde. Erstellen Sie auf einem [...]]]></description>
				<content:encoded><![CDATA[<p><img src="http://sql-training.de/wp-content/uploads/2012/03/030712_1448_DatumdesFre1.png" alt="" width="139" height="53" align="right" />Falls in einer Datenbank oder als Ergebnis einer Funktion nur die Kalenderwoche und das Jahr gegeben sind, kann diese Funktion dazu verwendet werden, den Freitag (oder jeden anderen Tag) der Woche als Datum zu ermitteln.</p>
<p>Die Funktion setzt das Vorhandensein der Funktion ISOWeek voraus, die in einem anderen Beitrag erklärt wurde.<span id="more-157"></span></p>
<p>Erstellen Sie auf einem SQL Server eine neue Prozedur und fügen Sie den Code ein:</p>
<p><span style="font-family: Courier New; font-size: 10pt;"><span style="color: blue;">CREATE </span><span style="color: blue;">Function </span><span style="color: teal;">[dbo]<span style="color: gray;">.<span style="color: teal;">[FridayOfTheWeek] <span style="color: blue;"><span style="color: gray;">(<span style="color: teal;">@Jahr </span><span style="color: blue;">smallint<span style="color: gray;">, </span><span style="color: teal;">@Woche</span> smallint<span style="color: gray;">)<br />
</span></span></span></span></span></span></span></span><span style="font-family: Courier New; font-size: 10pt;"><span style="color: blue;">Returns </span><span style="color: blue;">Datetime</span></span></p>
<p><span style="font-family: Courier New; font-size: 10pt;"><span style="color: blue;">as</span><br />
</span><span style="color: blue; font-family: Courier New; font-size: 10pt;">Begin</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;"><span style="color: blue;">Declare </span><span style="color: teal;">@RefWeek </span><span style="color: blue;">smallint<span style="color: gray;">, </span></span></span><span style="font-family: Courier New; font-size: 10pt;"><span style="color: teal;">@RefDate </span><span style="color: blue;">datetime<span style="color: gray;">, </span></span></span><span style="font-family: Courier New; font-size: 10pt;"><span style="color: teal;">@Days </span><span style="color: blue;">smallint<span style="color: gray;">,</span></span></span><span style="font-family: Courier New; font-size: 10pt;"> <span style="color: teal;">@FridayOfWeek </span><span style="color: blue;">datetime</span></span></p>
<p><span style="font-family: Courier New; font-size: 10pt;"><span style="color: blue;">SET </span><span style="color: teal;">@RefDate </span><span style="color: gray;">= </span><span style="color: fuchsia;">CONVERT<span style="color: gray;">(<span style="color: blue;">datetime<span style="color: gray;">, </span><span style="color: fuchsia;">CONVERT<span style="color: gray;">(<span style="color: blue;">char<span style="color: gray;">(</span>4<span style="color: gray;">), </span><span style="color: teal;">@Jahr<span style="color: gray;">) </span><span style="color: gray;">+ </span><span style="color: red;">&#8217;0201&#8242;<span style="color: gray;">);</span></span></span></span></span></span></span></span></span></span></p>
<p><span style="font-family: Courier New; font-size: 10pt;"><span style="color: blue;">SET </span><span style="color: teal;">@RefWeek </span><span style="color: gray;">= </span><span style="color: teal;">dbo<span style="color: gray;">.<span style="color: teal;">ISOweek<span style="color: gray;">(<span style="color: teal;">@RefDate<span style="color: gray;">);</span></span></span></span></span></span></span></p>
<p><span style="font-family: Courier New; font-size: 10pt;"><span style="color: teal;"><span style="color: gray;"><span style="color: teal;"><span style="color: gray;"><span style="color: teal;"><span style="color: gray;"><span style="color: blue;">SET </span><span style="color: teal;">@Days</span> =</span> 7 <span style="color: gray;">* <span style="color: blue;"><span style="color: gray;">(<span style="color: teal;">@Woche</span> &#8211; </span><span style="color: teal;">@RefWeek<span style="color: gray;">) </span><span style="color: gray;">- </span><span style="color: fuchsia;">DATEPART<span style="color: gray;">(<span style="color: teal;">DW<span style="color: gray;">,</span> @RefDate<span style="color: gray;">) </span><span style="color: gray;">+</span> 5<span style="color: gray;">;</span></span></span></span></span></span></span></span></span></span></span></span></span></p>
<p><span style="font-family: Courier New; font-size: 10pt;"><span style="color: blue;">SET </span><span style="color: teal;">@FridayOfWeek </span><span style="color: gray;">= </span><span style="color: fuchsia;">DATEADD<span style="color: gray;">(<span style="color: teal;">d<span style="color: gray;">,</span> @Days<span style="color: gray;">,</span> @RefDate<span style="color: gray;">);</span></span></span></span></span></p>
<p><span style="font-family: Courier New; font-size: 10pt;"><span style="color: blue;">Return<span style="color: gray;">(<span style="color: teal;">@FridayOfWeek<span style="color: gray;">)</span></span></span></span></span></p>
<p><span style="color: blue; font-family: Courier New; font-size: 10pt;">End</span></p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/03/datum-des-freitags-einer-woche-ermitteln/&text=Datum des Freitags einer KW ermitteln" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/03/datum-des-freitags-einer-woche-ermitteln/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kalenderwoche auf SQL Server 2005</title>
		<link>http://sql-training.de/2012/03/kalenderwoche-auf-sql-server-2005/</link>
		<comments>http://sql-training.de/2012/03/kalenderwoche-auf-sql-server-2005/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 00:08:48 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[Funktionen]]></category>
		<category><![CDATA[SQL Grundlagen]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Datepart]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[Iso_week]]></category>

		<guid isPermaLink="false">http://sql-training.de/?p=148</guid>
		<description><![CDATA[Kalenderwoche auf SQL Server 2005 Die Berechnung von Wochen aus einem Datum kann man auf einem SQL Server 2005 normalerweise mit der Funktion Datepart ohne viel Aufwand erledigen. Das Ergebnis der Funktion entspricht aber nicht der in Deutschland üblichen Kalenderwoche.  Hilfe bringt hier einen Benutzerdfinierte Funktion, wie unten im Beispiel dargestellt. Auf dem SQL Server [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Kalenderwoche auf SQL Server 2005<a href="http://sql-training.de/wp-content/uploads/2012/03/sql.png"><img class="alignright size-full wp-image-150" title="sql" src="http://sql-training.de/wp-content/uploads/2012/03/sql.png" alt="" width="138" height="50" /></a></strong></p>
<p>Die Berechnung von Wochen aus einem Datum kann man auf einem SQL Server 2005 normalerweise mit der Funktion Datepart ohne viel Aufwand erledigen. Das Ergebnis der Funktion entspricht aber nicht der in Deutschland üblichen Kalenderwoche.  Hilfe bringt hier einen Benutzerdfinierte Funktion, wie unten im Beispiel dargestellt. Auf dem SQL Server 2008 und später ist diese Funktion nicht nötig, da der nötige Parameter iso_week in die Funktion Datepart  z.B. DATEPART (iso_week , date )<br />
eingefügt wurde.<span id="more-148"></span></p>
<p>&nbsp;</p>
<p>USE [DATENBANK]</p>
<p>GO</p>
<p>/****** Objekt:<br />
UserDefinedFunction [dbo].[ISOweek]<br />
Skriptdatum: 03/05/2012 13:01:48 ******/</p>
<p>SET ANSI_NULLS ON</p>
<p>GO</p>
<p>SET QUOTED_IDENTIFIER ON</p>
<p>GO</p>
<p>CREATE FUNCTION [dbo].[ISOweek]  (@DATE DATETIME)</p>
<p>RETURNS INT</p>
<p>AS</p>
<p>BEGIN</p>
<p>DECLARE @ISOweek INT</p>
<p>SET @ISOweek= DATEPART(wk,@DATE)+1</p>
<p>-DATEPART(wk,CAST(DATEPART(yy,@DATE) AS CHAR(4))+&#8217;0104&#8242;)</p>
<p>&#8211;Special cases: Jan 1-3 may belong to the previous<br />
year</p>
<p>IF (@ISOweek=0)</p>
<p>SET @ISOweek=dbo.ISOweek(CAST(DATEPART(yy,@DATE)-1</p>
<p>AS CHAR(4))+&#8217;12&#8242;+ CAST(24+DATEPART(DAY,@DATE) AS CHAR(2)))+1</p>
<p>&#8211;Special case: Dec 29-31 may belong to the next year</p>
<p>IF ((DATEPART(mm,@DATE)=12) AND</p>
<p>((DATEPART(dd,@DATE)-DATEPART(dw,@DATE))&gt;= 28))</p>
<p>SET @ISOweek=1</p>
<p>RETURN(@ISOweek)</p>
<p>End</p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/03/kalenderwoche-auf-sql-server-2005/&text=Kalenderwoche auf SQL Server 2005" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/03/kalenderwoche-auf-sql-server-2005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server 2012 Launch in Köln</title>
		<link>http://sql-training.de/2012/02/sql-server-2012-launch-in-koln/</link>
		<comments>http://sql-training.de/2012/02/sql-server-2012-launch-in-koln/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 18:28:34 +0000</pubDate>
		<dc:creator>reinowar</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server Launch]]></category>

		<guid isPermaLink="false">http://sql-training.de/?p=115</guid>
		<description><![CDATA[MS + ich waren in Köln und hatten das Vergnügen den SQL Server 2012 vor der Auslieferung kennenlernen zu dürfen. Die Highlights auf einen Blick: Power View (Verwendung im Sharepoint server) mit Exportmöglichkeit ins PowerPoint Format mit Interaktion, bei vorhandenen Zugriff auf den SP-Server. Power Pivot mit Power Pivot Bibliothek im Sharepoint, welche einfach als [...]]]></description>
				<content:encoded><![CDATA[<p>MS + ich waren in Köln und hatten das Vergnügen den SQL Server 2012 vor der Auslieferung kennenlernen zu dürfen.<a href="http://sql-training.de/wp-content/uploads/2012/02/sql.jpg"><img class="alignright size-thumbnail wp-image-131" title="sql" src="http://sql-training.de/wp-content/uploads/2012/02/sql-150x150.jpg" alt="" width="104" height="104" /></a></p>
<p>Die Highlights auf einen Blick:<span id="more-115"></span></p>
<ul>
<li>Power View (Verwendung im Sharepoint server) mit Exportmöglichkeit ins PowerPoint Format mit Interaktion, bei vorhandenen Zugriff auf den SP-Server.</li>
<li>Power Pivot mit Power Pivot Bibliothek im Sharepoint, welche einfach als Dokumentenbibliothek dient und gigantische Möglichkeiten bietet</li>
<li>Ein Template war sehr beeindruckend: Ein SmartArt mit Prozesspfeilen, welche den kompletten Vertriebsablauf mit hinterlegten Listen darstellt. Das muß auf jeden Fall umgesetzt werden <img src='http://sql-training.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Abos im Reportserver wurden um Alerts erweitert. Super einfach. leider fehlt eine Paramterisierung der Berichte.</li>
<li>Will man auf SQL-Server 2012 + SPOINT 2010 upgraden, ist die klare Botschaft die bei mir ankam =&gt; Neuinstallation Leider</li>
</ul>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/sql-server-2012-launch-in-koln/&text=SQL Server 2012 Launch in Köln" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/sql-server-2012-launch-in-koln/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Office Specialist 2010</title>
		<link>http://sql-training.de/2012/02/microsoft-office-specialist-2010/</link>
		<comments>http://sql-training.de/2012/02/microsoft-office-specialist-2010/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 10:09:03 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[Microsoft Office Specialist]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[MOS]]></category>
		<category><![CDATA[Office 2010]]></category>

		<guid isPermaLink="false">http://sql-training.de/?p=106</guid>
		<description><![CDATA[Die HWK Mühldorf bietet als offizielles Microsoft Trainings- und Prüfungs-Center Kurse und Prüfungen zum Microsoft Office Specialist an. Die Ausbildung erfolgt kompakt durch zertifizierte Trainer (MCT). Sie erhalten deutsche Schulungsunterlagen, die optimal auf die Prüfung im angestebten Abschluss vorbereiten. Niemand, der beruflich mit einem PC zu tun hat, kommt heute ohne fundierte Office Kenntnisse aus, [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://sql-training.de/wp-content/uploads/2012/02/mos.jpg"><img class="size-full wp-image-109 alignright" title="mos" src="http://sql-training.de/wp-content/uploads/2012/02/mos.jpg" alt="" width="130" height="80" /></a>Die <a title="Kurse im BZ Mühldorf" href="http://www.hwk-muenchen.de/muehldorf">HWK Mühldorf</a> bietet als offizielles Microsoft Trainings- und Prüfungs-Center Kurse und Prüfungen zum <strong>Microsoft Office Specialist</strong> an. Die Ausbildung erfolgt kompakt durch zertifizierte Trainer (MCT). Sie erhalten deutsche Schulungsunterlagen, die optimal auf die Prüfung im angestebten Abschluss vorbereiten.</p>
<p>Niemand, der beruflich mit einem PC zu tun hat, kommt heute ohne fundierte Office Kenntnisse aus, wenn er seinen Arbeitsablauf effektiv gestalten möchte. <strong>Office gilt als der Standard für Bürosoftware</strong>.<span id="more-106"></span></p>
<p>Ein Nachweis dieser Kompetenz ist oft ein entscheidendes Kriterium für <strong>mehr Erfolg</strong>. Microsoft bietet deshalb allen Office-Anwendern im privaten, schulischen, universitären und geschäftlichen Bereichen ein spezielles, autorisiertes Programm zur Überprüfung der Kenntnisse im Umgang mit den Microsoft Office-Produkten:</p>
<p>Das <strong>Microsoft Office Specialist (MOS) Programm</strong> &#8211; als weltweit einheitliches und anerkanntes Zertifizierungsprogramm.</p>
<p>Die neuste <strong>Microsoft Office Specialist- Zertifizierung</strong> überprüft Ihre Kenntnisse und Fähigkeiten im Umgang mit dem 2010 Microsoft Officesystem und den Applikationen Word, Excel, PowerPoint, Access, Outlook und SharePoint und OneNote.</p>
<p>Prüfungen im Expert-Level (für Fortgeschrittene) sind für Word (auf Deutsch) und für Excel 2010 (auf Englisch) verfügbar<br />
MOS 2010 Master</p>
<p>Für das Master-Zertifikat benötigen Sie Word Expert und Excel Expert (zurzeit in Engl., ab Quartal 2/2012 in Deutsch verfügbar), PowerPoint und Outlook oder Access</p>
<p>Weitere Informationen finden Sie unter <a href="http://www.certnet.de/mos/">http://www.certnet.de/mos/</a></p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/microsoft-office-specialist-2010/&text=Microsoft Office Specialist 2010" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/microsoft-office-specialist-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abfragen als VIEW</title>
		<link>http://sql-training.de/2012/02/abfragen-als-view/</link>
		<comments>http://sql-training.de/2012/02/abfragen-als-view/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 09:35:52 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[SQL Grundlagen]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/02/abfragen-als-view/</guid>
		<description><![CDATA[Abfragen als VIEW (Sicht) speichern Mit der Select Anweisung können Informationen aus Tabellen kombiniert, berechnet, mit Bedingungen oder sortiert ausgewählt werden. In der betrieblichen Praxis kommt es aber vor, dass sich Abfragen oder Berechnungen regelmäßig wiederholen. Solche &#8220;wiederkehrenden&#8221; Auswertungsanforderungen können in SQL als VIEW (Sicht) gespeichert werden. Diese Views, auch logische Tabellen genannt, tragen im [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Abfragen als VIEW (Sicht) speichern<br />
</strong></p>
<p>Mit der Select Anweisung können Informationen aus Tabellen kombiniert, berechnet, mit Bedingungen oder sortiert ausgewählt werden.</p>
<p>In der betrieblichen Praxis kommt es aber vor, dass sich Abfragen oder Berechnungen regelmäßig wiederholen. Solche &#8220;wiederkehrenden&#8221; Auswertungsanforderungen können in SQL als <strong>VIEW (Sicht)</strong> gespeichert werden. Diese Views, auch logische Tabellen genannt, tragen im DBMS einen eindeutigen Namen und können wie eine physische Tabelle verwendet werden.<span id="more-105"></span></p>
<p>Die Basis für eine VIEW ist immer eine Auswahlabfrage, die als VIEW auf dem Server im Ordner Sichten der Datenbank gespeichert wird.</p>
<p><strong><em>Erstellen einer VIEW mit Umsatzdaten pro Auftragsnummer<br />
</em></strong></p>
<p>CREATE VIEW vw_UMSATZ</p>
<p>As</p>
<p>SELECT     ANR,</p>
<p>KNR,</p>
<p>ADAT,</p>
<p>SUM(MENGE * VKP *(1-RABATT) as UMSATZ</p>
<p>FROM</p>
<p>AUF join POS</p>
<p>on AUF.ANR = POS.ANR</p>
<p>GROUP BY     ANR, KNR, ADAT</p>
<p>Die View zeigt bei der Ausführung kein Ergebnis, sondern nur eine Erfolgsmeldung oder eine Fehlermeldung</p>
<p>&nbsp;</p>
<p><strong><em>Der Zugriff auf die View erfolgt mit einer SELECT Anweisung<br />
</em></strong></p>
<p>SELECT * FROM vw_UMSATZ</p>
<p>&nbsp;</p>
<p><strong><em>Die View lässt sich wie jede Tabelle der Datenbank über einen Join mit eine physischen Tabelle verknüpfen.<br />
</em></strong></p>
<p>SELECT FIRMA, ANR, UMSATZ</p>
<p>FROM     KDE join vw_Umsatz</p>
<p>on KDE.KNR = UMSATZ.KNR</p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/abfragen-als-view/&text=Abfragen als VIEW" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/abfragen-als-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CASE Anweisungen</title>
		<link>http://sql-training.de/2012/02/case-anweisungen/</link>
		<comments>http://sql-training.de/2012/02/case-anweisungen/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 09:32:44 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[Bedingungen]]></category>
		<category><![CDATA[SQL Grundlagen]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/02/case-anweisungen/</guid>
		<description><![CDATA[Fallunterscheidungen mit CASE Anweisungen Eine Schwäche von SQL ist, dass es sich eine nicht prozedurale Sprache handelt. Eine Erweiterung, die hier einen Ausgleich zu Sprachen wie z.B. VB bringt ist die Anweisung CASE. CASE wertet einen Ausdruck aus und gibt einen von mehreren denkbaren Ausdrücken zurück. CASE gibt es in zwei Versionen: Einfache Version: Vergleich [...]]]></description>
				<content:encoded><![CDATA[<p><span style="font-family: Arial; font-size: 14pt;"><strong>Fallunterscheidungen mit CASE Anweisungen<br />
</strong></span></p>
<p>Eine Schwäche von SQL ist, dass es sich eine nicht prozedurale Sprache handelt. Eine Erweiterung, die hier einen Ausgleich zu Sprachen wie z.B. VB bringt ist die Anweisung CASE.<span id="more-104"></span></p>
<p>CASE wertet einen Ausdruck aus und gibt einen von mehreren denkbaren Ausdrücken zurück. CASE gibt es in zwei Versionen:</p>
<p>Einfache Version: Vergleich eines Ausdrucks mit verschiedenen einfachen Ausdrücken</p>
<p>Komplexe Version: Liste von Bedingungen, die True oder False zurückgeben</p>
<p>Case kann überall dort verwendet werden, wo ein Ausdruck erlaubt ist. Dies kann innerhalb von Spaltenlisten im Select-Abschnitt, aber auch innerhalb von Where- und Order-By-Abschnitten sein. Damit ist z.B. eine vom Benutzer festgelegte und durch einen Parameterwert erzeugte Sortierung möglich.</p>
<p><strong>Syntax<br />
</strong></p>
<p><strong>Einfache Version<br />
</strong></p>
<p>CASE &lt;Prüfausdruck&gt;<br />
WHEN &lt;erste Möglichkeit&gt; THEN &lt;erstes Resultat&gt;<br />
WHEN &lt;zweite Möglichkeit&gt; THEN &lt;zweites Resultat&gt;<br />
ELSE &lt;alternatives Resultat&gt;<br />
END</p>
<p>&nbsp;</p>
<p>Beispiel:</p>
<p>Select</p>
<p>Firma,</p>
<p>case Status</p>
<p>WHEN 10 THEN &#8216;SUPER&#8217;</p>
<p>WHEN 20 THEN &#8216;OK&#8217;</p>
<p>ELSE &#8216;SCHLECHT&#8217;</p>
<p>end as Bewertung</p>
<p>FROM KDE</p>
<p><strong>Komplexe Version<br />
</strong></p>
<p>CASE<br />
WHEN &lt;erster Boolean-Ausdruck&gt; THEN &lt;erstes Resultat&gt;<br />
ELSE &lt;alternatives Resultat&gt;<br />
END</p>
<p>&nbsp;</p>
<p>Beispiel</p>
<p>SELECT</p>
<p>POS.PNR,</p>
<p>BEZ,</p>
<p>SUM(MENGE*VKP) as UMSATZ,</p>
<p>Case</p>
<p>WHEN SUM(MENGE*VKP) &gt; (SELECT SUM(MENGE*VKP) FROM POS WHERE PNR = 20) THEN &#8216;Besser&#8217;</p>
<p>WHEN SUM(MENGE*VKP) &lt; (SELECT SUM(MENGE*VKP) FROM POS WHERE PNR = 20) THEN &#8216;Schlechter&#8217;</p>
<p>end as Bewertung</p>
<p>&nbsp;</p>
<p>FROM</p>
<p>PROD join POS on POS.PNR = PROD.PNR</p>
<p>Group By</p>
<p>POS.PNR, BEZ</p>
<p><strong>Argumente<br />
</strong></p>
<p>&lt;Prüfausdruck&gt;</p>
<p>der auszuwertende Ausdruck für die einfache Case-Version</p>
<p>&lt;erste Möglichkeit&gt;</p>
<p>der erste Ausdruck, der auf die Übereinstimmung mit dem Prüfausdruck getestet wird</p>
<p>&lt;erstes Resultat&gt;</p>
<p>das erste auszugebende Ergebnis</p>
<p>&lt;alternatives Resultat&gt;</p>
<p>das Ergebnis, welches ausgegeben wird, falls alle Prüfungen zuvor nicht positiv waren</p>
<p>&lt;erster Boolean-Ausdruck&gt;</p>
<p>ein Boolean-Ausdruck, der Vergleichsoperatoren (=, !=), Klauseln (Is Null, Between) und ähnliches enthalten kann oder eine Kombination mehrerer Boolean-Ausdrücke mit And/Or</p>
<p><strong>Hinweise<br />
</strong></p>
<p>Die einfache Version überprüft nur auf Gleichheit zwischen dem Prüfausdruck und den verschiedenen Alternativen mit dem &#8216;=&#8217; &#8211; Operator. Damit kann sie durch die komplexe Version dargestellt werden, so das sie theoretisch entfernt werden könnte:</p>
<p>CASE<br />
WHEN &lt;Prüfausdruck&gt; = &lt;erste Möglichkeit&gt;<br />
THEN &lt;erstes Resultat&gt;<br />
[...]<br />
[<br />
ELSE &lt;alternatives Resultat&gt;<br />
]<br />
END</p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/case-anweisungen/&text=CASE Anweisungen" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/case-anweisungen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Datentypen</title>
		<link>http://sql-training.de/2012/02/datentypen/</link>
		<comments>http://sql-training.de/2012/02/datentypen/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 09:27:18 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[Datentypen]]></category>
		<category><![CDATA[SQL Grundlagen]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/02/datentypen/</guid>
		<description><![CDATA[Auf einem SQL Server hat jede Spalte, jede lokale Variable, jeder Ausdruck und jeder Parameter einen entsprechenden Datentyp. Ein Datentyp ist ein Attribut, das für das jeweilige Objekt angibt, welchen Typ von Daten ein Objekt aufnehmen kann: Ganzzahlige Daten, Zeichendaten, Währungsdaten, Datums- und Uhrzeitdaten, binäre Zeichenfolgen usw. SQL Server stellt eine Reihe von Systemdatentypen zur [...]]]></description>
				<content:encoded><![CDATA[<p><span style="font-family: Arial; font-size: 10pt;">Auf einem SQL Server hat jede Spalte, jede lokale Variable, jeder Ausdruck und jeder Parameter einen entsprechenden Datentyp. Ein Datentyp ist ein Attribut, das für das jeweilige Objekt angibt, welchen Typ von Daten ein Objekt aufnehmen kann: Ganzzahlige Daten, Zeichendaten, Währungsdaten, Datums- und Uhrzeitdaten, binäre Zeichenfolgen usw.<span id="more-101"></span><br />
</span></p>
<p><span style="font-family: Arial; font-size: 10pt;">SQL Server stellt eine Reihe von Systemdatentypen zur Verfügung, die alle Typen von Daten definieren, die mit SQL Server verwendet werden können. Sie können auch Ihre eigenen Datentypen in Transact-SQL oder Microsoft.NET Framework definieren. Aliasdatentypen basieren auf den vom System bereitgestellten Datentypen. Benutzerdefinierte Typen erhalten ihre Merkmale von den Methoden und Operatoren einer Klasse, die Sie mithilfe einer der von .NET Framework unterstützten Programmiersprachen erstellen.<br />
</span></p>
<p><span style="font-family: Arial; font-size: 10pt;">Wenn zwei Ausdrücke, die unterschiedliche Datentypen, Sortierungen, Genauigkeiten, Dezimalstellen oder Längen haben, durch einen Operator kombiniert werden, wird das Ergebnis durch Folgendes bestimmt:<br />
</span></p>
<ul>
<li><span style="font-family: Arial; font-size: 10pt;">Der Datentyp des Ergebnisses wird bestimmt, indem die Regeln zur Rangfolge der Datentypen auf die Eingabeausdrücke angewendet werden.<br />
</span></li>
<li><span style="font-family: Arial; font-size: 10pt;">Wenn der Ergebniswert vom Datentyp char, varchar, text, nchar, nvarchar oder ntext ist, wird die Sortierung des Ergebnisses durch die Regeln zur Sortierungsrangfolge bestimmt.<br />
</span></li>
<li><span style="font-family: Arial; font-size: 10pt;">Die Genauigkeit, die Dezimalstellen und die Länge des Ergebniswertes hängen von der Genauigkeit, den Dezimalstellen und der Länge der Eingabeausdrücke ab. </span></li>
</ul>
<p>&nbsp;</p>
<h2>Datentypenkategorien</h2>
<p>&nbsp;</p>
<p><span style="font-family: Arial; font-size: 10pt;">Datentypen in SQL Server sind nach den folgenden Kategorien organisiert:<br />
</span></p>
<div style="margin-left: 7pt;">
<table style="border-collapse: collapse; background: white;" border="0">
<colgroup>
<col style="width: 347px;" />
<col style="width: 275px;" /></colgroup>
<tbody valign="top">
<tr>
<td style="border: solid 0.5pt; padding: 5px;"><span style="color: black; font-family: Verdana; font-size: 10pt;">Genaue numerische Werte</span></td>
<td style="border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 5px;"><span style="color: black; font-family: Verdana; font-size: 10pt;">Unicode-Zeichenfolgen</span></td>
</tr>
<tr>
<td style="border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 5px;"><span style="color: black; font-family: Verdana; font-size: 10pt;">Ungefähre numerische Werte</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 5px;"><span style="color: black; font-family: Verdana; font-size: 10pt;">Binärzeichenfolgen</span></td>
</tr>
<tr>
<td style="border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 5px;"><span style="color: black; font-family: Verdana; font-size: 10pt;">Datum und Zeit</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 5px;"><span style="color: black; font-family: Verdana; font-size: 10pt;">Andere Datentypen</span></td>
</tr>
<tr>
<td style="border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 5px;"><span style="color: black; font-family: Verdana; font-size: 10pt;">Zeichenfolgen</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 5px;"></td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p><span style="font-family: Arial; font-size: 10pt;">In SQL Server sind einige Datentypen aufgrund ihrer Speichermerkmale als den folgenden Gruppen zugehörig definiert:<br />
</span></p>
<ul>
<li><span style="font-family: Arial; font-size: 10pt;">Datentypen mit hohen Werten: <strong>varchar(max)</strong>, <strong>nvarchar(max)</strong> und <strong>varbinary(max)</strong><br />
</span></li>
<li><span style="font-family: Arial; font-size: 10pt;">Datentypen mit umfangreichen Objekten: <strong>text</strong>, <strong>ntext</strong>, <strong>image</strong>, <strong>varchar(max)</strong>, <strong>nvarchar(max)</strong>, <strong>varbinary(max)</strong> und <strong>xml</strong><br />
</span></li>
</ul>
<h2>Liste wichtiger relationaler SQL Server Datentypen im Vergleich mit Access</h2>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 110px;" />
<col style="width: 391px;" />
<col style="width: 132px;" /></colgroup>
<tbody valign="top">
<tr style="background: #7f7f7f;">
<td style="border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: white; font-family: Verdana; font-size: 10pt;"><strong>SQL-Server</strong></span></td>
<td style="border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: white; font-family: Verdana; font-size: 10pt;"><strong>Beschreibung</strong></span></td>
<td style="border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: white; font-family: Verdana; font-size: 10pt;"><strong>Access2000</strong></span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">char</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Text fester Länge bis 8000 Bytes</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Text</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">nchar</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Unicode-Text fester Länge bis 4000 Bytes</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Text</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">varchar</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Text variabler Länge bis 8000 Bytes</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Text</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">nvarchar</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Unicode-Text variabler Länge bis 8000 Bytes</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Text</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">text</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Zeichendaten bis 2 hoch 31 &#8211; 1 Zeichen</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Memo</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">ntext</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Unicode-Zeichendaten bis 2 hoch 30 &#8211; 1 Zeichen</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Memo</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">image</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Binärdaten bis 2 hoch 31 &#8211; 1 Byte</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">OLE-Objekt</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">binary</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Binäre Daten fester Länge bis 255 Byte</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Zahl: Byte</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">datetime</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Datum und Zeit (1.1.1753 &#8211; 31.12.9999)</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Datum/Zeit</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">datetime2</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Datum wie datetime, verbraucht weniger Speicherplatz</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Nicht vorhanden</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">datetimeoffset</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Datum und Zeit mit Zeitzone Offset Teil</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Nicht vorhanden</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">date</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Datum (1.1.01 – 31.12.9999)</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Nicht vorhanden</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">time</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Zeit ( 00:00:00.0000000 – 23:59:50.9999999</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Nicht vorhanden</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">smalldatetime</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Datum und Zeit (1.1.1900 &#8211; 06.06.2079)</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Datum/Zeit</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">decimal</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Gepackte Dezimalzahl, exat numerisch</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Zahl: Decimal</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">numeric</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Synonym zu decimal</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Zahl: Decimal</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">real</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Fließkommazahl mit 7 Stellen Genauigkeit</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Zahl: Single</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">float</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Fließkommazahl mit 15 Stellen Genauigkeit</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Zahl: Double</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">int</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Ganze Zahl zwischen &#8211; 2.147.483.648 bis 2.147.483.648</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Autowert, Zahl: Long Integer</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">smallint</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Ganze Zahl zwischen -32.768 und 32.767</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Zahl: Integer</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">tinyint</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Ganze Zahl zwischen 2 und 255</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Zahl: Byte</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">money</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Float mit 4 Dezimalstellen</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Zahl: Währung</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">smallmoney</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Float mit 2 Dezimalstellen</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Zahl: Währung</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">bit</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">0 oder 1 (true or false)</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Ja/Nein</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">uniqueidentifier</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Global eindeutiger Bezeichner</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Replikations-ID</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">timestamp</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Eindeutiger Zeitstempel in Datenbank</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Nicht vorhanden</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">HierarchyId</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Erlaubt es Datenbankanwendungen, Baumstrukturen auf effizientere Weise zu modellieren, als dies gegenwärtig möglich ist. Der neue Systemtyp HierarchyId kann Werte aufnehmen, die Knoten eines hierarchischen Baums repräsentieren.</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Nicht vorhanden</span></td>
</tr>
<tr>
<td style="border-top: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">FILESTREAM</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Ermöglicht die direkte Speicherung großer binärer Daten im NTFS-Dateisystem, die der Datenbank als integraler Part erhalten bleiben. Genauso wird die Transaktionskonsistenz aufrecht erhalten</span></td>
<td style="border-top: none; border-left: none; border-bottom: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Nicht vorhanden</span></td>
</tr>
<tr>
<td style="border-top: none; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Geografische Datentypen</span></td>
<td style="border-top: none; border-left: none; border-right: solid 0.5pt; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Speichern Geodaten und Ortskoordinaten</span></td>
<td style="border-top: none; border-left: none; padding: 1px;" valign="middle"><span style="color: black; font-family: Verdana; font-size: 10pt;">Nicht vorhanden</span></td>
</tr>
</tbody>
</table>
</div>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/datentypen/&text=Datentypen" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/datentypen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Der EXISTS Operator</title>
		<link>http://sql-training.de/2012/02/der-exists-operator/</link>
		<comments>http://sql-training.de/2012/02/der-exists-operator/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 09:23:30 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[Bedingungen]]></category>
		<category><![CDATA[SQL Grundlagen]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/02/der-exists-operator/</guid>
		<description><![CDATA[Der EXISTS Operator liefert True zurück, falls die Unterabfrage mindestens einen Wert zurückliefert. Die Unterabfrage wird hierbei mit einer impliziten Top 1 &#8211; Klausel ausgeführt und beendet, sobald eine Zeile gefunden wurde. Für positive Prüfungen ist dies erheblich schneller als z.B. ein Count(*) &#62; 0 &#8211; Vergleich. Für die Prüfung wird sehr oft eine korrelierende Unterabfrage [...]]]></description>
				<content:encoded><![CDATA[<p>Der EXISTS Operator liefert True zurück, falls die Unterabfrage mindestens einen Wert zurückliefert. Die Unterabfrage wird hierbei mit einer impliziten Top 1 &#8211; Klausel ausgeführt und beendet, sobald eine Zeile gefunden wurde. Für positive Prüfungen ist dies erheblich schneller als z.B. ein Count(*) &gt; 0 &#8211; Vergleich.<span id="more-100"></span></p>
<p>Für die Prüfung wird sehr oft eine korrelierende Unterabfrage eingesetzt, die eine Beziehung zur Hauptabfrage besitzen muss.</p>
<p>&nbsp;</p>
<p><strong>Syntax</strong></p>
<p>Exists (&lt;Unterabfrage&gt;)</p>
<p><strong>Beispiele:</strong></p>
<p>Ermitteln Sie alle Positionen, deren Produkte nicht mehr am Lager verfügbar sind.</p>
<p>&nbsp;</p>
<p>SELECT     *</p>
<p>From     POS A</p>
<p>Where not exists</p>
<p>(Select PNR from LAG B Where A.PNR = B.PNR)</p>
<p>&nbsp;</p>
<p>Ermitteln Sie alle Produkte, die nicht am Lager sind.</p>
<p>&nbsp;</p>
<p>Select     *</p>
<p>From PROD A</p>
<p>Where not exists</p>
<p>(Select PNR from LAG B Where A.PNR = B.PNR)</p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/der-exists-operator/&text=Der EXISTS Operator" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/der-exists-operator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Komplexe Abfragen</title>
		<link>http://sql-training.de/2012/02/komplexe-abfragen/</link>
		<comments>http://sql-training.de/2012/02/komplexe-abfragen/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 09:16:59 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[Daten abfragen]]></category>
		<category><![CDATA[SQL Grundlagen]]></category>
		<category><![CDATA[CROSS JOIN]]></category>
		<category><![CDATA[LEFT JOIN]]></category>
		<category><![CDATA[RIGHT JOIN]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/02/komplexe-abfragen/</guid>
		<description><![CDATA[Komplexe Abfragen über mehr als eine Tabelle Beziehungen zwischen Tabellen in relationalen Datenbanken werden in SQL mit JOINs (engl. Aneinanderfügen) erstellt. Hierzu kann bei Gleichheitsverknüpfungen (INNER JOIN oder EQUI JOIN) auch das Gleichheitszeichen (=) verwendet werden. Bei Beziehungen zwischen Tabellen, die Daten einer Basistabelle vollständig und Daten einer zweiten verknüpften Tabelle bei Bedarf anzeigen, kommt [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Komplexe Abfragen über mehr als eine Tabelle<br />
</strong></p>
<p>Beziehungen zwischen Tabellen in relationalen Datenbanken werden in SQL mit <strong>JOINs</strong> (engl. Aneinanderfügen) erstellt. Hierzu kann bei Gleichheitsverknüpfungen (<strong>INNER JOIN</strong> oder <strong>EQUI JOIN</strong>) auch das Gleichheitszeichen (=) verwendet werden.</p>
<p>Bei Beziehungen zwischen Tabellen, die Daten einer Basistabelle vollständig und Daten einer zweiten verknüpften Tabelle bei Bedarf anzeigen, kommt der <strong>OUTER JOIN</strong> (<strong>LEFT JOIN</strong> oder <strong>RIGHT JOIN</strong>) zum Einsatz.<span id="more-97"></span></p>
<p><strong>Der SQL Server 2000 bietet die komfortable Möglichkeit einen OUTER JOIN mit dem *= für einen LEFT JOIN und dem =* für einen RIGHT JOIN herzustellen. Ab der Version 2005 ist diese Schreibweise nicht mehr erlaubt. In der Version 2008 wurde die Funktion komplett entfernt.<br />
</strong></p>
<p>Um eine Tabelle mit sich selbst zu verknüpfen und somit eine rekursive Beziehung zu erstellen, benötigen die in SQL die Alias Namen. Eine Tabelle kommt in der FROM &#8211; Klausel mehrfach vor und erhält einen kurzen Ersatznamen (in unserem Beispiel a und b)</p>
<p><strong>Der CROSS JOIN (Kartesisches Produkt von 2 Tabellen)</strong></p>
<p>SELECT FIRMA, ANR, ADAT</p>
<p>FROM KDE <strong>CROSS JOIN</strong> AUF</p>
<p>&nbsp;</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 69px;" />
<col style="width: 31px;" />
<col style="width: 71px;" /></colgroup>
<tbody valign="top">
<tr style="background: silver;">
<td style="border: none; padding: 1px;" colspan="3" valign="middle"><strong>Dbo.xxxx</strong></td>
</tr>
<tr style="background: silver;">
<td style="border-top: none; border-left: outset black 0.75pt; border-bottom: outset black 0.75pt; border-right: outset black 0.75pt; padding: 1px;" valign="middle"><strong>FIRMA</strong></td>
<td style="border-top: none; border-left: none; border-bottom: outset black 0.75pt; border-right: outset black 0.75pt; padding: 1px;" valign="middle"><strong>ANR</strong></td>
<td style="border-top: none; border-left: none; border-bottom: outset black 0.75pt; border-right: outset black 0.75pt; padding: 1px;" valign="middle"><strong>ADAT</strong></td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Adelmüller</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">100</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">17.01.2002</td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Enrico</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">101</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">31.01.2002</td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Danninger</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">102</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">07.03.2002</td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Adelmüller</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">103</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">27.05.2002</td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Bellaria</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">104</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">28.06.2002</td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Enrico</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">105</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">02.07.2002</td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Adelmüller</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">106</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">03.07.2002</td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Leitz</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">107</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">02.08.2002</td>
</tr>
</tbody>
</table>
</div>
<p><strong> Oder </strong>(einfache verkürzte Schreibweise)</p>
<p>SELECT FIRMA, ANR, ADAT</p>
<p>FROM KDE, AUF</p>
<p>&nbsp;</p>
<p><strong>Der INNER JOIN (natürlicher JOIN oder EQUI JOIN)</strong></p>
<p>SELECT FIRMA, ANR, ADAT</p>
<p>FROM AUF <strong>INNER JOIN</strong> KDE <strong>ON</strong> KDE.KNR = AUF.KNR</p>
<p><strong>Oder </strong>(einfache verkürzte Schreibweise)</p>
<p>SELECT FIRMA, ANR, ADAT</p>
<p>FROM KDE, AUF</p>
<p>WHERE KDE.KNR <strong>=</strong> AUF.KNR</p>
<p>&nbsp;</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 72px;" />
<col style="width: 31px;" />
<col style="width: 71px;" /></colgroup>
<tbody valign="top">
<tr style="background: silver;">
<td style="border: none; padding: 1px;" colspan="3" valign="middle"><strong>dbo.xxxx</strong></td>
</tr>
<tr style="background: silver;">
<td style="border-top: none; border-left: outset black 0.75pt; border-bottom: outset black 0.75pt; border-right: outset black 0.75pt; padding: 1px;" valign="middle"><strong>FIRMA</strong></td>
<td style="border-top: none; border-left: none; border-bottom: outset black 0.75pt; border-right: outset black 0.75pt; padding: 1px;" valign="middle"><strong>ANR</strong></td>
<td style="border-top: none; border-left: none; border-bottom: outset black 0.75pt; border-right: outset black 0.75pt; padding: 1px;" valign="middle"><strong>ADAT</strong></td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Adelmüller</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">100</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">17.01.2002</td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Adelmüller</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">103</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">27.05.2002</td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Adelmüller</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">106</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">03.07.2002</td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Bellaria</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">104</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">28.06.2002</td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Danninger</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">102</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">07.03.2002</td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Distel</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;"></td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;"></td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Enrico</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">101</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">31.01.2002</td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Enrico</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">105</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">02.07.2002</td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Feuermann</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;"></td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;"></td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Neumeyer</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;"></td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;"></td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Hansa</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;"></td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;"></td>
</tr>
<tr style="height: 22px; background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Leitz</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">107</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">02.08.2002</td>
</tr>
<tr style="height: 25px; background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Schmücke</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;"></td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;"></td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p><strong>Der RIGHT JOIN</strong></p>
<p>SELECT FIRMA, ANR, ADAT</p>
<p>FROM AUF <strong>RIGHT JOIN</strong> KDE <strong>ON</strong> KDE.KNR = AUF.KNR</p>
<p><strong>Der LEFT JOIN</strong></p>
<p>SELECT FIRMA, ANR, ADAT</p>
<p>FROM KDE <strong>LEFT JOIN</strong> AUF <strong>ON</strong> KDE.KNR = AUF.KNR</p>
<p>(Abfrageergebnis vgl. RIGHT JOIN)</p>
<p>&nbsp;</p>
<p><strong>Eine Tabelle mit sich selbst verknüpfen<br />
</strong></p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 49px;" />
<col style="width: 51px;" />
<col style="width: 35px;" /></colgroup>
<tbody valign="top">
<tr style="background: silver;">
<td style="border: none; padding: 1px;" colspan="3" valign="middle"><strong>dbo.xxxx</strong></td>
</tr>
<tr style="background: silver;">
<td style="border-top: none; border-left: outset black 0.75pt; border-bottom: outset black 0.75pt; border-right: outset black 0.75pt; padding: 1px;" valign="middle"><strong>FIRMA</strong></td>
<td style="border-top: none; border-left: none; border-bottom: outset black 0.75pt; border-right: outset black 0.75pt; padding: 1px;" valign="middle"><strong>STATUS</strong></td>
<td style="border-top: none; border-left: none; border-bottom: outset black 0.75pt; border-right: outset black 0.75pt; padding: 1px;" valign="middle"><strong>ORT</strong></td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Bellaria</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">30</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Bonn</td>
</tr>
<tr style="background: white;">
<td style="border-top: none; border-left: outset silver 0.75pt; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Distel</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">10</td>
<td style="border-top: none; border-left: none; border-bottom: outset silver 0.75pt; border-right: outset silver 0.75pt; padding: 1px;">Bonn</td>
</tr>
</tbody>
</table>
</div>
<p>SELECT DISTINCT <strong>a.</strong>FIRMA, <strong>a.</strong>STATUS, <strong>a.</strong>ORT</p>
<p>FROM KDE <strong>a</strong>, KDE <strong>b</strong></p>
<p>WHERE <strong>a.</strong>ORT <strong>=</strong><br />
<strong>b</strong>.ORT</p>
<p>AND<strong> a</strong>.KNR &lt;&gt; <strong>b.</strong>KNR</p>
<p>&nbsp;</p>
<p>Dieses Beispiel selektiert alle Datensätze, bei denen es mehr als einen Kunden an einem Ort gibt.</p>
<p>Hierzu werden der Tabelle KDE die beiden Alias Namen <strong>a</strong> und <strong>b</strong> zugewiesen über die man die Tabellen in der Abfrage ansprechen kann. Ein Alias ist ein in der Regel kurzer Ersatzname für eine Tabelle ähnlich der Zuweisung von Alias Namen bei Feldern<br />
(vgl. SELECT ANR, SUM(MENGE * VKP) as <strong>UMSATZ</strong> ……..).</p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/komplexe-abfragen/&text=Komplexe Abfragen" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/komplexe-abfragen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wie formuliere ich eine Abfrage?</title>
		<link>http://sql-training.de/2012/02/wie-formuliere-ich-eine-auswahlabfrage/</link>
		<comments>http://sql-training.de/2012/02/wie-formuliere-ich-eine-auswahlabfrage/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 09:07:57 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[Daten abfragen]]></category>
		<category><![CDATA[SQL Grundlagen]]></category>
		<category><![CDATA[Abfragen]]></category>
		<category><![CDATA[FROM]]></category>
		<category><![CDATA[Select]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/02/wie-formuliere-ich-eine-auswahlabfrage/</guid>
		<description><![CDATA[SQL ist, eine einfach zu erlernende Abfragesprache für relationale Datenbanken, wie zum Beispiel dem SQL Server 2008. Trotzdem stellt sich für viele Einsteiger oft die Frage: Wie soll ich beginnen, um eine Select-Anweisung (Auswahlabfrage) zu formulieren?]]></description>
				<content:encoded><![CDATA[<p><span style="color: black; font-family: Verdana;">SQL ist, eine einfach zu erlernende Abfragesprache für relationale Datenbanken, wie zum Beispiel dem SQL Server 2008.<br />
Trotzdem stellt sich für viele Einsteiger oft die Frage: <strong>Wie soll ich beginnen, um eine Select-Anweisung</strong> (Auswahlabfrage) <strong>zu formulieren</strong>?<br />
Diesen Punkt soll dieser Beitrag kurz und knapp erklären und somit den erfolgreichen Start mit SQL ermöglichen.<span id="more-93"></span></span></p>
<p>Eine relationale Datenbank enthält in der Regel viele Informationen, die im Laufe der Zeit erfasst/eingegeben und bearbeitet wurden. Diese Informationen werden in Tabellen gespeichert, die in Beziehung stehen können, aber nicht zwangsläufig müssen. In einer Tabelle werden Daten gespeichert, die einem bestimmten Thema angehören. So enthält eine Kundentabelle (<strong>KDE</strong>) alle Informationen, die direkt einem Kunden zugeordnet werden können, wie z.B. Kundennummer (<strong>KNR</strong>), der Name des Kunden (<strong>FIRMA</strong>) und der Ort an dem der Kunde sitzt (<strong>ORT</strong>). SQL beschreibt nicht den Zugriff auf die Daten wie C++, sondern formuliert das Ergebnis einer &#8220;manchmal&#8221; komplexen Fragestellung zum vorhandenen Datenbestand.</p>
<p><strong>Problemstellung:</strong> Mit einer Auswahlabfrage soll eine nach Kunden sortierte Liste erzeugt werden, die alle Kunden enthält, welche am Ort &#8220;Bonn&#8221; sitzen.</p>
<p><strong>Um diese (eine) Abfrage in SQL zu formulieren, müssen Sie sich folgende Fragen stellen:</strong></p>
<ul>
<li><span style="color: black; font-family: Verdana;">Welche Datenfelder (Spalten) sollen im Ergebnis der Abfrage ausgegeben werden? Wie soll die fertige Ergebnis-Liste aussehen?<br />
z.B KNR, FIRMA, STATUS<br />
</span></li>
<li><span style="color: black; font-family: Verdana;">In welchen Tabellen finden Sie die nötigen Informationen?<br />
z.B. in der Tabelle KDE<br />
</span></li>
<li><span style="color: black; font-family: Verdana;">Falls mehrere Tabellen nötig sind um das Ergebnis zu formulieren: Über welche Schlüsselfelder (Primär- und Fremdschlüssel) stehen die Tabellen in Beziehung?<br />
In der Datenbank Firma2008 erkennen Sie Schlüsselpaare an gleichen Feldnamen z.B. KDE.KNR und AUF.KNR<br />
</span></li>
</ul>
<p><span style="color: black; font-family: Verdana;">Damit formulieren Sie die folgende Abfrage:<br />
</span></p>
<p><span style="color: black; font-family: Verdana; font-size: 10pt;"><strong>Code:<br />
</strong></span></p>
<p style="background: #dddddd;"><span style="color: black; font-family: Courier New; font-size: 10pt;">SELECT KNR, FIRMA, STATUS<br />
FROM KDE<br />
</span></p>
<p><span style="color: black; font-family: Verdana;"><br />
Nachdem Sie die Spalten und die Quelle (Tabellen) gewählt haben, schränken Sie die Ausgabe der Datensätze ein. In unserem Beispiel sollen nur Kunden aus Bonn ausgegeben werden.<br />
</span></p>
<ul>
<li><span style="color: black; font-family: Verdana;">Welche Bedingungen müssen auf die Datensätze zutreffen?<br />
</span></li>
<li><span style="color: black; font-family: Verdana;">Sollen die Datensätze aufsteigend oder absteigend sortiert werden?<br />
</span></li>
</ul>
<p><span style="color: black; font-family: Verdana; font-size: 10pt;"><strong>Code:<br />
</strong></span></p>
<p style="background: #dddddd;"><span style="color: black; font-family: Courier New; font-size: 10pt;">SELECT KNR, FIRMA, STATUS<br />
FROM KDE<br />
WHERE ORT LIKE &#8216;BONN&#8217;<br />
ORDER BY FIRMA<br />
</span></p>
<p><span style="color: black; font-family: Verdana;"><br />
Um eine Abfrage zu formulieren, benötigen Sie auf jeden Fall auch das Wissen über die Struktur der Datenbank. D.h. welche Tabellen mit welchen Informationen sind in der Datenbank vorhanden und wie stehen die Tabellen miteinander in Beziehung.<br />
</span></p>
<p style="text-align: center;"><img src="http://sql-training.de/wp-content/uploads/2012/02/022512_0907_Wieformulie1.jpg" alt="" /><span style="color: black; font-family: Verdana;"><br />
</span></p>
<p><span style="color: black; font-family: Verdana;"><br />
</span></p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/wie-formuliere-ich-eine-auswahlabfrage/&text=Wie formuliere ich eine Abfrage?" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/wie-formuliere-ich-eine-auswahlabfrage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abfragen mit OUTER JOINS</title>
		<link>http://sql-training.de/2012/02/abfragen-mit-outer-joins/</link>
		<comments>http://sql-training.de/2012/02/abfragen-mit-outer-joins/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 09:02:18 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[Daten abfragen]]></category>
		<category><![CDATA[SQL Grundlagen]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/02/abfragen-mit-outer-joins/</guid>
		<description><![CDATA[(RIGHT JOIN oder LEFTJOIN) Dieser Abfragetyp wird verwendet wenn aus einer Tabelle alle Werte und aus der verknüpften Tabelle die dazu passenden Werte ausgebeben werden sollen: SELECT FELDNAME1, FELDNAME2 FROM TABELLE1 LEFT join TABELLE2 on KEY1 = KEY2 &#160; SELECT FIRMA, ANR FROM KDE LEFT join AUF on KDE.KNR = AUF.KNR …zeigt alle Kunden und [...]]]></description>
				<content:encoded><![CDATA[<p><span style="font-family: Arial;"><strong> (RIGHT JOIN oder LEFTJOIN)<br />
</strong></span></p>
<p><span style="font-family: Arial;">Dieser Abfragetyp wird verwendet wenn aus einer Tabelle alle Werte und aus der verknüpften Tabelle die dazu passenden Werte ausgebeben werden sollen:<span id="more-91"></span></span></p>
<p><span style="font-family: Arial;">SELECT FELDNAME1, FELDNAME2</span></p>
<p><span style="font-family: Arial;">FROM TABELLE1 LEFT join TABELLE2 on KEY1 = KEY2</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Arial;">SELECT FIRMA, ANR</span></p>
<p><span style="font-family: Arial;">FROM KDE LEFT join AUF on KDE.KNR = AUF.KNR<br />
</span></p>
<p><span style="font-family: Arial;">…zeigt alle Kunden und deren Auftragsnummern (falls vorhanden)<br />
</span></p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/abfragen-mit-outer-joins/&text=Abfragen mit OUTER JOINS" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/abfragen-mit-outer-joins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abfragen mit JOINS</title>
		<link>http://sql-training.de/2012/02/abfragen-mit-joins/</link>
		<comments>http://sql-training.de/2012/02/abfragen-mit-joins/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 09:01:15 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[SQL Grundlagen]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/02/abfragen-mit-joins/</guid>
		<description><![CDATA[Dieser Abfragetyp zeigt alle Werte aus beiden Tabellen, die in den Key-Feldern identische Werte besitzen. D.h. Kunden ohne Auftrag werden NICHT ausgegeben. SELECT FELDNAME1, FELDNAME2 FROM TABELLE1 JOIN TABELLE2 on KEY1 = KEY2 &#160; SELECT FIRMA, ANR FROM KDE JOIN AUF on KDE.KNR = AUF.KNR]]></description>
				<content:encoded><![CDATA[<p><span style="font-family: Arial;">Dieser Abfragetyp zeigt alle Werte aus beiden Tabellen, die in den Key-Feldern identische Werte besitzen. D.h. Kunden ohne Auftrag werden NICHT ausgegeben.<span id="more-90"></span><br />
</span></p>
<p><span style="font-family: Arial;">SELECT FELDNAME1, FELDNAME2<br />
</span></p>
<p><span style="font-family: Arial;">FROM TABELLE1 JOIN TABELLE2 on KEY1 = KEY2<br />
</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Arial;">SELECT FIRMA, ANR<br />
</span></p>
<p><span style="font-family: Arial;">FROM KDE JOIN AUF on KDE.KNR = AUF.KNR<br />
</span></p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/abfragen-mit-joins/&text=Abfragen mit JOINS" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/abfragen-mit-joins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Auswahl von Daten</title>
		<link>http://sql-training.de/2012/02/auswahl-von-daten/</link>
		<comments>http://sql-training.de/2012/02/auswahl-von-daten/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 08:56:07 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[Daten abfragen]]></category>
		<category><![CDATA[SQL Grundlagen]]></category>
		<category><![CDATA[Select]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/02/auswahl-von-daten/</guid>
		<description><![CDATA[Komplette Syntax der Select Anweisung SELECT DISTINCT TOP 10 FELDNAMEN as NEUER_NAME FROM TABELLEN …. WHERE BEDINGUNG GROUP BY FELDNAMEN HAVING GRUPPENBEDINGUNG ORDER BY FELDNAMEN (ASC oder DESC) &#160; Auswahlabfrage (einfache Variante) SELECT FELDNAMEN FROM TABELLENNAMEN WHERE Bedingung &#160; Beispiel SELECT * FROM Adressen WHERE Ort LIKE &#8216;München&#8217; &#160; Auswahl mit Sortierung SELECT Vorname, Lebensalter [...]]]></description>
				<content:encoded><![CDATA[<p><span style="font-family: Arial;"><strong>Komplette Syntax der Select Anweisung</strong></span></p>
<p><span style="font-family: Arial;">SELECT DISTINCT TOP 10 FELDNAMEN as NEUER_NAME</span></p>
<p><span style="font-family: Arial;">FROM TABELLEN ….</span></p>
<p><span style="font-family: Arial;">WHERE BEDINGUNG</span></p>
<p><span style="font-family: Arial;">GROUP BY FELDNAMEN</span></p>
<p><span style="font-family: Arial;">HAVING GRUPPENBEDINGUNG</span></p>
<p><span style="font-family: Arial;">ORDER BY FELDNAMEN (ASC oder DESC)<br />
</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Arial;"><strong>Auswahlabfrage (einfache Variante)</strong></span></p>
<p><span style="font-family: Arial;">SELECT FELDNAMEN</span></p>
<p><span style="font-family: Arial;">FROM TABELLENNAMEN</span></p>
<p><span style="font-family: Arial;">WHERE Bedingung</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Arial;"><strong>Beispiel</strong></span></p>
<p><span style="font-family: Arial;">SELECT * FROM Adressen WHERE Ort LIKE &#8216;München&#8217;</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Arial;"><strong>Auswahl mit Sortierung</strong></span></p>
<p><span style="font-family: Arial;">SELECT Vorname, Lebensalter</span></p>
<p><span style="font-family: Arial;">FROM Adressen</span></p>
<p><span style="font-family: Arial;">ORDER BY Lebensalter<br />
</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Arial;"><strong>Komplexe Abfragen mit Aggregatfunktionen</strong></span></p>
<p><span style="font-family: Arial;">SELECT FELDNAME1, SUM(FELDNAM2)</span></p>
<p><span style="font-family: Arial;">FROM TABELLENNAME</span></p>
<p><span style="font-family: Arial;">GROUP BY FELDNAME1</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Arial;"><strong>Beispiel:</strong></span></p>
<p><span style="font-family: Arial;">SELECT anr, sum(menge*vkp) as Umsatz</span></p>
<p><span style="font-family: Arial;">FROM pos</span></p>
<p><span style="font-family: Arial;">GROUP by anr</span></p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/auswahl-von-daten/&text=Auswahl von Daten" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/auswahl-von-daten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ändern von Datensätzen</title>
		<link>http://sql-training.de/2012/02/andern-von-datensatzen/</link>
		<comments>http://sql-training.de/2012/02/andern-von-datensatzen/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 08:51:43 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[SQL Grundlagen]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/02/andern-von-datensatzen/</guid>
		<description><![CDATA[Update TABELLENNAME SET FELDNAME = NEUER INHALT WHERE BEDINGUNG   Beispiel Update Adressen SET Vorname = &#8216;Sepp&#8217; WHERE Nachname = &#8216;Müller&#8217;]]></description>
				<content:encoded><![CDATA[<p><span style="font-family:Arial">Update TABELLENNAME<br />
</span></p>
<p><span style="font-family:Arial">SET FELDNAME = NEUER INHALT<br />
</span></p>
<p><span style="font-family:Arial">WHERE BEDINGUNG<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Arial"><strong>Beispiel<br />
</strong></span></p>
<p><span style="font-family:Arial">Update Adressen<br />
</span></p>
<p><span style="font-family:Arial">SET Vorname = &#8216;Sepp&#8217;<br />
</span></p>
<p><span style="font-family:Arial">WHERE Nachname = &#8216;Müller&#8217;<br />
</span></p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/andern-von-datensatzen/&text=Ändern von Datensätzen" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/andern-von-datensatzen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tabellenstruktur ändern</title>
		<link>http://sql-training.de/2012/02/tabellenstruktur-andern-feld-hinzufugen/</link>
		<comments>http://sql-training.de/2012/02/tabellenstruktur-andern-feld-hinzufugen/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 08:47:36 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[SQL Grundlagen]]></category>
		<category><![CDATA[Alter Table]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/02/tabellenstruktur-andern-feld-hinzufugen/</guid>
		<description><![CDATA[(Feld in bestehende Tabelle hinzufügen) ALTER TABLE TABELLENNAME ADD FELDNAME DATENTYP FELDGRÖSSE Beispiel alter table Adressen add Status int;]]></description>
				<content:encoded><![CDATA[<p><span style="font-family: Arial;">(Feld in bestehende Tabelle hinzufügen)</span></p>
<p><span style="font-family: Arial;">ALTER TABLE TABELLENNAME</span></p>
<p><span style="font-family: Arial;">ADD FELDNAME DATENTYP FELDGRÖSSE</span></p>
<p><span style="font-family: Arial;"><strong>Beispiel<br />
</strong></span></p>
<p><span style="font-family: Arial;">alter table Adressen</span></p>
<p><span style="font-family: Arial;">add Status int;<br />
</span></p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/tabellenstruktur-andern-feld-hinzufugen/&text=Tabellenstruktur ändern" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/tabellenstruktur-andern-feld-hinzufugen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Daten in eine Tabelle einfügen</title>
		<link>http://sql-training.de/2012/02/daten-in-eine-tabelle-einfugen/</link>
		<comments>http://sql-training.de/2012/02/daten-in-eine-tabelle-einfugen/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 08:46:52 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[SQL Grundlagen]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/02/daten-in-eine-tabelle-einfugen/</guid>
		<description><![CDATA[Insert Into TABELLENNAME (Tabelle muss bereits vorhanden sein) Values(Wert1, Wert2, Wert3 &#8230;&#8230;&#8230;..)   Beispiel INSERT INTO Adressen VALUES(1, &#8216;Hans&#8217;, &#8216;Meiser&#8217;, 55);]]></description>
				<content:encoded><![CDATA[<p><span style="font-family:Arial">Insert Into TABELLENNAME (Tabelle muss bereits vorhanden sein)<br />
</span></p>
<p><span style="font-family:Arial">Values(Wert1, Wert2, Wert3 &#8230;&#8230;&#8230;..)<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Arial"><strong>Beispiel<br />
</strong></span></p>
<p><span style="font-family:Arial">INSERT INTO Adressen<br />
</span></p>
<p><span style="font-family:Arial">VALUES(1, &#8216;Hans&#8217;, &#8216;Meiser&#8217;, 55);<br />
</span></p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/daten-in-eine-tabelle-einfugen/&text=Daten in eine Tabelle einfügen" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/daten-in-eine-tabelle-einfugen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Einen Index auf ein Feld erstellen</title>
		<link>http://sql-training.de/2012/02/einen-eindeutigen-index-auf-ein-feld-erstellen/</link>
		<comments>http://sql-training.de/2012/02/einen-eindeutigen-index-auf-ein-feld-erstellen/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 08:42:04 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[SQL Grundlagen]]></category>
		<category><![CDATA[Create Index]]></category>

		<guid isPermaLink="false">http://sql-training.de/2012/02/einen-eindeutigen-index-auf-ein-feld-erstellen/</guid>
		<description><![CDATA[(Beschleunigen von Such- und Sortiervorgängen) CREATE Index INDEXNAME on TABELLE (FELD) Beispiel CREATE INDEX FRANZ on Adressen(Nr);]]></description>
				<content:encoded><![CDATA[<p><span style="font-family: Arial;">(Beschleunigen von Such- und Sortiervorgängen)</span></p>
<p><span style="font-family: Arial;">CREATE Index INDEXNAME on TABELLE (FELD)</span></p>
<p><span style="font-family: Arial;"><strong>Beispiel</strong></span></p>
<p><span style="font-family: Arial;">CREATE INDEX FRANZ on Adressen(Nr);</span></p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/einen-eindeutigen-index-auf-ein-feld-erstellen/&text=Einen Index auf ein Feld erstellen" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/einen-eindeutigen-index-auf-ein-feld-erstellen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eine Tabelle löschen</title>
		<link>http://sql-training.de/2012/02/eine-tabelle-loschen/</link>
		<comments>http://sql-training.de/2012/02/eine-tabelle-loschen/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 15:29:08 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[Löschen]]></category>
		<category><![CDATA[SQL Grundlagen]]></category>
		<category><![CDATA[Drop Table]]></category>

		<guid isPermaLink="false">http://sql-training.de/?p=40</guid>
		<description><![CDATA[Eine Tabelle Löschen DROP TABLE TABELLENNAME Beispiel DROP TABLE Adressen;]]></description>
				<content:encoded><![CDATA[<p><strong>Eine Tabelle Löschen </strong></p>
<p>DROP TABLE TABELLENNAME</p>
<p><strong>Beispiel </strong></p>
<p>DROP TABLE Adressen;</p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/eine-tabelle-loschen/&text=Eine Tabelle löschen" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/eine-tabelle-loschen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eine Tabelle erstellen</title>
		<link>http://sql-training.de/2012/02/eine-tabelle-erstellen/</link>
		<comments>http://sql-training.de/2012/02/eine-tabelle-erstellen/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 15:05:33 +0000</pubDate>
		<dc:creator>ms</dc:creator>
				<category><![CDATA[SQL Grundlagen]]></category>
		<category><![CDATA[Tabellen erstellen]]></category>
		<category><![CDATA[Create Table]]></category>
		<category><![CDATA[Primärschlüssel]]></category>
		<category><![CDATA[Tabelle erstellen]]></category>

		<guid isPermaLink="false">http://sql-training.de/?p=29</guid>
		<description><![CDATA[Eine Tabelle erstellen CREATE TABLE TABELLENNAME (FELD 1 DATENTYP, FELD 2 DATENTYP&#8230;&#8230;&#8230;..) Beispiel CREATE TABLE Adressen (Nr int, Vorname varchar(25), Name varchar(25), Lebensalter int); mit Primärschlüssel CREATE TABLE Adressen (Nr int, Vorname varchar(25), Name varchar(25), Lebensalter int, PRIMARY KEY (Nr));]]></description>
				<content:encoded><![CDATA[<p><strong>Eine Tabelle erstellen </strong></p>
<p>CREATE TABLE TABELLENNAME</p>
<p>(FELD 1 DATENTYP, FELD 2 DATENTYP&#8230;&#8230;&#8230;..)</p>
<p><strong>Beispiel </strong></p>
<p>CREATE TABLE Adressen</p>
<p>(Nr int, Vorname varchar(25), Name varchar(25), Lebensalter int);</p>
<p><strong>mit Primärschlüssel </strong></p>
<p>CREATE TABLE Adressen</p>
<p>(Nr int, Vorname varchar(25), Name varchar(25), Lebensalter int, <strong>PRIMARY KEY </strong>(Nr));</p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/eine-tabelle-erstellen/&text=Eine Tabelle erstellen " target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/eine-tabelle-erstellen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Training</title>
		<link>http://sql-training.de/2012/02/sql-trainining/</link>
		<comments>http://sql-training.de/2012/02/sql-trainining/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 19:14:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Reporting Service]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://sql-training.de/?p=4</guid>
		<description><![CDATA[SQL ist eine einfach zu erlernende Abfragesprache für relationale Datenbanken, wie z.B. den Microsoft SQL Server oder MySQL. Dabei ist die Sprache SQL weitgehend plattformunabhängig. Die Sprache läßt sich somit unter Windows, Linux und auch vielen Mainframe oder Midrange Systemen wie einer AS/400 einsetzen um Datenbanken zu erstellen oder Daten aus diesen abzufragen. Jeder Hersteller [...]]]></description>
				<content:encoded><![CDATA[<p>SQL ist eine einfach zu erlernende Abfragesprache für relationale Datenbanken, wie z.B. den Microsoft SQL Server oder MySQL. Dabei ist die Sprache SQL weitgehend plattformunabhängig. Die Sprache läßt sich somit unter Windows, Linux und auch vielen Mainframe oder Midrange Systemen wie einer AS/400 einsetzen um Datenbanken zu erstellen oder Daten aus diesen abzufragen. Jeder Hersteller von Relationalen Datenbanken optimiert die Sprache um eigene spezielle Befehle oder Routinen. Diese Weiterentwicklungen weichen durch ihre Syntax oft vom SQL Standard ab. Grundsätzlich sind die Sprachen aber ähnlich und die herstellerspezifische Syntax schnell erlernbar.</p>
<p>Vorteilhaft für das schnelle Erlernen ist es natürlich, wenn man das Konzept der relationalen Datenbank verstanden hat. Es folgt einigen einfachen Grundregeln:</p>
<ul>
<li>Daten werden in Tabellen gespeichert</li>
<li>Tabellen in Zeilen und Spalten eingeteilt.</li>
<li>Zeilen entsprechen den Datensätzen.</li>
<li>Spalten entsprechen den Datenfeldern</li>
<li>Zwischen den Tabellen können Beziehungen eingerichtet werden.</li>
<li>Die Daten werden redundanzfrei (ohne Duplikate) gespeichert.</li>
<li>Mit Auswahlausdrücken kann auf die Daten zugegriffen werden.</li>
</ul>
<p>&nbsp;</p>
<div class="twttr_button">
					<a href="http://twitter.com/share?url=http://sql-training.de/2012/02/sql-trainining/&text=SQL Training" target="_blank" title="Click here if you like this article.">
						<img src="http://sql-training.de/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
					</a>
				</div>]]></content:encoded>
			<wfw:commentRss>http://sql-training.de/2012/02/sql-trainining/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
