前言:
1.本書在知識點提煉時側重於實踐效果,所以有些理論部分的知識點不會涉及或者幾筆帶過。
2.在語法實踐時將會帶入更多的例子和問題以便於理解資料庫語法。
3.在所有關於sql基礎教程的文章中的語句全部都是用sql server來編寫的。
1.1 資料庫是什麼
(1)資料庫管理系統(database management system,dbms):用來管理資料庫的計算機系統。
(2)資料庫(database,db):將大量資料儲存起來並且通過計算機加工而成的可以進行高效訪問的資料集合。
(3)dbms的種類:
1.層次資料庫(hierarchical database,hdb)
2.關聯式資料庫(relational database,rdb) — 應用最為廣泛,也是這本書中所介紹的
3.物件導向資料庫(object oriented database,oodb)
4.xml資料庫(xml database, xmldb)
5.鍵值儲存系統(key-value store,kvs)
1.2 資料庫的結構
(1)表:在關聯式資料庫中用來管理資料的二維表
(2)字段:表的列(垂直方向)
(3)記錄:表的行(水平方向)
(4)單元格:行和列交匯的方格
add:
(5)關聯式資料庫必須以行為單位進行資料編寫,乙個單元格只能輸入乙個資料。
1.3 sql概要
(1) sql語句及其種類:
ddl(data definition language,資料定義語言)用來建立或者刪除儲存資料用的資料庫以及資料庫中表等物件。ddl中有一下幾種指令。
a. create:建立資料庫和表等物件
b. drop:刪除資料庫和表等物件
c.alter:修改資料庫和表等物件的結構
dml(data manipulation language,資料操縱語言)用來查詢或者變更表中的記錄。dml包括以下幾種指令。
a. select:查詢表中的資料
b. insert:向表中插入新資料
c. update:更新表中的資料
d. delete:刪除表中的資料
dcl(data control language,資料控制語言)用來確認或者取消對資料庫中的資料進行的變更。除此之外,還可以對rdbms的使用者是否有許可權運算元據庫中的物件(資料庫中的表等)進行設定。dcl包含以下幾種指令。
a. commit:確認對資料庫中的資料進行的變更
b. rollback:取消對資料庫中的資料進行的變更
c. grant:賦予使用者操作許可權
d. revoke:取消使用者的操作許可權
(2)sql的基本書寫規則
4. sql語句要以分號(;)結尾
5. sql語句不區分大小寫(資料除外):最好按照以下要求書寫sql語句
關鍵字大寫,表名的首字母大寫,其餘小寫
6. 單詞需要用半形空格或者換行來分隔
1.4 表的建立
(1)資料庫的建立(create database語句)
語法:create database 《資料庫名稱》;
eg:建立資料庫名字為a的資料庫
create database a;
(2)表的建立(create table語句)
語法:create table 《表名》 (
《列名1> 《資料型別》 《該列所需約束》,
《列名2> 《資料型別》 《該列所需約束》,
…… …… ……
《該錶的約束1>, 《該錶的約束2>, ……);
eg:建立product表,要求有位元組長度為4列名商品序號(product_id),長度為100的可變長位元組列名商品名稱(product_name),位元組長度為32的可變長位元組列名商品種類(product_type)的三個列名要求都有非空約束,主鍵為商品序號和商品名稱。
create table product(
product_id char(4) not null,
product_name varchar(100) not null,
product_type varchar(32) not null,
primary key(product_id, product_name);
(3)命名規則:只能使用半形英文本母、數字、下劃線(_)作為資料庫、表和列的名稱。
attention:在同乙個資料庫中不能建立兩個相同名稱的表,在同乙個表中也不能建立兩個名稱相同的列
(4)資料型別的指定:四種基本資料型別
integer型:整數型
char型:定長字串型
varchar型:可變長字串型
date型:日期型
(4)約束的設定:略(後面章節有詳細內容)
(5)鍵:在指定特定資料時使用的列的組合。主鍵:可以特定一行資料的列。
1.5表的刪除和更新
(1)表的刪除(drop table)【後面會介紹另外乙個刪除語法為delete,並且介紹兩者的區別】
語法:drop table 《表名》;
(2)表定義的更新(alter table語句)
新增列語法:alter table 《表名》 add 《列名》;
刪除列語法:alter table 《表名》 drop 《列名》;
第一章練習:
1.1 編寫一條create table語句,用來建立乙個包含表1-a中所列各項的表addressbook(位址簿),並為regist_no(註冊編號)列設定主鍵約束。
列的含義
列的名稱
資料型別
約束註冊編號
regist__no
整數型不能為null、作為主鍵
姓名name
可變長字串型別(長度為128)
不能為null
住址address
可變長字串型別(長度為256)
不能為null
**號碼
tel_no
定長字串型別(長度為10)
郵箱位址
mail_address
定長字串型別(長度為20)
create table addressbook(
regist_no integer not null,
name varchar(128) not null,
address varchar(256) not null,
tel_no char(10),
mail_address char(20),
primary key (regist_no));
alter table addressbook add postal_code char(8) not null;
1.3 編寫語句來刪除addressbook表。
drop table addressbook;
1.4 編寫語句來恢復刪除掉的addressbook表。(一般來說刪除表是無法恢復的,如在事務控制條件下則可以。)
transcation;
drop table addressbook;
rollback;
SQL基礎教程 資料庫是什麼(第一章第一節)
將大量資料儲存起來,通過計算機加工而成的可以進行高效訪問的資料集合稱為資料庫。用來管理資料庫的計算機系統稱為資料庫管理系統 dbms 通過文字檔案或者電子指標軟體來管理資料的方法非常簡便,但也有不足的。無法提供操作大量資料所需的格式 要想瞬間從幾十萬或者上百萬的資料中獲取想要的資料,必須把資料儲存位...
Python基礎教程筆記 第一章
表示整除,當匯入 future 模組中的 version 時,表示正常的的除法,此時可用 表示整除,不論數字是整型還是浮點型,都可以用 表示整除。表示冪次方 例如 2 3 表示2 的3次方 結果為 8 運算子的優先順序比負號 的運算子優先順序高,所以 3 2 9 3 2 9 pow 3,2 函式也表...
Python基礎教程 第一章 基礎知識
互動式直譯器 演算法數和表示式 算數運算子 整除 在2.x版本中可以from future import division求餘運算子 x y等價於x x y y 可用於負數求餘,10 3 10 10 3 3 2 理解要點 整除運算向下圓整結果 乘方運算子 變數 名稱只能由字母 數字和下劃線組成,不能...