HTTP Web-Sniffer 1.0.36 by Lingo4you - Sprachen Online Lernen

View HTTP Request and Response Header

For more information on HTTP see RFC 2616

HTTP(S)-URL: (IDN allowed)

HTTP version:

• Request type:

HTTP Request Header

Connect to 130.242.128.19 on port 80 ... ok

POST /servertekniker/sql/index.php HTTP/1.1[CRLF]
Host: internet.physto.se[CRLF]
Connection: close[CRLF]
Accept-Encoding: gzip[CRLF]
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7[CRLF]
Cache-Control: no[CRLF]
Accept-Language: de,en;q=0.7,en-us;q=0.3[CRLF]
Referer: http://web-sniffer.net/[CRLF]
Content-type: application/x-www-form-urlencoded[CRLF]
Content-length: 0[CRLF]
[CRLF]

HTTP Response Header

NameValueDelim
Status: HTTP/1.1 200 OK
Date:Thu, 02 Sep 2010 14:47:12 GMT
Server:Apache/2.2.8 (Unix) mod_ssl/2.2.8 OpenSSL/0.9.8g mod_python/3.3.1 Python/2.4.5 DAV/2 PHP/5.2.5
X-Powered-By:PHP/5.2.5
Set-Cookie:CSSpreferens=3ueagejsjtqvh62bf28necnno3; path=/
Connection:close
Transfer-Encoding:chunked
Content-Type:text/html

Content (35.37 KiB)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html lang="sv">

  <head>

    <!-- mime-typ och character set, html/xhtml -->
    <meta http-equiv='content-type' content='text/html; charset=utf-8'>

    <!-- dokumenttitel -->
    <title>Fysikums webb- och mediakurser - Databasspr&aring;ket SQL</title>

    <!-- kontroll av sökrobotar -->
    <meta name='robots' content='index,follow'>

    <!-- mime-typer för stilmallar och javascript -->
    <meta http-equiv='content-style-type' content='text/css'>
    <meta http-equiv='content-script-type' content='text/javascript'>

    <!-- chache-kontroll -->
    <meta http-equiv='pragma' content='no-cache'>
    <meta http-equiv='cache-control' content='no-cache, must-revalidate'>
    <meta http-equiv='expires' content='0'>

    <!-- kontaktinformation -->
    <meta name='author' content='Hans Mühlen, Fysikum, Stockholms universitet'>
    <meta name='contact_addr' content='hans pkt muhlen snabela physto pkt se'>
    <meta name='copyright' content='Copyright (c) 1995-2010 Hans Mühlen'>

    <!-- skapelse- och revisionsdatum -->
    <meta name='date-revision-yyyymmdd' content='20070522'>

    <!-- förhindra internet explorer att lägga nedladdningsikoner över bilder -->
    <meta http-equiv='imagetoolbar' content='no'>

    <!-- adressikon -->
    <link rel='shortcut icon' href='../../pic/favicon16x16.png'>

    <!-- sidreferenser -->
    <link rel='alternate' media='print' href='/servertekniker/sql/index.php?p=1'>

    <!-- hjälp till sökrobotar -->
    <meta name='keywords' content='fysikum, stockholms universitet, albanova, nät, nätverk, digitala media, media, web, webb, webpublicering, webbpublicering, kurs, datorkurs, programmering, webbprogrammering, webprogrammering, webb- och databasprogrammering, databasprogrammering, informationsteknik, grafisk design, koda, handkoda, publicera, hemsida, webbsida, webbutveckling, databas, databaser, html, php, sql, css, stilmall, stilmallar, http, relationsdatabas, apache, php-tolk, mysql, dreamweaver, photoshop, flash, klient, server, tabell, länk, formulär, internet, filer, filhantering, grafik, '>
    <meta name='description' content='Fysikums webb- och mediakurser.'>

    <!-- stilmallar -->
    <!--[if !IE]>-->
    <link type='text/css' rel='stylesheet' media='screen' href='../../_css/css-stilval.css'>
    <!--<![endif]-->
    <link type='text/css' rel='stylesheet' media='screen' href='../../_css/css-fontfamily-trebuchet.css'>
    <!--[if !IE]>-->
    <link type='text/css' rel='stylesheet' media='screen' href='../../_css/css-selectstyle-plain.css' title='Stilmall &quot;plain&quot;'>
    <!--<![endif]-->
    <link type='text/css' rel='stylesheet' media='print' href='../../_css/inc-colors.css'>
    <link type='text/css' rel='stylesheet' media='print' href='../../_css/inc-gemensamt.css'>
    <link type='text/css' rel='stylesheet' media='print' href='../../_css/inc-fontsize-print.css'>
    <link type='text/css' rel='stylesheet' media='print' href='../../_css/css-fontfamily-verdana.css'>
    <link type='text/css' rel='stylesheet' media='print' href='../../_css/css-selectstyle-print.css'>
    <!--[if IE]><link type='text/css' rel='stylesheet' media='screen' href='../../_css/css-selectstyle-msie.css'><![endif]-->

    <!-- javascript -->
    <script type='text/javascript' src='../../_js/js-mmreloadpage.js'></script>
    <script type='text/javascript' src='../../_js/js-framekiller.js'></script>
    <script type='text/javascript' src='../../_js/js-jump.js'></script>
    <script type='text/javascript' src='../../_js/js-favelets.js'></script>
    <script type='text/javascript' src='../../_js/js-viewport.js'></script>

    <!-- google analytics -->
    <script type='text/javascript'>
      var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
      document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
    </script>
    <script type='text/javascript'>
      var pageTracker = _gat._getTracker("UA-3966006-1");
      pageTracker._initData();
      pageTracker._trackPageview();
    </script>

  </head>



  <body>

    <div id='block-container'>

    <div id='skiptocontent' class='flik'><p><a href='#pagecontent'>G&aring; direkt till inneh&aring;llet</a></p></div>

      <div id='block-banner' class='artikel wp'>
        <h1><a href='../../'>FYSIKUMS WEBB- OCH MEDIAKURSER</a></h1>
      </div> <!-- block-banner -->

      <div id='block-navigation'>

        <p class='hidden'>S&ouml;kv&auml;g f&ouml;r denna sida inom webbplatsen:</p>
        <ul id='crumb'>
          <li class='root'>
            <span><a href='../../index.php'>hem</a></span>
            <div>
              <p><a href='../../kursinfo/digitalamedia/index.php'><strong>WEBBDESIGN&nbsp;OCH&nbsp;DIGITALA&nbsp;MEDIA</strong></a></p>
              <p><a href='../../kursinfo/webbprogrammering/index.php'><strong>WEBB-&nbsp;OCH&nbsp;DATABASPROGRAMMERING</strong></a></p>
              <p><a href='../../serverprogram/index.php'><strong>Program&nbsp;p&aring;&nbsp;serversidan</strong></a></p>
              <p><a href='../../utvecklingsprogram/index.php'><strong>Program&nbsp;p&aring;&nbsp;utvecklingsdatorn</strong></a></p>
              <p><a href='../../media/index.php'><strong>Digitala&nbsp;media</strong></a></p>
              <p><a href='../../externa_enheter/index.php'><strong>Arbeta&nbsp;med&nbsp;externa&nbsp;enheter</strong></a></p>
              <p><a href='../../filhantering/index.php'><strong>Filhantering</strong></a></p>
              <p><a href='../../internet/index.php'><strong>Om&nbsp;internet</strong></a></p>
              <p><a href='../../webbplatser/index.php'><strong>Skapa&nbsp;webbplatser</strong></a></p>
              <p><a href='../../webbapplikationer/index.php'><strong>Webbapplikationer</strong></a></p>
              <p><a href='../../servertekniker/index.php'><strong>Tekniker&nbsp;p&aring;&nbsp;serversidan</strong></a></p>
              <p><a href='../../klienttekniker/index.php'><strong>Tekniker&nbsp;p&aring;&nbsp;klientsidan</strong></a></p>
              <p><a href='../../webbsidor/index.php'><strong>Komponenter&nbsp;i&nbsp;webbsidor</strong></a></p>
              <p><a href='../../oh/index.php'><strong>F&ouml;rel&auml;sningsanteckningar</strong></a></p>
              <p><a href='../../resurser/index.php'><strong>Resurser</strong></a></p>
              <p><a href='../../kursinfo/index.php'><strong>Kursinformation</strong></a></p>
            </div>
          </li>
          <li class='grupp'>
            <span><a href='../../servertekniker/index.php'>serversidestekniker</a></span>
            <div>
              <p><a href='../../servertekniker/cgi/index.php'><strong>cgi</strong></a></p>
              <p><a href='../../servertekniker/http/index.php'><strong>http</strong></a></p>
              <p><a href='../../servertekniker/perl/index.php'><strong>perl</strong></a></p>
              <p><a href='../../servertekniker/php/index.php'><strong>php</strong></a></p>
              <p><a href='../../servertekniker/sql/index.php'><strong>sql</strong></a></p>
              <p><a href='../../servertekniker/ssi/index.php'><strong>ssi</strong></a></p>
            </div>
          </li>
          <li class='artikel'>
            <span>sql</span>
            <div>
              <p><a href='../../servertekniker/sql/databasunderhall/index.php'><strong>databasunderh&aring;ll</strong></a></p>
              <p><a href='../../servertekniker/sql/datadefinition_index/index.php'><strong>index&nbsp;f&ouml;r&nbsp;tabeller</strong></a></p>
              <p><a href='../../servertekniker/sql/datamanipulering_insert/index.php'><strong>infoga&nbsp;och&nbsp;uppdatera</strong></a></p>
              <p><a href='../../servertekniker/sql/inledning/index.php'><strong>inledning</strong></a></p>
              <p><a href='../../servertekniker/sql/lagrade_procedurer/index.php'><strong>lagrade&nbsp;procedurer</strong></a></p>
              <p><a href='../../servertekniker/sql/lasmer/index.php'><strong>lasmer</strong></a></p>
              <p><a href='../../servertekniker/sql/datamanipulering_select/index.php'><strong>s&ouml;k&nbsp;i&nbsp;data</strong></a></p>
              <p><a href='../../servertekniker/sql/databasadministration_user/index.php'><strong>skapa&nbsp;anv&auml;ndare</strong></a></p>
              <p><a href='../../servertekniker/sql/databasadministration_create/index.php'><strong>skapa&nbsp;databaser</strong></a></p>
              <p><a href='../../servertekniker/sql/datadefinition_create/index.php'><strong>skapa&nbsp;tabeller</strong></a></p>
              <p><a href='../../servertekniker/sql/spraket/index.php'><strong>spr&aring;ket&nbsp;sql</strong></a></p>
              <p><a href='../../servertekniker/sql/datamanipulering_join/index.php'><strong>tabellkopplingar</strong></a></p>
              <p><a href='../../servertekniker/sql/transaktioner/index.php'><strong>transaktioner</strong></a></p>
              <p><a href='../../servertekniker/sql/triggers/index.php'><strong>triggers</strong></a></p>
              <p><a href='../../servertekniker/sql/vyer/index.php'><strong>vyer</strong></a></p>
            </div>
          </li>
        </ul>

      </div> <!-- block-navigation -->

      <div id='block-main'>

        <hr class='hidden'>

        <div id='pagehead'>

          <div id='headline'>
            <h3 class='artikel'>DATABASSPR&Aring;KET SQL</h3>
            <p>URL:&nbsp;<a href='../..' class='underline'>internet.physto.se</a></p>
          </div> <!-- headline -->

          <div id='menu'>
            <p>I&nbsp;denna&nbsp;artikel:</p>
            <div class='menu-vansterspalt'>
              <p>1.&nbsp;<em>SQL&nbsp;-&nbsp;n&aring;gra&nbsp;inledande&nbsp;exempel</em></p>
              <p>2.&nbsp;<strong><a href='spraket/index.php'>Spr&aring;ket&nbsp;SQL</a></strong></p>
              <p>3.&nbsp;<strong><a href='databasadministration_create/index.php'>Databasadministration:&nbsp;skapa&nbsp;databaser</a></strong></p>
              <p>4.&nbsp;<strong><a href='databasadministration_user/index.php'>Databasadministration:&nbsp;skapa&nbsp;anv&auml;ndare</a></strong></p>
              <p>5.&nbsp;<strong><a href='datadefinition_create/index.php'>Datadefinition:&nbsp;skapa&nbsp;tabeller</a></strong></p>
              <p>6.&nbsp;<strong><a href='datadefinition_index/index.php'>Datadefinition:&nbsp;index&nbsp;f&ouml;r&nbsp;tabeller</a></strong></p>
              <p>7.&nbsp;<strong><a href='datamanipulering_insert/index.php'>Datamanipulering:&nbsp;infoga&nbsp;och&nbsp;uppdatera&nbsp;data</a></strong></p>
              <p>8.&nbsp;<strong><a href='datamanipulering_select/index.php'>Datamanipulering:&nbsp;s&ouml;k&nbsp;i&nbsp;data</a></strong></p>
            </div>
            <div class='menu-hogerspalt'>
              <p>9.&nbsp;<strong><a href='datamanipulering_join/index.php'>Datamanipulering:&nbsp;tabellkopplingar</a></strong></p>
              <p>10.&nbsp;<em>Databasunderh&aring;ll</em></p>
              <p>11.&nbsp;<em>Transaktioner</em></p>
              <p>12.&nbsp;<em>Vyer</em></p>
              <p>13.&nbsp;<em>Lagrade&nbsp;procedurer</em></p>
              <p>14.&nbsp;<em>Triggers</em></p>
              <p>15.&nbsp;<em>L&auml;s&nbsp;mer&nbsp;om&nbsp;SQL</em></p>
            </div>
            <div class='ruta-avsluta-spalter'></div>
          </div> <!-- menu -->

          <div id='preamble'>
            <p>SQL-koden i exemplena i detta kapitel &auml;r den som st&ouml;ds av &quot;<strong>MySQL v. 5.1</strong>&quot;.</p>
          </div> <!-- preamble -->

        </div> <!-- pagehead -->

        <hr class='hidden'>

        <div id='pagecontent'>

          <div class='artikel'>

<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->

<div class='sektion'> <!-- - - - - - - - - - - - - - - - - - - - - -->

<h4>SQL &auml;r ett databasfr&aring;gespr&aring;k</h4>

<p><b>SQL &auml;r inte ett programmeringsspr&aring;k</b>. Det &auml;r ett kodspr&aring;k vi anv&auml;nder f&ouml;r att <b>ge instruktioner till databasservrar</b> om uppdrag vi vill f&aring; utf&ouml;rda, t.ex att skapa eller radera en tabell, infoga eller redigera poster eller g&ouml;ra uts&ouml;kningar av delm&auml;ngder av data som uppfyller vissa krav. Exakt hur databasservern g&ouml;r f&ouml;r att &aring;stadkomma detta bryr vi oss inte om. T.ex beh&ouml;ver vi inte v&auml;lja precis vilken s&ouml;kalgoritm som ska anv&auml;ndas vid s&ouml;kning eller hur data rent fysiskt ligger lagrade och g&ouml;rs tillg&auml;ngliga p&aring; serverdatorn - alla dessa beslut tas av databasservern.</p>

<p>En SQL-sats beskriver allts&aring; bara i ganska allm&auml;nna ordalag, ofta mer eller mindre i klartext p&aring; engelska, vad som ska g&ouml;ras.  H&auml;r &auml;r ett kodexempel, en instruktiuon till databasservern att s&ouml;ka ut (eller v&auml;lja ut, eng. <i>select</i>) f&ouml;r- och efternamn om en kund med kundnummer&nbsp;1234. Kundinformationen ligger lagrad i en databastabell med namn <span class='db-table'>kunder</span>, och informationen om varje kund &auml;r specificerad i (&aring;tminstone) tre f&auml;lt <span class='db-field'>fnamn</span>, <span class='db-field'>enamn</span> och&nbsp;<span class='db-field'>kundnr</span>.</p>

<!--div class='ruta koddefinition'-->

<div class='ruta kommandorad'>
<b>SELECT fnamn,enamn FROM kunder</b>
<b>WHERE kundnr='1234'</b>
</div> <!-- ruta -->

<p>Men man f&aring;r inte l&aring;ta sig luras av det till synes informella skrivs&auml;ttet: i sj&auml;lva verket m&aring;ste SQL-satser, precis som f&ouml;r alla kodspr&aring;k, formuleras enligt strikta regler som styr syntaxen f&ouml;r satserna och begr&auml;nsar formen p&aring; tabellnamn och andra parametrar databasutvecklaren sj&auml;lv f&aring;r&nbsp;v&auml;lja.</p>

</div> <!-- sektion -->






<div class='sektion'> <!-- - - - - - - - - - - - - - - - - - - - - -->

<h4>SQL &auml;r ett deklarativt spr&aring;k</h4>

<p>Just satsen <code>SELECT</code> i exemplet ovan ska f&aring; databasservern att s&ouml;ka ut den delm&auml;ngd av de data som finns lagrade i databasen som uppfyller vissa villkor. Satsen beskriver <i>vad</i> vi vill f&aring; uts&ouml;kt, men exakt <i>hur</i> s&ouml;kningen ska g&ouml;ras beh&ouml;ver vi som skickas SQL-kod till servern inte bry oss om. Det finns en l&aring;ng rad olika algoritmer f&ouml;r hur man g&ouml;r effektiva och snabba s&ouml;kningar, och det &auml;r upp till konstrukt&ouml;rerna av databasserverprogramvaran att v&auml;lja den algoritm som passar b&auml;st. Vi SQL-kodare beh&ouml;ver d&auml;remot inte ha en doktorsexamen i numeriska metoder, det r&auml;cker att vi kan formulera l&auml;mpliga SQL-satser.</p>

<p>P&aring; detta s&auml;tt skiljer sig SQL fr&aring;n programmeringsspr&aring;k som <i>Pascal</i>, <i>c/c++</i> och <i>Java</i>, och fr&aring;n webbskriptspr&aring;k som <i>PHP</i> och <i>ASP</i>. I dessa spr&aring;k m&aring;ste man koda exakt hur en viss uppgift ska genomf&ouml;ras, t.ex varje enskilt steg i&nbsp;en&nbsp;s&ouml;kalgoritm.</p>

<p>En vanlig term f&ouml;r programmeringsspr&aring;kens explicita s&auml;tt att beskriva en process &auml;r att s&auml;ga att de &auml;r <b>procedurella spr&aring;k</b> (eng. <i>procedural language</i>). Databasspr&aring;ket SQL, som bara ger order om att n&aring;got ska ske, inte hur det ska g&ouml;ras, &auml;r ett av flera <b>deklarativa spr&aring;k</b> (eng. <i>declarative language</i>).</p>

</div> <!-- sektion -->






<div class='sektion'> <!-- - - - - - - - - - - - - - - - - - - - - -->

<h4>SQL anv&auml;nds f&ouml;r att skapa, manipulera och s&ouml;ka i databaser</h4>

<p>S&ouml;kning i befintliga data &auml;r bara en av de saker man kan f&aring; gjort med SQL. F&ouml;rst m&aring;ste man f&ouml;rst&aring;s kunna skapa de strukturer (databaser, tabeller) som ska lagra data, sen ska man fylla p&aring; databasen med data och ha m&ouml;jligheter att g&ouml;ra &auml;ndringar. Slutligen finns en del administrativa sysslor som databasansvarige m&aring;ste g&ouml;ra d&aring; och d&aring;, t.ex skapa databasanv&auml;ndare, reparera skadade tabeller och g&ouml;ra backuper.</p>

<p>F&ouml;r alla dessa g&ouml;rom&aring;l finns speciella SQL-satser. Man brukar traditionellt dela upp dem i ett antal kategorier (databasadministration, datadefinition, datamanipulering och databasunderh&aring;ll). Jag f&ouml;ljer denna klassificering i mina genomg&aring;ngar av SQL i kommande kapitel.</p>

<!--ul>
  <li><a href='../../servertekniker/sql/databasadministration/index.php' >SQL-satser f&ouml;r databasadministration</a></li>
  <li><a href='../../servertekniker/sql/datadefinition_create/index.php' >SQL-satser f&ouml;r datadefinition: skapa tabeller</a></li>
  <li><a href='../../servertekniker/sql/datadefinition_index/index.php' >SQL-satser f&ouml;r datadefinition: tabellindex</a></li>
  <li><a href='../../servertekniker/sql/datamanipulering_insert/index.php' >SQL-satser f&ouml;r datamanipulering: infoga data</a></li>
  <li><a href='../../servertekniker/sql/datamanipulering_select/index.php' >SQL-satser f&ouml;r datamanipulering: s&ouml;k i data</a></li>
  <li><a href='../../servertekniker/sql/databasunderhall/index.php' >SQL-satser f&ouml;r databasunderh&aring;ll</a></li>
</ul-->

</div> <!-- sektion -->






<div class='sektion'> <!-- - - - - - - - - - - - - - - - - - - - - -->

<h4>SQL anv&auml;nds med relationsdatabaser</h4>

<p>Det har under &aring;rtionden utvecklats en rad olika tekniker f&ouml;r hur databaser ska byggas upp och manipuleras. Den i dag utan j&auml;mf&ouml;relse vanligaste typen av databassystem &auml;r de s.k. <b>relationsdatabaserna</b>. Det program <i>MySQL</i> som anv&auml;nds i Fysikums kurs &auml;r av denna typ. Den fullst&auml;ndiga termen &auml;r <i>relationsdatabashanterare</i>, p&aring; engelska <i>Relational Database Management Systems</i>, f&ouml;rkortat <b>RDBMS</b>.</p>

<p>Databasspr&aring;ket SQL utvecklades specifikt f&ouml;r att passa just relationsdatabasernas s&auml;tt att arbeta och lagra data. Om ditt databasprogram f&ouml;rst&aring;r SQL &auml;r det allts&aring; h&ouml;gst sannolikt en relationsdatabas, och vice versa.</p>

</div> <!-- sektion -->






<div class='sektion'> <!-- - - - - - - - - - - - - - - - - - - - - -->

<h4>Databasklienter skickar SQL-satser till en databasserver</h4>

<p>De flesta relationsdabassystem &auml;r uppbyggda enligt den i datorsammanhang vanliga modellen <i>klient/server</i>. Systemet best&aring;r allts&aring; inte av bara ett enda program, utan man anv&auml;nder olika programkomponenter f&ouml;r olika &auml;ndam&aring;l.</p>

<p>Det centrala programmet &auml;r <b>databas<i>servern</i></b> som ansvarar f&ouml;r sj&auml;lva datalagringen, alla ber&auml;kningar och manipuleringar av data. Databasservrar k&ouml;rs vanligtvis p&aring; s&auml;rskilda serverdatorer, p&aring; samma s&auml;tt som f&ouml;r webbservrar och andra serverprogram.</p>

<p>Vi som anv&auml;nder databasen k&ouml;r d&auml;remot en <b>databas<i>klient</i></b>. I klienten ger vi instruktioner om vad vi vill f&aring;r utf&ouml;rt, t.ex en databass&ouml;kning. Beroende p&aring; hur klienten &auml;r designad kan vi antingen skriva SQL-satser i klartext, eller s&aring; anv&auml;nder vi n&aring;gonslags grafiskt gr&auml;nssnitt och l&aring;ter klientprogrammet &ouml;vers&auml;tta v&aring;ra inmatningar till SQL-satser. Klientprogrammet k&ouml;r vi typiskt p&aring; v&aring;r egen arbetsdator. En del databasklienter (t.ex <span class='program'>phpMyAdmin</span> som omn&auml;mns i Fysikums kurs) &auml;r webbapplikationer som k&ouml;rs i en webbl&auml;sare.</p>

<p>Databasklienterna kopplar sig sedan upp mot databasservern via ett n&auml;tverk (t.ex Internet) och skickar &ouml;ver SQL-satserna till servern f&ouml;r bearbetning. Servern skickar efter fullgjort v&auml;rv tillbaka det &ouml;nskade resultatet till klienten, d&auml;r det presenteras f&ouml;r oss.</p>

<p>Om vi fokuserar p&aring; spr&aring;ket SQL i denna process ser vi att <b>databasservern &auml;r en SQL-tolk</b>, d.v.s ett program som l&auml;ser och utf&ouml;r instruktioner skrivna i spr&aring;ket SQL. Databasklienten &auml;r bara till f&ouml;r att formulera och vidarebefordra SQL-koden, inte f&ouml;r att tolka den.</p>

</div> <!-- sektion -->










<div class='sektion'> <!-- - - - - - - - - - - - - - - - - - - - - -->

<h4>SQL finns i ett antal standarder och dialekter</h4>

<p>Spr&aring;ket SQL skapades omkring&nbsp;1975 som ett led i forskningen kring relationsdatabastekniken av f&ouml;retaget&nbsp;IBM, som l&auml;nge varit stora p&aring; databasprogramvara. Det f&ouml;rsta kommersiella databassystemet som byggde p&aring; SQL lanserades av Oracle&nbsp;1979. I dag &auml;r det <b>det utan j&auml;mf&ouml;rselse mest popul&auml;ra spr&aring;ket f&ouml;r arbete med databaser</b>.</p>

<p>Spr&aring;ket SQL har utvecklats en hel del sen sin tillkomst f&ouml;r ett kvartssekel sedan. Precis som f&ouml;r de flesta kodspr&aring;k man kommer i kontakt med i programvaru- och webbsammanhang b&ouml;r man f&ouml;r SQL noga skilja p&aring; tv&aring; utvecklingsgrenar, dels <b>den formella SQL-standarden</b> och dels de <b>reellt existerande dialekterna av SQL i olika databasprogramvaror</b>.</p>

<p>Standardiseringen ombes&ouml;rjs sedan mitten av 1980-talet av standardiseringsorganisationerna ISO (i Europa) och ANSI (i&nbsp;USA). Tidigare versioner av standarden har varit  ANSI/ISO SQL:1992 (&auml;ven kallat&nbsp;SQL-92) och ANSI/ISO SQL:1999 (&auml;ven kallat&nbsp;SQL-99). Aktuell version&nbsp;(h&ouml;sten 2006) &auml;r <b>ANSI/ISO&nbsp;SQL:2003</b>.</p>

<p>N&auml;r ett programvaruf&ouml;retag, som t.ex MySQL AB, tar fram en databasprodukt brukar de ofta vara inbilska nog att inte f&ouml;lja g&auml;llande SQL-standard till punkt och pricka. De kanske v&auml;ljer att utel&auml;mna en del av standardens funktionalitet, och vill kanske introducera egenkonstuerade SQL-satser som inte ing&aring;r i standarden. Ju st&ouml;rre avvikelserna fr&aring;n standarden &auml;r, desto sv&aring;rare blir det f&ouml;r en databasutvecklare att skriva SQL-kod som utan st&ouml;rre problem kan flyttas mellan olika databasprogramvaror.<!-- - och det ligger naturligtvis i databastillverkarnas intresse att f&ouml;rhindra att kunder smiter iv&auml;g till konkurrenternas program. Men p&aring; det stora hela taget &auml;r de olika SQL-dialekterna tillr&auml;ckligt snarlika f&ouml;r att man ska kunna f&ouml;rst&aring; varianterna om man har l&auml;rt sig en av dialekterna, t.ex MySQL:s dialekt, ordentligt.--></p>

<p>MySQL version&nbsp;4.0 bygger p&aring; den n&aring;got &auml;ldre standarden&nbsp;SQL-92 medan <b>MySQL version&nbsp;4.1 och version&nbsp;5.0 ligger mycket n&auml;ra standarden SQL:2003</b>. Det finns dock <b>en l&aring;ng rad egna utvidgningar, funktioner som MySQL har som inte finns i standarden</b> (jag f&ouml;rs&ouml;kt markera dessa utvidgningar tydligt i&nbsp;mina genomg&aring;ngar). Utvidgningarna kan man ju f&ouml;rs&ouml;ka undvika om man vill ha kod som smidigt ska kunna flyttas till andra databasmilj&ouml;er. V&auml;rre &auml;r det med de <b>inskr&auml;nkningar j&auml;mf&ouml;rt med standarden</b> som finns i&nbsp;MySQL:s dialekt av SQL. En del av dessa tillkortakommanden har varit f&ouml;rem&aring;l f&ouml;r stark kritik fr&aring;n anv&auml;ndare av MySQL, och har l&auml;nge utgjort ett hinder f&ouml;r MySQL att bli popul&auml;rt i stora f&ouml;retag med h&ouml;ga krav p&aring; databasprogramvara. S&auml;rskilt kritiserat var att version&nbsp;4.0 saknade s.k.&nbsp;transaktioner. MySQL-tillverkarna har f&ouml;rs&ouml;kt r&auml;tta en del av dessa brister i&nbsp;version&nbsp;MySQL&nbsp;4.1, och med MySQL&nbsp;5.0 anstr&auml;nger man sig f&ouml;r att komma mycket l&aring;ngt i att f&aring; MySQL i samklang med den officiella standarden SQL:2003.</p>

</div> <!-- sektion -->









<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->

          </div> <!-- artikel -->

        </div> <!-- pagecontent -->

        <p id='sequor'><a href='inledning/index.php'>FORTS&Auml;TT</a></p>

        <hr class='hidden'>

      </div> <!-- block-main -->

      <div id='block-colophon'>

        <form method='post' action='#block-container' class='sitequicklinks'>
          <div>
            <h3 class='hidden'><label for='select'>SNABBNAVIGERING</label></h3>
            <select name='select' id='select' onchange='jump(this)'> 
              <option selected='selected'>G&aring; till...</option>
              <option class='sitequicklinks-rubrik' value='../../kursinfo/kursmaterial/index.php'>KURSMATERIAL ONLINE</option>
              <option value='../../serverprogram/index.php'>Program p&aring; serversidan</option>
              <option value='../../utvecklingsprogram/index.php'>Program p&aring; utvecklingsdatorn</option>
              <option value='../../media/index.php'>Digitala media</option>
              <option value='../../externa_enheter/index.php'>Arbeta med externa enheter</option>
              <option value='../../filhantering/index.php'>Filhantering</option>
              <option value='../../internet/index.php'>Om internet</option>
              <option value='../../webbplatser/index.php'>Skapa webbplatser</option>
              <option value='../../webbapplikationer/index.php'>Webbapplikationer</option>
              <option value='../../servertekniker/index.php'>Tekniker p&aring; serversidan</option>
              <option value='../../klienttekniker/index.php'>Tekniker p&aring; klientsidan</option>
              <option value='../../webbsidor/index.php'>Komponenter i webbsidor</option>
              <option class='sitequicklinks-rubrik' value='../../oh/index.php'>F&Ouml;REL&Auml;SNINGSANTECKNINGAR</option>
              <option class='sitequicklinks-rubrik' value='../../resurser/index.php'>RESURSER</option>
              <option class='sitequicklinks-rubrik' value='../../kursinfo/index.php'>KURSINFORMATION</option>
              <option value='../../kursinfo/digitalamedia/index.php'>Webbpublicering och digatala media</option>
              <option value='../../kursinfo/webbprogrammering/index.php'>Webb- och databasprogrammering</option>
              <option value='../../kursinfo/inforkursen/index.php'>Inf&ouml;r kursen</option>
              <option value='../../kursinfo/kursmaterial/index.php'>Kursmaterial online</option>
              <option value='../../kursinfo/studentkonton/index.php'>Studentkonton</option>
            </select>
          </div>
        </form> <!-- sitequicklinks -->

        <hr class='hidden'>
        <div id='favelets'>
          <h3 class='hidden'>FAVELETS</h3>
          <dl>
            <dt>kodvalidering:</dt>
            <dd><ul>
              <li><a href='http://validator.w3.org/check?uri=http%3A%2F%2Finternet.physto.se%2Fservertekniker%2Fsql%2Findex.php&amp;verbose=1'>x/html</a></li>
              <li><a href='http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Finternet.physto.se%2Fservertekniker%2Fsql%2Findex.php&amp;warning=0&amp;profile=css21&amp;usermedium=all'>css</a></li>
            </ul></dd>
          </dl>
          <dl>
            <dt>tester:</dt>
            <dd><ul>
              <li><a href='http://validator.w3.org/checklink?url=http%3A%2F%2Finternet.physto.se%2Fservertekniker%2Fsql%2Findex.php&amp;hide_type=all&amp;depth=&amp;check=Check'>l&auml;nkar</a></li>
              <li><a href='http://www.delorie.com/web/ses.cgi?url=http%3A%2F%2Finternet.physto.se%2Fservertekniker%2Fsql%2Findex.php'>s&ouml;krobot</a></li>
              <li><a href='http://juicystudio.com/services/readability.php?url=http%3A%2F%2Finternet.physto.se%2Fservertekniker%2Fsql%2Findex.php#readresults'>l&auml;sbarhet</a></li>
              <li><a href='javascript:cssCompatibilityMode()'>css-l&auml;ge</a></li>
            </ul></dd>
          </dl>
          <dl>
            <dt>HTTP-data:</dt>
            <dd><ul>
              <li><a href='javascript:displayCookie()'>cookies</a></li>
              <li><a href='http://web-sniffer.net?url=http%3A%2F%2Finternet.physto.se%2Fservertekniker%2Fsql%2Findex.php&amp;submit=Submit&amp;http=1.1&amp;gzip=yes&amp;type=GET&amp;ua='>get-huvud</a></li>
              <li><a href='http://web-sniffer.net?url=http%3A%2F%2Finternet.physto.se%2Fservertekniker%2Fsql%2Findex.php&amp;submit=Submit&amp;http=1.1&amp;gzip=yes&amp;type=POST&amp;ua='>post-huvud</a></li>
            </ul></dd>
          </dl>
          <dl>
            <dt>sidstruktur:</dt>
            <dd><ul>
              <li><a href='javascript:showDivs()'>div</a></li>
              <li><a href='javascript:showSpans()'>span</a></li>
              <li><a href='javascript:elementsInspector()'>element</a></li>
              <li><a href='/servertekniker/sql/index.php'>&lt;&aring;ter&gt;</a></li>
            </ul></dd>
          </dl>
          <dl>
            <dt>resurser:</dt>
            <dd><ul>
              <li><a href='../../resurser/latin1/index.php'>latin1</a></li>
              <li><a href='http://www.utf8-chartable.de/unicode-utf8-table.pl?unicodeinhtml=dec&amp;htmlent=1'>utf-8</a></li>
              <li><a href='../../resurser/216rgb/index.php'>#rgb</a></li>
              <li><a href='http://www.nada.kth.se/dataterm/'>dataterm</a></li>
              <li><a href='http://acronyms.thefreedictionary.com/'>f&ouml;rk.</a></li>
              <li><a href='http://www.quirksmode.org/css/contents.html'>css-kompat.</a></li>
            </ul></dd>
          </dl>
          <ul>
            <li><script type='text/javascript'>void document.write(innerWindowDimensions());</script></li>
          </ul>
          <ul>
            <li><script type='text/javascript'>void document.write(heightOfPage());</script></li>
          </ul>
        </div> <!-- favelets -->

        <hr class='hidden'>
        <div id='copyright'>
          <p>&#169;&nbsp;1995-2010 <a href='http://www.physto.se/~hvzm/'>Hans&nbsp;M&uuml;hlen</a></p>
          <p>Kontaktadress:&nbsp;hvzm<span class='snabela'>&nbsp;</span>physto.se</p>
          <p>Kurserna ges&nbsp;av <a href='http://www.physto.se/'>Fysikum</a> vid&nbsp;<a href='http://www.su.se/'>Stockholms universitet</a>.</p>
          <p><a href='../../cookies/index.php'>Vi&nbsp;anv&auml;nder&nbsp;cookies</a>.</p>
        </div>

        <div id='select-style' class='flik'>
          <dl>
            <dt class='stilval-rubrik'>v&auml;lj&nbsp;stilmall:</dt>
            <dd><ul>
              <li class='stilval-item'><abbr title='enkel'>U</abbr></li>
              <li class='stilval-item'><a href="/servertekniker/sql/index.php?stilval=meny" title='v&auml;lj stil: v&auml;nsterspalt'>M</a></li>
              <li class='stilval-item'><a href="/servertekniker/sql/index.php?stilval=boxed" title='v&auml;lj stil: blurb-in-box'>B</a></li>
              <li class='stilval-item'><a href="/servertekniker/sql/index.php?stilval=print" title='v&auml;lj stil: utskrivbar version'>P</a></li>
              <li class='stilval-item'><a href="/servertekniker/sql/index.php?stilval=text" title='v&auml;lj stil: ren text'>X</a></li>
              <li class='stilval-item'><a href="/servertekniker/sql/index.php?stilval=nocss" title='v&auml;lj stil: utan stilmall, webbl&auml;sarens defaultstil'>&#172;</a></li>
            </ul></dd>
          </dl>
        </div> <!-- select-style -->

        <div id='select-font' class='flik'>
          <dl>
            <dt class='stilval-rubrik'>v&auml;lj&nbsp;typsnitt:</dt>
            <dd><ul>
              <li class='stilval-item'><abbr title='trebuchet (sansserif)'>r</abbr></li>
              <li class='stilval-item'><a href="/servertekniker/sql/index.php?fontval=verdana" title='v&auml;lj typsnitt: verdana (sansserif)'><em>v</em></a></li>
              <li class='stilval-item'><a href="/servertekniker/sql/index.php?fontval=tahoma" title='v&auml;lj typsnitt: tahoma (sansserif)'><em>a</em></a></li>
              <li class='stilval-item'><a href="/servertekniker/sql/index.php?fontval=impact" title='v&auml;lj typsnitt: impact (sansserif)'><em>i</em></a></li>
              <li class='stilval-item'><a href="/servertekniker/sql/index.php?fontval=georgia" title='v&auml;lj typsnitt: georgia (serif)'><em>g</em></a></li>
              <li class='stilval-item'><a href="/servertekniker/sql/index.php?fontval=times" title='v&auml;lj typsnitt: times (serif)'><em>t</em></a></li>
              <li class='stilval-item'><a href="/servertekniker/sql/index.php?fontval=courier" title='v&auml;lj typsnitt: courier (monospace)'><em>c</em></a></li>
            </ul></dd>
          </dl>
        </div> <!-- select-font -->

        <p id='updated'>Senast&nbsp;uppdaterad&nbsp;22&nbsp;maj&nbsp;2007</p>

        <hr class='hidden'>
          <div class='hidden'>
<div class='vcard'>
  <span class='fn'>Hans M&uuml;hlen</span>
  <div class='org'>
    <span class='organization-name'>Stockholms universitet</span>
    <span class='organization-unit'>Fysikum</span>
  </div>
  <div class='adr'>
    <span class='type'>postal</span>
    <span class='type'>work</span>
    <span class='street-address'>Roslagstullsbacken 21</span>
    <br><span class='postal-code'>106 91</span>
    <span class='locality'>Stockholm</span>,
    <span class='country-name'>Sverige</span>
  </div>
  <div class='tel'>Tel: 
    <span class='type'>work</span>    <span class='value'>+46 8 5537 8423</span>
   </div>
  <div class='tel'>Fax: 
    <span class='type'>fax</span>
    <span class='type'>work</span>
    <span class='value'>+46 8 5537 8601</span>
   </div>
  <div class='email'>E-post: 
    <span class='type'>work</span>    <span class='value'>hvzm<span class='snabela'>&nbsp;</span>physto.se</span>
   </div>
  Hemsida: <span class='url'><a href='http://www.physto.se/~hvzm/'>www.physto.se/~hvzm</a></span>
</div>
          </div>

          <div class='hidden'>
<div class='vcard'>
  <div class='org fn'>
    <span class='organization-name'>Stockholms universitet</span>
    <span class='organization-unit'>Fysikum</span>
  </div>
  <div class='adr'>
    <span class='type'>postal</span>
    <span class='type'>work</span>
    <span class='street-address'>Roslagstullsbacken 21</span>
    <br><span class='postal-code'>106 91</span>
    <span class='locality'>Stockholm</span>,
    <span class='country-name'>Sverige</span>
  </div>
  <div class='adr'>
    <span class='type'>parcel</span>
    <span class='type'>work</span>
    <span class='street-address'>Roslagsv&auml;gen 30 B</span>
    <br><span class='postal-code'>104 06</span>
    <span class='locality'>Stockholm</span>,
    <span class='country-name'>Sverige</span>
  </div>
  <div class='tel'>Tel: 
    <span class='type'>work</span>    <span class='value'>+46 8 5537 8444</span>
   </div>
  <div class='tel'>Fax: 
    <span class='type'>fax</span>
    <span class='type'>work</span>
    <span class='value'>+46 8 5537 8601</span>
   </div>
  Hemsida: <span class='url'><a href='http://www.physto.se/'>www.physto.se</a></span>
</div>
          </div>
        <div class='ruta-avsluta-spalter'></div>

      </div> <!-- block-colophon -->

      <div id='block-direction'>

        <div id='orientering-oversikt' class='flik'>
          <p>[<a href='../../kursinfo/kursmaterial/index.php'>&ouml;versikt</a>]</p>
        </div> <!-- orientering-oversikt -->

        <div id='orientering-utskrivbar' class='flik'>
          <p>[<a href='/servertekniker/sql/index.php?p=1'>utskrivbar</a>]</p>
        </div> <!-- orientering-utskrivbar -->

      </div> <!-- block-direction -->

      <div id='block-appendix'>
        <div id='appendix-dropshadow'></div>
        <div id='appendix-pageextension'></div>
      </div> <!-- block-appendix -->

    </div> <!-- block-container -->

  </body>

</html>