當前位置:首頁 » 編程語言 » Mysql寫sql實戰
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

Mysql寫sql實戰

發布時間: 2023-04-07 01:33:08

❶ 一條關於mysql的SQL語句怎麼寫

哥孝稿子,你這個方法查出來的數據肯定要比你想要的結果多
得出來的不僅僅是每個年齡段身高最小的人的體重
id height age weight
1 165 22 55
2 167 22 52
3 167 23 60
4 169 23 70
按你上面的SQL,會查睜塵出三條,其悉慎禪實你要的只是其中兩件

用EXISTS如下實現
select weight form boy t1 where exists (select 1 from (select age,min(height) min_height from boy t2 group by age ) s where s.age=t2.age and s.min_height=t1.height)
我MYSQL用得少,大多是ORACLE,不知道合不合MYSQL的語法,不合的話你可以改下,大概意思還是這樣的

❷ SQL怎麼寫(在mysql中)

可以在兩個表中分別新增一個序號列,然後用兩張表根據序號列進行關聯

❸ MySQL分頁的sql語言怎麼寫

1、首先我們建立一個表表的數據,這個表裡有25條數據,id從1到25。(下圖是部分截圖)

2、要分頁數據,首先我們假設一頁有10條數據,我們可以用mysql的limit關鍵字來限定返回多少條數據。並且用orderby來排序數據,這里用id來排序。所以第一頁的sql可以如圖這樣寫。

3、執行後得到的數據如圖,就是id從1到10的前10條數據,因為我們是按id升序來排序的。

4、上面第一頁的sql是簡化的寫法,完整的寫法如圖,得到的結果和上圖的一模一樣。代碼里limit0,10的意思是從第一條數據開始,取10條數據。(注意的是第一條數據是從0開始的)

5、那麼第二頁的數據,關鍵是要知道是從哪一條數據開始,可以用這個公式得到:(頁碼-1)*每頁顯示多少條,即(2-1)*10=10,所以sql語句如圖,limit10,10。

6、執行後,結果正確,得到id從11到20的10條數據。

7、同理第三頁數據的sql如圖,<br/>就是limit20,10。

8、查詢的結果如圖,因為這頁只剩下5條數據了,所以只顯示5條數據。如果你有更多頁的數據,後面的數據只需要按上面的公式,得到從哪行開始,就可以寫對應的sql語句了。

❹ 如何編寫一個mysql資料庫腳本

1、首先,選中一個資料庫world,為了防止破壞其他的資料庫表,這里新建一張資料庫表t_people_info,如下圖所示。

❺ mysql資料庫執行sql語句怎麼寫

Mysql常用命令詳解

Mysql安裝目錄
資料庫目錄
/var/lib/mysql/
配置文件
/usr/share/mysql(mysql.server命令及配置文件)
相關命令
/usr/bin(mysqladmin mysqlmp等命令)
啟動腳本
/etc/init.d/mysql(啟動腳本文件mysql的目錄)

系統管理
連接MySQL
格式:
mysql -h 主機地址 -u用戶名 -p用戶密碼
例 1:連接到本機上的 MySQL。
hadoop@ubuntu:~$ mysql
-uroot -pmysql;

例 2:連接到遠程主機上的 MYSQL。
hadoop@ubuntu:~$ mysql -h
127.0.0.1 -uroot -pmysql;

修改新密碼
在終端輸入:mysql -u用戶名 -p密碼,回車進入Mysql。
>
use mysql;
> update user set password=PASSWORD('新密碼') where
user='用戶名';
> flush privileges; #更新許可權
> quit; #退出

增加新用戶
格式:grant select on 資料庫.* to
用戶名@登錄主機 identified by '密碼'
舉例:
例 1:增加一個用戶 test1 密碼為
abc,讓他可以在任何主機上登錄,並對所有資料庫有
查詢、插入、修改、刪除的許可權。首先用以 root 用戶連入
MySQL,然後鍵入以下命令:
mysql>grant select,insert,update,delete on *.* to
root@localhost identified by 'mysql';
或者
grant all privileges on *.* to
root@localhost identified by 'mysql';
然後刷新許可權設置。
flush privileges;


2:如果你不想 root 有密碼操作資料庫「mydb」里的數據表,可以再打一個命令將密碼消掉。
grant
select,insert,update,delete on mydb.* to root@localhost identified by
'';

刪除用戶
hadoop@ubuntu:~$ mysql
-u用戶名 -p密碼
mysql>delete from user where user='用戶名' and
host='localhost';
mysql>flush privileges;
//刪除用戶的資料庫
mysql>drop
database dbname;

資料庫操作
顯示所有的資料庫
mysql> show databases;(注意:最後有個
s)

創建資料庫
mysql> create database
test;

連接資料庫
mysql> use
test;

查看當前使用的資料庫
mysql> select
database();

當前資料庫包含的表信息
mysql>
show tables; (注意:最後有個 s)

刪除資料庫
mysql> drop database
test;

表操作
備注:操作之前使用「use
<資料庫名>」應連接某個資料庫。
建表
命令:create
table <表名> (<欄位名 1> <類型 1> [,..<欄位名 n> <類型
n>]);
例子:
mysql> create table MyClass(
> id int(4) not null
primary key auto_increment,
> name char(20) not null,
> sex int(4)
not null default '0',
> degree double(16,2));

獲取表結構
命令: desc 表名,或者show columns from
表名
例子:
mysql> describe MyClass
mysql> desc MyClass;
mysql>
show columns from MyClass;

刪除表
命令:drop table <表名>
例如:刪除表名為
MyClass 的表
mysql> drop table MyClass;

插入數據
命令:insert into <表名> [( <欄位名
1>[,..<欄位名 n > ])] values ( 值 1 )[, ( 值 n )]
例子:
mysql> insert
into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang',
96.59);

查詢表中的數據
查詢所有行
mysql>
select * from MyClass;

查詢前幾行數據
例如:查看錶 MyClass 中前 2 行數據
mysql>
select * from MyClass order by id limit 0,2;
或者
mysql> select * from
MyClass limit 0,2;

刪除表中數據
命令:delete from 表名 where 表達式
例如:刪除表
MyClass 中編號為 1 的記錄
mysql> delete from MyClass where id=1;

修改表中數據
命令:update 表名 set 欄位=新值,... where
條件
mysql> update MyClass set name='Mary' where id=1;

在表中增加欄位
命令:alter table 表名 add 欄位 類型
其他;
例如:在表 MyClass 中添加了一個欄位 passtest,類型為 int(4),默認值為 0
mysql> alter
table MyClass add passtest int(4) default '0'

更改表名
命令:rename table 原表名 to 新表名;
例如:在表
MyClass 名字更改為 YouClass
mysql> rename table MyClass to
YouClass;

更新欄位內容
命令:update 表名 set
欄位名 = 新內容
update 表名 set 欄位名 = replace(欄位名, '舊內容', '新內容');
例如:文章前面加入 4
個空格
update article set content=concat(' ', content);

資料庫導入導出
從資料庫導出資料庫文件
使用「mysqlmp」命令
首先進入 DOS
界面,然後進行下面操作。
1)導出所有資料庫
格式:mysqlmp -u [資料庫用戶名] -p
-A>[備份文件的保存路徑]

2)導出數據和數據結構
格式:mysqlmp -u [資料庫用戶名] -p
[要備份的資料庫名稱]>[備份文件的保存路徑]
舉例:
例 1:將資料庫 mydb 導出到 e:\MySQL\mydb.sql
文件中。
打開開始->運行->輸入「cmd」,進入命令行模式。
c:\> mysqlmp -h localhost -u
root -p mydb >e:\MySQL\mydb.sql
然後輸入密碼,等待一會導出就成功了,可以到目標文件中檢查是否成功。


2:將資料庫 mydb 中的 mytable 導出到 e:\MySQL\mytable.sql 文件中。
c:\> mysqlmp -h
localhost -u root -p mydb mytable>e:\MySQL\mytable.sql

例 3:將資料庫 mydb
的結構導出到 e:\MySQL\mydb_stru.sql 文件中。
c:\> mysqlmp -h localhost -u root -p
mydb --add-drop-table >e:\MySQL\mydb_stru.sql
備注:-h localhost
可以省略,其一般在虛擬主機上用。

3)只導出數據不導出數據結構
格式:
mysqlmp -u [資料庫用戶名] -p -t
[要備份的資料庫名稱]>[備份文件的保存路徑]

4)導出資料庫中的Events
格式:mysqlmp -u [資料庫用戶名] -p
-E [資料庫用戶名]>[備份文件的保存路徑]

5)導出資料庫中的存儲過程和函數
格式:mysqlmp -u [資料庫用戶名]
-p -R [資料庫用戶名]>[備份文件的保存路徑]

從外部文件導入資料庫中
1)使用「source」命令
首先進入「mysql」命令控制台,然後創建資料庫,然後使用該資料庫。最後執行下面操作。
mysql>source
[備份文件的保存路徑]

2)使用「<」符號
首先進入「mysql」命令控制台,然後創建資料庫,然後退出 MySQL,進入 DOS
界面。最後執行下面操作。
mysql -u root –p < [備份文件的保存路徑]

❻ 求解MYSQL怎麼寫sql將數據插入動態表

insert into student_id
(a,b,c,d,e,f)Values(1,2,3,4,5,6) 沒看懂你說的什麼

❼ SQL實戰新手入門:關系型資料庫管理系統

關系型資料庫管理系統

本書是講述SQL的 它是一種關系型資料庫或者關系型資料庫管理系統(RDBMS)的語言 自從Codd博士在 世紀 年代奠定關系型資料庫的理論基礎以來 已經產生了相當多的關系型資料庫實現 一些新的關系型資料庫實現也不斷出現

很多人將DB 視為所有資料庫的鼻祖 IBM的研究員Edgar Frank Codd博士在 年的一份IBM的研究報告中發表他的論文 Derivability Rendancy and Consistency of Relations Stored inLarge Data Banks 時 給這種資料庫理論定義了一個非常恰當的術語 關系型 關系型資料庫被其他兩種技術競爭 一種是Honeywell Information Systems在 年銷售的Multics RelationalData Store 另一種是密歇根大學從 年起作為實驗性設計的Micro DBMS(它開創了Codd博士兩年之後提出的規范化理論) Micro DBMS的最後一個產品已經於 年退役 這兩種技術演變成了 年發布的Oracle V 商業資料庫 在通往RDBMS的道路上 包含了很多其他公司的產品所樹立的里程碑(當然偶爾也有墓碑) 這些產品包括 IBM PRTV( ) IBM SQL/DS( ) QBE( ) Informix( ) Sybase( ) Teradata( ) Ingres 一個給其他很多成功的系統帶來靈感的開源項目 例如PostgreSQL( ) Nonstop SQL( )和MicrosoftSQL Server( )等 這些系統使用了原始SQL的不同方言 SEQUEL QUEL Informix SQL等 直到 年 人數培們才第一次試圖為SQL語言制定標准 毫無疑問 各個廠商關於SQL語言的戰爭仍在繼續

當前的RDBMS市場已經被幾個重量級的專有關系型資料庫瓜分 Oracle( %) IBM( %)和Microsoft( %) 更小的專有資料庫系統Teradata和Sybase 每種不到 %的市場份額 其他資料庫廠商 包括開源資料庫轎畢旁 大約佔有 %的市場份額

對於大型企業來說 選擇一個資料庫產品作為應用程序的基礎並不是一個簡單的任務 這不僅僅是因為資料庫系統軟體需要花費好幾萬美元的許可證費用 幾十萬美金的維護和技術支持費 而且在於與其他軟體 硬體和人力資源投資相比 資料庫軟體的投資還是一個決定整個企業架構的關鍵要素 盡管近年來從一個RDBMS遷移到另一個RDBMS變得更加容易 但考慮選擇哪一種資料庫依然會給CFO帶來噩夢

IBM DB LUW

從帶有MVS系列操作系統的大型機到z/OS 以及閉橡後來的UNIX和Windows系統 IBM在RDBMS領域都是一個長期的領跑者 IBM資料庫的當前版本是IBM DB LUW(Linux UNIX和Windows)

IBM DB 在事務處理速度上保持了絕對領先的記錄(更多信息請參見第 章) 它具有多個不同的版本 從Advanced Server Enterprise版本到免費的DB Express C版本(盡管功能上有限制) 免費的DB Express C版本可用於運行本書中的示例

直到DB 的 版本 依然遵循ANSI/ISO SQL Entry標准(請參考本章後面的內容)並支持由其他標准化組織制定的一些高級功能 例如Open Geospatial Consortium(開放地理信息聯盟) JDBC X/Open XA 它還包含了最新SQL: 標準的部分功能 除了自己內置的過程化擴展語言SQL PL之外 它還支持使用Oracle的PL/SQL語言 Java語言 甚至Microsoft的 NET家族的語言來創建存儲過程(更多內容請參見第 章)

Oracle

Oracle資料庫可以追溯到 年第一次發布的Oracle V 開始時用於VAX/VMS系統 並於 年支持UNIX系統 經過多年發展 對於SQL標準定義的絕大多數功能 Oracle資料庫都添加了相應的支持 在最新發布的Oracle g版本中功能支持達到了極致 它聲稱遵循最新SQL: 標準的很多功能

在高性能事務處理的標桿上 Oracle占據了第二名的位置 它是企業生態系統的核心 Oracle是一個安全的 健壯的 可伸縮的 高性能的資料庫系統 它統治UNIX市場長達數十年 除了對SQL標準的支持之外 Oracle還提供了一種內置的過程化語言PL/SQL(關於過程化擴展的更多內容 請參見第 章) 另外它還支持通用的程序設計語言 例如Java

在寫作本書之時 Oracle的最新版本是Oracle g 只有Oracle g有免費的速成版 該版本在數據存儲的容量和RDBMS能夠利用的處理器(CPU)數量上存在一定的限制 速成版完全支持本書所討論的所有SQL功能

Microsoft SQL Server

SQL Server來源於Microsoft Ashton Tate和Sybase合作的結果 開始的目標是改寫已有的 僅適用於UNIX的Sybase SQL Server資料庫 使之適用於新的IBM操作系統OS/ Ashton Tate隨後退出了這一合作 IBM OS/ 操作系統也逐漸被人淡忘 Microsoft和Sybase為了分享成果 開始小心地避免觸犯彼此 Microsoft致力於發展並支持Windows和OS/ 系統上的SQL Server 而Sybase則致力於UNIX平台 盡管在SQL Server的核心技術上Microsoft依然採用了相當多的Sybase技術 但雙方的合作關系於 年正式結束 Microsoft於 年發布了Microsoft SQLServer 它消除了Sybase余留的痕跡 為世界(Windows系統的世界)帶來了一個完全嶄新的RDBMS系統 時至今日 Microsoft占據了RDBMS大約 %的市場份額 而在Windows系統上它占據了至高無上的位置

在寫作本書之時 最新版本是Microsoft SQL Server Release Microsoft還提供了一個免費但有限制的Express版本 它支持本書所介紹的全部SQL功能

Microsoft Access

Microsoft Access也被稱為Microsoft Office Access 它是一個桌面型關系資料庫(相對來說是關系型的) Microsoft Access的設計目標是成為一個集成的解決方案 結合關系型資料庫引擎的要素和應用程序開發的基礎結構(配套有內置的程序設計語言和程序設計模型) 並作為一個報表平台 與本書中討論的其他RDBMS不同的是 Microsoft Access是一個基於文件的資料庫 因此它在性能和可伸縮性方面都存在固有的局限 例如 雖然最新版本的Access理論上允許最多 個並發用戶 但在實踐中超過 多個用戶就會減慢Access的性能 Access僅支持SQL標準的一個子集 它提供了許多僅在Access環境中有效的功能

Access提供的功能之一就是從遠程資料庫鏈接表的能力 該功能使Access可以作為應用程序

前端 訪問任何與ODBC/OLEDB兼容的資料庫

PostgreSQL

PostgreSQL是從美國加州伯克利大學的Michael Stonebraker所領導的一個項目演變而來的 Michael Stonebraker是關系型資料庫理論的先驅 在最初的Ingres項目以及其繼任者PostgreSQL中採用的那些原則也以各種方式被其他RDBMS產品採用 例如Sybase Informix EnterpriseDB和Greenplum

PostgreSQL的第一個版本發布於 年 之後第二年以 版本的名義發布 並保留了一個由一組專門的開發人員維護的開源項目 PostgreSQL具有很多個商業版本 最著名的是EnterpriseDB 一個私人公司為該產品提供企業支持(以及大量專有的管理工具) 在一些苛刻的企業級應用環境中 很多高端客戶(例如Sony和Vonage)都採用了開源的RDBMS 這充分證明了EnterpriseDB的性能

在對SQL標準的支持方面 PostgreSQL可以說是最接近SQL標準的 另外它還提供了很多在其他資料庫中所沒有的功能 與它的開源夥伴(例如MySQL)不同 PostgreSQL從一開始就提供了參照完整性和事務支持 PostgreSQL內置了對PL/pgSQL過程化擴展語言的支持 另外實際上還具有適配其他任何語言來實現過程化擴展的功能

MySQL

MySQL最先是由Michael Widenius和David Axmark於 年開發的 並於 年發布了第一個版本 MySQL最初定位為一個輕量級的快速資料庫 用於作為數據驅動型網站的後台資料庫 盡管MySQL缺乏更加成熟的RDBMS產品所具有的許多功能 但在提供信息服務的速度上非常快 對於很多場合來說都已經 足夠好 (為了達到真正的快速 MySQL避開了參照完整性約束和事務支持 更多內容請參見第 章和第 章) 另外 MySQL有著無法抗拒的價格 它是免費的 因此 在中小規模的用戶群中 MySQL成為最流行的關系型資料庫 在資料庫產品的市場上 很多其他的免費產品在功能上都有所缺乏或者帶有近乎商業炒作的宣傳 資料庫產品的巨人 Oracle IBM Microsoft和Sybase在那時也都沒有提供各自RDBMS產品的免費速成版 在 年 Sun Microsystems公司收購了MySQL 隨後Sun公司又被Oracle收購

目前 Oracle提供了一個帶有商業支持的MySQL版本和一個Community Edition版本 伴隨著這一收購 出現了大量分支版本 例如MariaDB和 Percona Server 它們在通用公共許可證(General PublicLicense GPL)下繼續保持免費狀態 GPL是一種限制最小的開源許可證

MySQL的最新版本是 MySQL 也已經指日可待 它是多平台的(Linux/UNIX/Windows) 並且支持SQL: 的絕大多數功能 其中一些功能依賴於選定的配置選項(例如 存儲引擎)

存儲引擎選項是MySQL獨一無二的特性 它允許採用不同的方式處理不同的表類型 每一種引擎都有獨特的功能和一定的限制(例如事務支持 聚集索引 存儲限制等) 可以採用不同的存儲引擎選項來創建MySQL資料庫中的表 默認使用的是MyISAM引擎

HSQLDB和OpenOffice BASE

超結構化查詢語言資料庫(Hyper Structured Query Language Database HSQLDB)是一個用Java程序設計語言實現的關系型資料庫管理系統 它是伯克利軟體發行(BSD)許可證(這個許可證相當寬松)下的一個開源資料庫

HSQLDB是OpenOffice BASE自帶的默認RDBMS引擎 OpenOffice BASE是一個桌面型資料庫 被定位於和Microsoft Access進行市場競爭 OpenOffice BASE也是一個關系型資料庫 它健壯 功能豐富且相當快速 支持多種平台 包括Linux 各種版本的UNIX和Microsoft Windows OpenOffice BASE聲稱幾乎完全遵循SQL: 標准 該標准包含了本書所討論的絕大多數SQL子集

改寫過的HSQLDB可以作為OpenOffice 套件組件BADE的一個嵌入的後端 並從 版本開始成為OpenOffice 套件中的一部分 與Microsoft Access類似 假如有適當的驅動程序的話 OpenOffice BASE可以連接到多種不同的RDBMS 在OpenOffice BASE產品中 已經包含了大量可用的Java Database Connectivity(JDBC)和ODBC(Open Database Connectivity)驅動程序

隨著Oracle收購了OpenOffice 而其在Oracle的資助下作為開源項目的狀態並不明確 OpenOffice 社區決定啟動一個名為LibreOffice的新項目 意圖在原來的BSD許可證的授權下將LibreOffice作為一個免費軟體 實現OpenOffice的所有功能

關系型資料庫並不是資料庫領域中唯一的主角 一些似乎已經被關系型資料庫理論打敗的舊技術在更快和更便宜的硬體以及軟體創新的幫助下卷土重來 對更高性能和更容易創建應用程序的需求催生了對列式資料庫(columnar database)和面向對象資料庫 使 將所有數據放在一個桶中 方法可行的框架 特定領域擴展(例如測地數據管理或多媒體)以及各種數據訪問機制的研究 第 章將討論這些話題

返回目錄 SQL實戰新手入門

編輯推薦

Oracle索引技術

高性能MySQL

lishixin/Article/program/SQL/201311/16492

❽ 在MYSQL中怎麼寫SQL語句,能取到表中按ID降序排列的前五條記錄

我們知道從 MySQL 表中使用 SQL SELECT 語句來讀取數據。

如果我們需要對讀取的數據進行排序,我們就可以使用 MySQL 的 ORDER BY 子句來設定你想按哪個欄位哪種方式來進行排序,再返回搜索結果。

具體語法參考:

以下是 SQL SELECT 語句使用 ORDER BY 子句將查詢數據排序後再返回數據:

from 樹懶學堂 - 一站式數據知識平台

  • 你可以使用任何欄位來作為排序的條件,從而返回排序後的查詢結果。

  • 你可以設定多個欄位來排序。

  • 你可以使用 ASC 或 DESC 關鍵字來設置查詢結果是按升序或降序排列。 默認情況下,它是按升序排列。

  • 你可以添加 WHERE…LIKE 子句來設置條件。

所以,樓主所問的問題答案應該為:select ... from ... order by ID desc limit(0,5)

❾ mysql的sql語句怎麼寫

哥,你把這些前面加個聚合函數不就得了,max或者sum都行 然後分下組

❿ SQL實戰新手入門:前言

前言

信息泛濫並沒有減弱的趨勢 人們被來自電視 Internet和塞滿郵箱的廣告等各種各樣的信息所淹沒 令人遺憾的是 隨著信息數量的增長 信息的質量卻在急劇下降 圖書被期刊和雜志取代 然後被報紙 Web頁面 博客取代 最終又被推特(eet)取代 信息量變得越來越龐大 也變得越來越不可信賴 更糟糕的是 在Internet時代數據永遠不會真正消失 它不停地累積 隱藏在各種文件 日誌和資料庫中 根據Google的前CEO Eric Schmidt的說法 現在人類在兩天之內創造的數據量就相當於自從出現書寫記錄到 年(或者任何一年)所創造的數據 即現在只需要兩天就會創造出大約 EB(即 億GB)的數據 這一步伐還在不停地加速

當以電子化方式存儲數據變成現實之後 它也帶來了自己的規則 要理解數據的含義 人們必須去學習相應的語言 關系資料庫理論為人們帶來了對電子化數據的掌控能力 它採用結構化查詢語言(Structured Query Language SQL)來處理數據 到目前為止 關系資料庫獲取了巨大的成功

自從 世紀 年代第一次提出關系資料庫以來 關系資料庫和SQL已經取得了長足的進步 關系資料庫和SQL中包含的那些概念對於初學者來說可能並不直觀 本書將為讀者抽絲剝繭 使讀者理解SQL背後的原理 既讓讀者了解SQL的強大功能 也了解它存在的局限

讀者對象

本書從入門知識開始介紹 讀者無須具備SQL或關系資料庫的預備知識 本書將帶領讀者走入SQL的發現之旅 讀者將親自創建示例資料庫 它不僅結合了本書中所介紹的SQL概念 還將通過幾次反復重構引入數據建模 查詢調整和優化的概念 本書還介紹了一些適用於每一種SQL的最佳實踐

本書適合於准備學習關系資料庫程序設計的計算機程序員 也適合那些希望從資料庫中釋放更強大威力的商業用戶 SQL是關系資料庫世界的通用語言 每一個對學習SQL這門強大語言感興趣的人都適合閱讀本書

先前已具有一定資料庫使用經驗的讀者可以略過前兩章 直接跳到更高級的內容 當然也可以復習一下這兩章中介紹的重要原則

內容提要

本書介紹了當前已發布的SQL標准SQL: 把最主要的精力放在了SQL語言實際的運用上 強調了不同SQL實現之間存在的差異 本書介紹了很多示例 在這些示例中使用了最新版本的現代資料庫系統對SQL的具體實現 這些資料庫要麼是可以免費下載的Express版本 要麼是免費的開源軟體 另外 本書還介紹了目前最流行的桌面型資料庫軟體Microsoft Access和OpenOffice 本書中介紹的資料庫包括

IBM UDB

Oracle g

Microsoft SQL Server / /

MySQL /

PostgreSQL

Microsoft Access /

帶有嵌入式 HSQLDB的OpenOffice BASE

本書結構

本書從整體著眼 向讀者介紹了關系資料庫的一般概念 特別是SQL中的概念 通過一個反復重構資料庫的過程 循序漸進地向讀者介紹了資料庫的各種知識 在這一過程中 對於開始時介紹的每一個概念 隨後都進行了更詳細的分析 從而啟發讀者理解這些概念背後的關聯性

第 章簡要地介紹了SQL及其背後的關系理論 這一章只是浮光掠影般地介紹了資料庫最基本的概念 後面的各章都在此基礎上展開 該章介紹了數據與信息的區別 一些基本的原理還需要在後面章節中進一步解釋 這一章還對本書中所使用的關系資料庫管理系統(RDBMS)進行了一個概述

第 章對這些概念進行了更深入的介紹 根據關系模型的分析 應該將無組織的數據結構化 使之符合關系模型的要求 即將 冰箱磁鐵 模式轉換為 斗櫃 模式 然後再將其轉換為關系資料庫中實際的表

第 章進一步介紹了關系模型 初步介紹了資料庫的基本設計和規范化的基本過程 這一章還介紹了一些對規范化數據執行查詢的SQL工具 此外 該章還介紹了動態SQL

SQL是一種基於集合的語言 這使得它既有強大的功能 也存在一定的局限 第 章討論了最流行的過程化擴展(例如Oracle的PL/SQL和Microsoft的Transact SQL) 這一章還介紹了SQL函數 SQL函數可以作為一種補充手段 以彌補在處理基於記錄的邏輯時SQL存在的固有不足

第 章介紹了聚合數據 總結了這種方式的威力和局限 該章將前面章節中介紹過的SQL聚合函數提高到了一個新的層次 演示了如何使用SQL來獲取數據的聚合值

第 章介紹了子查詢 當數據集是交錯的 查詢數據需要依靠多層次的數據篩選時 可以將一個查詢作為另一個查詢的篩選條件 可以調整SQL語句 用JOIN代替子查詢 這是貫穿本書的主題之一

SQL的強大功能在於處理存儲在多個關系表中的數據 第 章介紹了SQL如何在單個數據集中聯合這些關系表的數據

本書介紹的是基本的SQL概念 打開了進一步學習SQL的大門 第 章是SQL發現之旅的下一站 它介紹了進一步學習SQL時應該考慮的問題

第 章介紹了性能優化技術 描述了在優化查詢和資料庫環境時常用的方法和最佳實踐 第 章討論了多用戶環境中關系資料庫的工作原理 介紹了SQL中實現的處理並發數據訪問的機制

SQL所有的操作都與結構和順序有關 畢竟它是結構化查詢語言 真實的數據可以是各種規模和結構 第 章介紹了SQL如何處理半結構化數據(XML文檔) 非結構化數據(文本文件)和二進制數據(例如圖片和聲音)

第 章簡要地討論了資料庫領域的最新發展 例如列式資料庫 NoSQL資料庫 對象資料庫和面向服務的架構(SOA) 以及它們與SQL的關系

對於本書所討論的每一種資料庫 附錄A按部就班地描述了安裝示例資料庫Library的過程 以及如何使用特定的指令生成Library資料庫的初始數據 可以從本書支持網站上下載到這些SQL腳本

對於本書介紹的關系資料庫軟體包 附錄B提供了一個詳細的安裝步驟

附錄C描述了每一種資料庫所提供的工具 使用這些工具可以訪問 創建資料庫對象 操縱存儲在表中的數據

附錄D介紹了開源項目SQuirreL Universal SQL Client 可以通過Java Database Connectivity(JDBC)介面 使用SQuirreL Universal SQL Client來訪問各種資料庫 該附錄詳細地介紹了如何安裝和配置該軟體

學習本書的條件

為了充分利用本書 建議下載和安裝本書中使用的關系資料庫軟體 這些軟體絕大多數都是免費的 或者具有免費的試用版 可以按照附錄B中介紹的步驟來安裝這些軟體

支持網站和代碼

在學習每一章時 建議下載相應的SQL腳本 創建並生成資料庫 可以從 wrox 或者 agilitator 下載到本書的代碼 在支持網站中 可以使用搜索框來查找指定名稱的圖書 在找到指定的圖書之後 單擊Download Code鏈接就可以訪問允許下載的文件 可以通過HTTP或FTP下載這些代碼 所有的文件都是以ZIP格式保存

本書的ISBN是 通過ISBN號查找本書 要比通過圖書名稱來查找更加方便

此外 還可以從Wrox的下載頁面 wrox /dynamic/books/download aspx下載到本書的代碼 只要單擊Discovering SQL: A Hands On Guide for Beginners鏈接 就可以訪問允許下載的文件

勘誤表

盡管我們已經盡了最大的努力來保證文章或代碼中不出現錯誤 但是錯誤總是難免的 如果您在本書中找到了錯誤 例如拼寫錯誤或代碼錯誤 請告訴我們 我們將非常感激 通過勘誤表 可以讓其他讀者避免走入誤區 當然 這還有助於提供更高質量的信息

要在網站上找到本書英文版的勘誤表 可以登錄// wrox 通過Search工具或書名列表查找本書 然後在本書的細目頁面上 單擊Book Errata鏈接 在這個頁面上可以查看到Wrox編輯已提交和粘貼的所有勘誤項 完整的圖書列表還包括每本書的勘誤表 網址是 wrox /misc pages/booklist s

如果你在勘誤表上沒有找到錯誤 那麼可以到 wrox /contact/techsupport s上完成上面的表格 並把找到的錯誤發送給我們 我們將會核查這些信息 如果無誤的話 會把它放置到本書的勘誤表中 並在本書的後續版本中更正這些問題

p p wrox

要與作者和同行討論 請加入p p wrox 上的P P論壇 這個論壇是一個基於Web的系統 便於您張貼與Wrox圖書相關的消息和相關技術 與其他讀者和技術用戶交流心得 該論壇提供了訂閱功能 當論壇上有新的消息時 它可以給您傳送感興趣的論題 Wrox作者 編輯和其他業界專家和讀者都會到這個論壇上來探討問題

在//p p wrox 上 有許多不同的論壇 它們不僅有助於閱讀本書 還有助於開發自己的應用程序 要加入論壇 可以遵循下面的步驟

( ) 進入p p wrox 單擊Register鏈接

( ) 閱讀使用協議 並單擊Agree按鈕

( ) 填寫加入該論壇所需要的信息和自己希望提供的其他信息 並單擊Submit按鈕

( ) 你會收到一封電子郵件 其中的信息描述了如何驗證賬戶和完成加入過程

不加入P P也可以閱讀論壇上的消息 但要張貼自己的消息 就必須加入該論壇

加入論壇後 就可以張貼新消息 回復其他用戶張貼的消息 可以隨時在Web上閱讀消息 如果要讓該網站給自己發送特定論壇中的消息 可以單擊論壇列表中該論壇名旁邊的Subscribe to this Forum圖標

關於使用Wrox P P的更多信息 可閱讀P P FAQ 了解論壇軟體的工作情況以及P P和Wrox圖書的許多常見問題 要閱讀FAQ 可以在任意P P頁面上單擊FAQ鏈接

返回目錄 SQL實戰新手入門

編輯推薦

Oracle索引技術

高性能MySQL

lishixin/Article/program/SQL/201311/16496