資料庫知識 基礎篇

2021-07-31 03:58:36 字數 4304 閱讀 4208

一定要記住,sql 對大小寫不敏感!
某些資料庫系統要求在每條sql命令的末端使用分號。在我們的教程中不用分號。分號是在資料庫系統中分隔每條 sql 語句的標準方法,這樣就可以在對伺服器的相同請求中執行一條以上的語句如果您使用的是 ms access 和 sql server 2000,則不必在每條 sql 語句之後使用分號,不過某些資料庫軟體要求必須使用分號。

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 - 刪除索引

sql select 例項

如需獲取名為 「lastname」 和 「firstname」 的列的內容(從名為 「persons」 的資料庫表),請使用類似這樣的 select 語句:

select lastname,firstname from persons
如果需要獲取persons表中的所有條目,可以使用以下語句:

select * from persons
distinct

對於查詢的結果集出現重複資料的問題,我們可以使用」distinct」關鍵字對查詢結果去重,這樣的到的公司都是唯一的。

select distinct company from orders
where 子句

如需有條件地從表中選取資料,可將 where 子句新增到 select 語句。

在where 語句中,我們可以使用下列關鍵字或者運算子:

=          等於

<> 不等於

> 大於

< 小於

>= 大於等於

<= 小於等於

between 在某個範圍內

like 搜尋某種模式

如果只希望選取居住在城市 「beijing」 中的人,我們需要向 select 語句新增 where 子句:

select * from persons where city='beijing'
引號的使用

請注意,我們在例子中的條件值周圍使用的是單引號。

sql 使用單引號來環繞文字值(大部分資料庫系統也接受雙引號)。如果是數值,請不要使用引號。

文字值:

這是正確的:

select * from persons where firstname='bush'

這是錯誤的:

select * from persons where firstname=bush

數值:這是正確的:

select * from persons where year>1965

這是錯誤的:

select * from persons where year>'1965'

and 和 or 運算子

and 和 or 可在 where 子語句中把兩個或多個條件結合起來。

如果第乙個條件和第二個條件都成立,則 and 運算子顯示一條記錄。

如果第乙個條件和第二個條件中只要有乙個成立,則 or 運算子顯示一條記錄。

使用 and 來顯示所有姓為 「carter」 並且名為 「thomas」 的人:

select * from persons where firstname='thomas' and lastname='carter'
使用 or 來顯示所有姓為 「carter」 或者名為 「thomas」 的人:

select * from persons where firstname='thomas' or lastname='carter'
我們也可以把 and 和 or 結合起來(使用圓括號來組成複雜的表示式):

select * from persons where (firstname='thomas' or firstname='william') and lastname='carter'
order by 語句

order by 語句用於根據指定的列對結果集進行排序。

order by 語句預設按照公升序對記錄進行排序。

如果您希望按照降序對記錄進行排序,可以使用 desc 關鍵字。

公升序asc 降序desc

以字母順序顯示公司名稱:

select company, ordernumber from orders order by company
以字母順序顯示公司名稱(company),並以數字順序顯示順序號(ordernumber):

select company, ordernumber from orders order by company, ordernumber
以逆字母順序顯示公司名稱:

select company, ordernumber from orders order by company desc
以逆字母順序顯示公司名稱,並以數字順序顯示順序號:

select company, ordernumber from orders order by company desc, ordernumber asc
insert into 語句用於向**中插入新的行。

語法

insert into 表名稱 values (值1, 值2,....)
我們也可以指定所要插入資料的列:

insert into table_name (列1, 列2,...) values (值1, 值2,....)
插入新的行 其中gates,bill 等值是和表字段一一對應的

insert into persons values ('gates', 'bill', 'xuanwumen 10', 'beijing')
在指定的列中插入資料

insert into persons (lastname, address) values ('wilson', 'champs-elysees')
update 語句用於修改表中的資料。

語法:

update 表名稱 set 列名稱 = 新值 where 列名稱 = 某值
我們為 lastname 是 「wilson」 的人新增 firstname:

update person set firstname = 'fred' where lastname = 'wilson'
update person set address = 'zhongshan 23', city = 'nanjing' where lastname = 'wilson'
delete 語句用於刪除表中的行

delete from 表名稱 where 列名稱 = 值
「fred wilson」 會被刪除:

delete from person where lastname = 'wilson'
刪除所有行

可以在不刪除表的情況下刪除所有的行。這意味著表的結構、屬性和索引都是完整的:

delete from table_name
或者

delete * from table_name

資料庫基礎知識 概念篇

1.資料庫,伺服器,表關係 什麼是資料庫 資料庫是資料的集合,具有統一的結構形式並存放於統一的儲存介質內,是多種應用資料的整合,並可被各個應用程式所共享。2.最基礎的建庫 表 插入資料 查詢資料 建立資料庫 create database name 使用資料庫 use database 建立表 cr...

Java 資料庫 知識重點 資料庫篇

資料庫知識 資料庫隔離級別有哪些,各自的含義是什麼,mysql預設的隔離級別是是什麼。什麼是幻讀。mysql有哪些儲存引擎,各自優缺點。高併發下,如何做到安全的修改同一行資料。樂觀鎖和悲觀鎖是什麼,innodb的標準行級鎖有哪2種,解釋其含義。sql優化的一般步驟是什麼,怎麼看執行計畫,如何理解其中...

資料庫基礎知識

資料定義 定義基本表 create table 表名 列名 資料型別 列級完整性約束條件 列名 資料型別 列級完整性約束條件 表級完整性約束條件 後面用到的表 1 學生 表 student 由學號 sno 姓名 sname 性別 s 年齡 sage 所在系 sdept 5個屬性組成,可記為 stud...