标签: SQL

  • Oracle Database 11g, A Beginner’s Guide

    Oracle Database 11g, A Beginner’s Guide

    Oracle Database 11g, A Beginner\'s Guide.jpg

    Master Oracle Database 11g fundamentals quickly and easily. Using self-paced tutorials, this book covers core database essentials, the role of the administrator, high availability, and large database features. Oracle Database 11g: A Beginner’s Guide walks you, step by step, through database setup, administration, programming, backup, and recovery. In-depth introductions to SQL and PL/SQL are included. Designed for easy learning, this exclusive Oracle Press guide offers:

    • Core Concepts–Oracle Database 11g topics presented in logically organized chapters
    • Critical Skills–Lists of specific skills covered in each chapter
    • Projects–Practical exercises that show how to apply the critical skills learned in each chapter
    • Progress Checks–Quick self-assessment sections to check your progress
    • Notes–Extra information related to the topic being covered
    • Mastery Checks–Chapter-ending quizzes to test your knowledge

    Download:  Oracle Database 11g, A Beginner’s Guide provided by the TestPassPort.

  • 《SQL案例解析:以SQL Server與Oracle為例》分享電子書

    SQL案例解析:以SQL Server與Oracle為例

    DJAA17.jpg

    本書介紹

    SQL案例解析:以SQL Server與Oracle為例: 本書藉由大量經過驗證且可行的範例,讓AP/DBA 以最短的時間熟悉SQL 語言的各種運用與注意事項,以彌補理論與實際應用的落差。所以,每個AP/DBA 都應該有一本,當作案頭書隨時翻閱,並參考作者多年來的經驗談,幫助你順利地解決目前所遇到的SQL 難題。

    作者匯集其多年的資料庫開發經驗,同時探討SQL語法於Oracle及SQL Server兩種企業資料庫系統的應用,書中並涵括許多具商業價值的案例,特別適合已具有Oracle或SQL Server經驗的資料庫開發者、DBA、軟體架構師與資料庫應用維護人員閱讀,藉由本書鍛鍊解決問題之思維及能力。

    本書內容

    以比對式寫法,整理出Oracle及SQL Server常用函數的差異。
    將原本以應用程式或內儲程式開發的需求,嘗試直接以一組SQL指令完成,除了提供另一種思維及解決模式之外,更能有效提升資料庫的執行效率。
    探討常見的日期區間報表實作,以日報、月報、週報、小時區間報表、科學園區的四二輪工時報表,以及完整日期報表等實例。
    詳述如何連結異質資料來源,以及利用SQL指令達成迴圈指令、亂數功能、篩選等。
    本書所探討的概念也適用於MySQL、DB2、Teradata等各類型資料庫。

    本書目錄

    第01章│資料庫的使用
    第02章│SELECT 敘述句
    第03章│基本SQL用法
    第04章│資料異動處理
    第05章│資料型態
    第06章│字串函數的使用
    第07章│日期函數的使用
    第08章│數值函數的使用
    第09章│進階SQL用法
    第10章│日期區間報表
    第11章│預儲程式
    第12章│異質資料來源
    第13章│特殊應用

    電子書下載: 《SQL案例解析:以SQL Server與Oracle為例》

    此電子書由網友上傳分享,僅限於個人學習試用,下載24小時自行刪除,請購買正版書籍!

  • Microsoft SQL Server 2008: Grow Your Database Potential

    Microsoft Learning introduces a new suite of certifications for Microsoft® SQL Server® 2008, offering you more choices and simpler paths to follow to achieve your certification goals.You can demonstrate your depth of knowledge in one specific area, earn multiple MCTS certifications to show breadth across different areas, or build on the MCTS to earn a Professional Series credential.
    MCTS certifications for SQL Server 2008
    When you earn a Microsoft Certified Technology Specialist (MCTS) certification, you validate your deep technical knowledge and skill using the features and functionality of key technology areas in Microsoft SQL Server 2008.
    Three MCTS certifications on Microsoft SQL Server 2008 are available: MCTS: SQL Server 2008, Implementationand Maintenance; MCTS: SQL Server 2008,Database Development; and MCTS: SQL Server 2008,Business Intelligence Development and Maintenance.

    MCITP certifications for SQL Server 2008

    With a Microsoft Certified IT Professional (MCITP),credential you can distinguish yourself as an IT professional with the current skills and proven capabilities to work effectively with Microsoft SQL Server 2008.

    At the MCITP level there are also three Microsoft SQL Server 2008 certification: MCITP: Database Administrator 2008; MCITP: Database Developer 2008;and MCITP: Business Intelligence Developer 2008.You can read more about the new SQL Server certifications at http://www.microsoft.com/learning/mcp/sql/2008/default.mspx

    Download: Microsoft SQL Server 2008 certification

  • Oracle 10g數據庫中如何分析響應時間

    在Oracle10g 中,以前版本中比較難於獲取的響應時間數據將會變得非常容易獲取。在以前看來,為了盡量獲得數據庫的最佳性能,Oracle 的DBA 們和性能分析專家一直很困難獲得系統以及用戶會話活動的一致的響應時間數據。 DBA 們面臨的問題一直以來包括兩個方面:第一個方面是準確定位數據庫或者用戶會話究竟在哪裡消耗了時間;第二個方面就是確定用戶體驗的客觀性質在數據庫中產生所有可能的行為和交互作用,這些任務都不是沒有價值的。  

    Oracle 等待接口,在之前的很早的Oracle 數據庫版本中開始介紹的,對於那些知道如何使用等待接口的管理員來說這已經成為一個偉大的開始,即使它仍然缺乏告訴DBA 系統或者用戶會話是否有效的處理了事務或者查詢這個理想的能力。啟用和鑽研跟踪文件能夠存儲這個級別上的詳細信息,但是對於大多數超負荷工作管理大型數據庫的DBA 們,這個鑽研是奢侈的而耗費時間的。幸運的是,那些將數據庫升級到Oracle10g 的DBA 們將會發現找到主要的響應時間變得很容易,可以允許一個非常好的圖表來顯示系統和會話級的響應時間數據。很重要的一點,Oracle 的ADDM 提供了一個查看響應時間的方法,通過自動分析收集的統計信息,識別問題區域,甚至可以通過Oracle 企業管理器網絡控制的圖形界面提供建議。此外,與我們這裡討論相關的是Oracle10g 數據庫的歷史數據機制允許DBA 們按時查看對響應時間趨勢的分析,這將有助於DBA 們確定事務/系統的高峰時期,更好的定位那些拉長批處理週期和ETL 作業的進程和SQL 語句。

    (更多…)

  • Microsoft SQL Server 2005基礎教程

    Microsoft SQL Server 2005基礎教程教學內容:

    點擊下載:  SQL Server 2005基礎教程

    第一章:

    1.理解使用數據庫的原因
    2.掌握數據庫的基本概念和特點
    3.理解Microsoft SQL Server簡史
    4.理解Microsoft SQL Server系統的體系結構
    5.理解數據庫和數據庫對象的特點
    6.理解管理工具的特點
    7.理解數據庫管理員的任務

    1.1 為什麼使用數據庫?
    1.2 什麼是數據庫?
    1.3 Microsoft SQL Server簡史
    1.4 Microsoft SQL Server系統的體系結構
    1.5 數據庫和數據庫對象的特點
    1.6 管理工具
    1.7 數據庫管理員

    第二章:

    2.1 安裝規劃
    2.2 安裝過程
    2.3 驗證安裝結果
    2.4 升級規劃
    2.5 註冊服務器
    2.6 配置服務器選項

    第三章:

    3.1 概述
    3.2 管理登錄名
    3.3 固定服務器角色
    3.4 管理數據庫用戶
    3.5 管理架構
    3.6 數據庫角色
    3.7 管理應用程序角色
    3.8 管理權限
    3.9 SQL Server 2005內置的加密機制
    3.10 使用SQL Server Management Studio工具

    全部二十一章,請下載後查看全部內容…..

  • SQL命令大全

    –語句功能
    –數據操作

     
    SELECT –從數據庫表中檢索數據行和列
    INSERT –向數據庫表添加新數據行
    DELETE –從數據庫表中刪除數據行
    UPDATE –更新數據庫表中的數據
    –數據定義
    CREATE TABLE –創建一個數據庫表
    DROP TABLE –從數據庫中刪除表
    ALTER TABLE –修改數據庫表結構
    CREATE VIEW –創建一個視圖
    DROP VIEW –從數據庫中刪除視圖
    CREATE INDEX –為數據庫表創建一個索引
    DROP INDEX –從數據庫中刪除索引
    CREATE PROCEDURE –創建一個存儲過程
    DROP PROCEDURE –從數據庫中刪除存儲過程
    CREATE TRIGGER –創建一個觸發器
    DROP TRIGGER –從數據庫中刪除觸發器
    CREATE SCHEMA –向數據庫添加一個新模式
    DROP SCHEMA –從數據庫中刪除一個模式
    CREATE DOMAIN –創建一個數據值域
    ALTER DOMAIN –改變域定義
    DROP DOMAIN –從數據庫中刪除一個域
    –數據控制
    GRANT –授予用戶訪問權限
    DENY –拒絕用戶訪問
    REVOKE –解除用戶訪問權限
    –事務控制
    COMMIT –結束當前事務
    ROLLBACK –中止當前事務
    SET TRANSACTION –定義當前事務數據訪問特徵
    –程序化SQL
    DECLARE –為查詢設定游標
    EXPLAN –為查詢描述數據訪問計劃
    OPEN –檢索查詢結果打開一個游標
    FETCH –檢索一行查詢結果
    CLOSE –關閉游標
    PREPARE –為動態執行準備SQL語句
    EXECUTE –動態地執行SQL語句
    DESCRIBE –描述準備好的查詢
    —局部變量
    declare @id char(10)
    –set @id = ‘10010001’
    select @id = ‘10010001’
    —全局變量
    —必須以@@開頭
    –IF ELSE
    declare @x int @y int @z int
    select @x = 1 @y = 2 @z=3
    if @x > @y
    print ‘x > y’ –打印字符串’x > y’
    else if @y > @z
    print ‘y > z’
    else print ‘z > y’
    –CASE
    use pangu
    update employee
    set e_wage =
    case
    when job_level = ‘1’ then e_wage*1.08
    when job_level = ‘2’ then e_wage*1.07
    when job_level = ‘3’ then e_wage*1.06
    else e_wage*1.05
    end
    –WHILE CONTINUE BREAK
    declare @x int @y int @c int
    select @x = 1 @y=1
    while @x < 3
    begin
    print @x –打印變量x的值
    while @y < 3
    begin
    select @c = 100*@x + @y
    print @c –打印變量c的值
    select @y = @y + 1
    end
    select @x = @x + 1
    select @y = 1
    end
    –WAITFOR
    –例等待1小時2分零3秒後才執行SELECT語句
    waitfor delay ’01:02:03′
    select * from employee
    –例等到晚上11點零8分後才執行SELECT語句
    waitfor time ’23:08:00′
    select * from employee

    ***SELECT***
    select *(列名) from table_name(表名) where column_name operator value
    ex:(宿主)
    select * from stock_information where stockid = str(nid)
    stockname = ‘str_name’
    stockname like ‘% find this %’
    stockname like ‘[a-zA-Z]%’ ——— ([]指定值的範圍)
    stockname like ‘[^FM]%’ ——— (^排除指定範圍)
    ———只能在使用like關鍵字的where子句中使用通配符)
    or stockpath = ‘stock_path’
    or stocknumber < 1000
    and stockindex = 24
    not stocksex = ‘man’
    stocknumber between 20 and 100
    stocknumber in(10,20,30)
    order by stockid desc(asc) ———排序,desc-降序,asc-升序
    order by 1,2 ——— by列號
    stockname = (select stockname from stock_information where stockid = 4)
    ———子查詢
    ———除非能確保內層select只返回一個行的值,
    ———否則應在外層where子句中用一個in限定符
    select distinct column_name form table_name ——— distinct指定檢索獨有的列值,不重複
    select stocknumber ,”stocknumber + 10″ = stocknumber + 10 from table_name
    select stockname , “stocknumber” = count(*) from table_name group by stockname
    ——— group by將表按行分組,指定列中有相同的值
    having count(*) = 2 ——— having選定指定的組
    select *
    from table1, table2
    where table1.id *= table2.id ——–左外部連接,table1中有的而table2中沒有得以null表示
    table1.id =* table2.id ——–右外部連接
    select stockname from table1
    union [all] —– union合併查詢結果集,all-保留重複行
    select stockname from table2
    ***insert***
    insert into table_name (Stock_name,Stock_number) value (“xxx”,”xxxx”)
    value (select Stockname , Stocknumber from Stock_table2)—value為select語句
    ***update***
    update table_name set Stockname = “xxx” [where Stockid = 3]
    Stockname = default
    Stockname = null
    Stocknumber = Stockname + 4
    ***delete***
    delete from table_name where Stockid = 3
    truncate table_name ———–刪除表中所有行,仍保持表的完整性
    drop table table_name —————完全刪除表
    ***alter table*** —修改數據庫表結構
    alter table database.owner.table_name add column_name char(2) null …..
    sp_help table_name —-顯示表已有特徵
    create table table_name (name char(20), age smallint, lname varchar(30))
    insert into table_name select ……… —–實現刪除列的方法(創建新表)
    alter table table_name drop constraint Stockname_default —-刪除Stockname的default約束
    ***function(/*常用函數*/)***
    —-統計函數—-
    AVG –求平均值
    COUNT –統計數目
    MAX –求最大值
    MIN –求最小值
    SUM –求和
    –AVG
    use pangu
    select avg(e_wage) as dept_avgWage
    from employee
    group by dept_id
    –MAX
    –求工資最高的員工姓名
    use pangu
    select e_name
    from employee
    where e_wage =
    (select max(e_wage)
    from employee)
    –STDEV()
    –STDEV()函數返回表達式中所有數據的標準差
    –STDEVP()
    –STDEVP()函數返回總體標準差
    –VAR()
    –VAR()函數返回表達式中所有值的統計變異數
    –VARP()
    –VARP()函數返回總體變異數
    —-算術函數—-
    /***三角函數***/
    SIN(float_expression) –返回以弧度表示的角的正弦
    COS(float_expression) –返回以弧度表示的角的餘弦
    TAN(float_expression) –返回以弧度表示的角的正切
    COT(float_expression) –返回以弧度表示的角的餘切
    /***反三角函數***/
    ASIN(float_expression) –返回正弦是FLOAT值的以弧度表示的角
    ACOS(float_expression) –返回餘弦是FLOAT值的以弧度表示的角
    ATAN(float_expression) –返回正切是FLOAT值的以弧度表示的角
    ATAN2(float_expression1,float_expression2)
    –返回正切是float_expression1 /float_expres-sion2的以弧度表示的角
    DEGREES(numeric_expression)
    –把弧度轉換為角度返回與表達式相同的數據類型可為
    –INTEGER/MONEY/REAL/FLOAT類型
    RADIANS(numeric_expression) –把角度轉換為弧度返回與表達式相同的數據類型可為
    –INTEGER/MONEY/REAL/FLOAT類型
    EXP(float_expression) –返回表達式的指數值
    LOG(float_expression) –返回表達式的自然對數值
    LOG10(float_expression)–返回表達式的以10為底的對數值
    SQRT(float_expression) –返回表達式的平方根
    /***取近似值函數***/
    CEILING(numeric_expression) –返回>=表達式的最小整數返回的數據類型與表達式相同可為
    –INTEGER/MONEY/REAL/FLOAT類型
    FLOOR(numeric_expression) –返回<=表達式的最小整數返回的數據類型與表達式相同可為
    –INTEGER/MONEY/REAL/FLOAT類型
    ROUND(numeric_expression) –返回以integer_expression為精度的四捨五入值返回的數據
    –類型與表達式相同可為INTEGER/MONEY/REAL/FLOAT類型
    ABS(numeric_expression) –返回表達式的絕對值返回的數據類型與表達式相同可為
    –INTEGER/MONEY/REAL/FLOAT類型
    SIGN(numeric_expression) –測試參數的正負號返回0零值1正數或-1負數返回的數據類型
    –與表達式相同可為INTEGER/MONEY/REAL/FLOAT類型
    PI() –返回值為π即3.1415926535897936
    RAND([integer_expression]) –用任選的[integer_expression]做種子值得出0-1間的隨機浮點數

    —-字符串函數—-
    ASCII() –函數返回字符表達式最左端字符的ASCII碼值
    CHAR() –函數用於將ASCII碼轉換為字符
    –如果沒有輸入0 ~ 255之間的ASCII碼值CHAR函數會返回一個NULL值
    LOWER() –函數把字符串全部轉換為小寫
    UPPER() –函數把字符串全部轉換為大寫
    STR() –函數把數值型數據轉換為字符型數據
    LTRIM() –函數把字符串頭部的空格去掉
    RTRIM() –函數把字符串尾部的空格去掉
    LEFT(),RIGHT(),SUBSTRING() –函數返回部分字符串
    CHARINDEX(),PATINDEX() –函數返回字符串中某個指定的子串出現的開始位置
    SOUNDEX() –函數返回一個四位字符碼
    –SOUNDEX函數可用來查找聲音相似的字符串但SOUNDEX函數對數字和漢字均只返回0值
    DIFFERENCE() –函數返回由SOUNDEX函數返回的兩個字符表達式的值的差異
    –0兩個SOUNDEX函數返回值的第一個字符不同
    –1兩個SOUNDEX函數返回值的第一個字符相同
    –2兩個SOUNDEX函數返回值的第一二個字符相同
    –3兩個SOUNDEX函數返回值的第一二三個字符相同
    –4兩個SOUNDEX函數返回值完全相同

    QUOTENAME() –函數返回被特定字符括起來的字符串
    /*select quotename(‘abc’, ‘{‘) quotename(‘abc’)
    運行結果如下
    ———————————-{
    {abc} [abc]*/
    REPLICATE() –函數返回一個重複character_expression指定次數的字符串
    /*select replicate(‘abc’, 3) replicate( ‘abc’, -2)
    運行結果如下
    ———– ———–
    abcabcabc NULL*/
    REVERSE() –函數將指定的字符串的字符排列順序顛倒
    REPLACE() –函數返回被替換了指定子串的字符串
    /*select replace(‘abc123g’, ‘123’, ‘def’)
    運行結果如下
    ———– ———–
    abcdefg*/
    SPACE() –函數返回一個有指定長度的空白字符串
    STUFF() –函數用另一子串替換字符串指定位置長度的子串

    —-數據類型轉換函數—-
    CAST()函數語法如下
    CAST() (<expression> AS <data_ type>[ length ])
    CONVERT()函數語法如下
    CONVERT() (<data_ type>[ length ], <expression> [, style])
    select cast(100+99 as char) convert(varchar(12), getdate())
    運行結果如下
    —————————— ————
    199 Jan 15 2000
    —-日期函數—-
    DAY() –函數返回date_expression中的日期值
    MONTH() –函數返回date_expression中的月份值
    YEAR() –函數返回date_expression中的年份值
    DATEADD(<datepart> ,<number> ,<date>)
    –函數返回指定日期date加上指定的額外日期間隔number產生的新日期
    DATEDIFF(<datepart> ,<number> ,<date>)
    –函數返回兩個指定日期在datepart方面的不同之處
    DATENAME(<datepart> , <date>) –函數以字符串的形式返回日期的指定部分
    DATEPART(<datepart> , <date>) –函數以整數值的形式返回日期的指定部分
    GETDATE() –函數以DATETIME的缺省格式返回系統當前的日期和時間
    —-系統函數—-
    APP_NAME() –函數返回當前執行的應用程序的名稱
    COALESCE() –函數返回眾多表達式中第一個非NULL表達式的值
    COL_LENGTH(<‘table_name’>, <‘column_name’>) –函數返回表中指定字段的長度值
    COL_NAME(<table_id>, <column_id>) –函數返回表中指定字段的名稱即列名
    DATALENGTH() –函數返回數據表達式的數據的實際長度
    DB_ID([‘database_name’]) –函數返回數據庫的編號
    DB_NAME(database_id) –函數返回數據庫的名稱
    HOST_ID() –函數返回服務器端計算機的名稱
    HOST_NAME() –函數返回服務器端計算機的名稱
    IDENTITY(<data_type>[, seed increment]) [AS column_name])
    –IDENTITY()函數只在SELECT INTO語句中使用用於插入一個identity column列到新表中
    /*select identity(int, 1, 1) as column_name
    into newtable
    from oldtable*/
    ISDATE() –函數判斷所給定的表達式是否為合理日期
    ISNULL(<check_expression>, <replacement_value>) –函數將表達式中的NULL值用指定值替換
    ISNUMERIC() –函數判斷所給定的表達式是否為合理的數值
    NEWID() –函數返回一個UNIQUEIDENTIFIER類型的數值
    NULLIF(<expression1>, <expression2>)
    –NULLIF函數在expression1與expression2相等時返回NULL值若不相等時則返回expression1的值

    ————————————————– ——————————
    sql中的保留字
    action add aggregate all
    alter after and as
    asc avg avg_row_length auto_increment
    between bigint bit binary
    blob bool both by
    cascade case char character
    change check checksum column
    columns comment constraint create
    cross current_date current_time current_timestamp
    data database databases date
    datetime day day_hour day_minute
    day_second dayofmonth dayofweek dayofyear
    dec decimal default delayed
    delay_key_write delete desc describe
    distinct distinctrow double drop
    end else escape escaped
    enclosed enum explain exists
    fields file first float
    float4 float8 flush foreign
    from for full function
    global grant grants group
    having heap high_priority hour
    hour_minute hour_second hosts identified
    ignore in index infile
    inner insert insert_id int
    integer interval int1 int2
    int3 int4 int8 into
    if is isam join
    key keys kill last_insert_id
    leading left length like
    lines limit load local
    lock logs long longblob
    longtext low_priority max max_rows
    match mediumblob mediumtext mediumint
    middleint min_rows minute minute_second
    modify month monthname myisam
    natural numeric no not
    null on optimize option
    optionally or order outer
    outfile pack_keys partial password
    precision primary procedure process
    processlist privileges read real
    references reload regexp rename
    replace restrict returns revoke
    rlike row rows second
    select set show shutdown
    smallint soname sql_big_tables sql_big_selects
    sql_low_priority_updates sql_log_off sql_log_update sql_select_limit
    sql_small_result sql_big_result sql_warnings straight_join
    starting status string table
    tables temporary terminated text
    then time timestamp tinyblob
    tinytext tinyint trailing to
    type use using unique
    unlock unsigned update usage
    values varchar variables varying
    varbinary with write when
    where year year_month zerofill

  • sql語句中插入數據的三種常用方法簡介

    我們在插入數據到數據庫中的時候,常用的語句如下:

    INSERT INTO table1(id, name, address) VALUES(1, ygl, ‘beijing’)——適用於T-sql和PL/SQL;

    SELECT id, name, address INTO table2 FROM table1——自動創建table2,T-sql用法;

    INSERT INTO table2(id, name, address) SELECT id, name, address FROM table1

    這裡簡單說一下第三句,由於可以指定插入到talbe2中的列,以及可以通過相對較複雜的查詢語句進行數據源獲取,可能使用起來會更加的靈活一些,但我們也必須注意,我們在指定目標表的列時,一定要將所有非空列都填上,否則將無法進行數據插入,還有一點比較容易出錯的地方就是,當我們寫成如下簡寫格式:

    INSERT INTO table2 SELECT id, name, address FROM table1

    此時,我們如果略掉了目標表的列的話,則默認會對目標表的全部列進行數據插入,且SELECT後面的列的順序必須和目標表中的列的定義順序完全一致才能完成正確的數據插入,這是一個很容易被忽略的地方,值得注意。

  • SQL簡介和SQL語法

    WebjxCom提示:SQL是用於訪問和處理數據庫的標準的計算機語言,您需要在數據庫上執行的大部分工作都由SQL語句完成。

    SQL是用於訪問和處理數據庫的標準的計算機語言。

    什麼是SQL?
    SQL指結構化查詢語言
    SQL使我們有能力訪問數據庫
    SQL是一種ANSI的標準計算機語言
    編者註:ANSI,美國國家標準化組織

    SQL能做什麼?
    SQL面向數據庫執行查詢
    SQL可從數據庫取回數據
    SQL可在數據庫中插入新的紀錄
    SQL可更新數據庫中的數據
    SQL可從數據庫刪除記錄
    SQL可創建新數據庫
    SQL可在數據庫中創建新表
    SQL可在數據庫中創建存儲過程
    SQL可在數據庫中創建視圖
    SQL可以設置表、存儲過程和視圖的權限
    SQL是一種標準-但是…
    SQL是一門ANSI的標準計算機語言,用來訪問和操作數據庫系統。 SQL語句用於取回和更新數據庫中的數據。 SQL可與數據庫程序協同工作,比如MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase以及其他數據庫系統。

    不幸地是,存在著很多不同版本的SQL語言,但是為了與ANSI標準相兼容,它們必須以相似的方式共同地來支持一些主要的關鍵詞(比如SELECT、UPDATE、DELETE、INSERT、WHERE等等) 。

    註釋:除了SQL標準之外,大部分SQL數據庫程序都擁有它們自己的私有擴展!

    在您的網站中使用SQL
    要創建發布數據庫中數據的網站,您需要以下要素:

    RDBMS數據庫程序(比如MS Access, SQL Server, MySQL)
    服務器端腳本語言(比如PHP或ASP)
    SQL
    HTML / CSS
    RDBMS
    RDBMS指的是關係型數據庫管理系統。

    RDBMS是SQL的基礎,同樣也是所有現代數據庫系統的基礎,比如MS SQL Server, IBM DB2, Oracle, MySQL以及Microsoft Access。

    RDBMS中的數據存儲在被稱為表(tables)的數據庫對像中。

    表是相關的數據項的集合,它由列和行組成。

    數據庫表
    一個數據庫通常包含一個或多個表。每個表由一個名字標識(例如“客戶”或者“訂單”)。表包含帶有數據的記錄(行)。

    下面的例子是一個名為”Persons”的表:

    Id LastName FirstName Address City
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York
    3 Carter Thomas Changan Street Beijing

    上面的表包含三條記錄(每一條對應一個人)和五個列(Id、姓、名、地址和城市)。

    SQL語句
    您需要在數據庫上執行的大部分工作都由SQL語句完成。

    下面的語句從表中選取LastName列的數據:

    SELECT LastName FROM Persons結果集類似這樣:

    LastName
    Adams
    Bush
    Carter

    在本教程中,我們將為您講解各種不同的SQL語句。

    重要事項
    一定要記住,SQL對大小寫不敏感!

    SQL語句後面的分號?
    某些數據庫系統要求在每條SQL命令的末端使用分號。在我們的教程中不使用分號。

    分號是在數據庫系統中分隔每條SQL語句的標準方法,這樣就可以在對服務器的相同請求中執行一條以上的語句。

    如果您使用的是MS Access和SQL Server 2000,則不必在每條SQL語句之後使用分號,不過某些數據庫軟件要求必須使用分號。

    SQL DML和DDL
    可以把SQL分為兩個部分:數據操作語言(DML)和數據定義語言(DDL)。
    SQL (結構化查詢語言)是用於執行查詢的語法。但是SQL語言也包含用於更新、插入和刪除記錄的語法。本文來源於網頁教學網。

    查詢和更新指令構成了SQL的DML部分:

    SELECT -從數據庫表中獲取數據
    UPDATE -更新數據庫表中的數據
    DELETE -從數據庫表中刪除數據
    INSERT INTO -向數據庫表中插入數據
    SQL的數據定義語言(DDL)部分使我們有能力創建或刪除表格。我們也可以定義索引(鍵),規定表之間的鏈接,以及施加表間的約束。

    SQL中最重要的DDL語句:

    CREATE DATABASE -創建新數據庫
    ALTER DATABASE -修改數據庫
    CREATE TABLE -創建新表
    ALTER TABLE -變更(改變)數據庫表
    DROP TABLE -刪除表
    CREATE INDEX -創建索引(搜索鍵)
    DROP INDEX -刪除索引