數據庫
數據庫規(guī)范
規(guī)范化是數據庫設計的核心思想鸣皂,規(guī)范化涉及在數據庫的表格中建立關系铐炫,對有關系但是存在于不同表中的數據進行匹配。
數據規(guī)范化表格的規(guī)則如下:
1.每行擁有的列數相同,如果有兩個值主鍵相同蝶柿,我們要將其分成不同的行杈曲;
2.表格的一列或多列組成鍵驰凛,它確定每行要表示什么;
3.在一個規(guī)范化表格中担扑,非鍵列對鍵進行描述恰响,它們不描述其他非鍵列;
4.在一個規(guī)范化表格中涌献,行不會對不存在關系的數據暗示其關系
SQL
SQL是專為數據庫而建立的操作命令集胚宦,是一種功能齊全的數據庫語言。
數據類型
文本和字符串型
text —任意長度的字符串燕垃,如Python str或unicode類型枢劝。
char(n) —恰好為n個字符的字符串。
varchar(n) —最多n個字符的字符串卜壕。
數值型
integer —整數值您旁,如Python int。
real —浮點值轴捎,如Python float被冒。精確到6位小數。
double precision —高精度浮點值轮蜕。精確到15位小數昨悼。
decimal —準確小數值。
日期和時間型
date —日歷日期跃洛,包括年率触、月、日汇竭。
time —時間葱蝗。
timestamp —日期和時間。
訪問數據庫
SQLite
SQLite是一個關系數據庫管理系統(tǒng)细燎。
操作數據庫之前两曼,我們使用SQLite的sqlite3命令被用來創(chuàng)建新的SQLite數據庫。
$sqlite3 DatabaseName.db
通過此命令玻驻,可以進入sqlite管理系統(tǒng)中悼凑,鏈接DatabaseName.db數據庫偿枕。
嘗試一些基本的命令行操作
查看數據庫
查看sqlite中的數據庫
.database
help
無論如何,都可以輸入.help命令户辫,以獲取可用的命令行操作的清單
table
數據.table可以看到數據庫中的所有數據表渐夸。
schema
輸入.schema table_name,可以看到表格的架構
exit
當操作完成時渔欢,輸入.exit墓塌,退出數據庫
創(chuàng)建數據庫
如果數據庫之前沒有被創(chuàng)建,在使用如下命令后奥额,
$sqlite3 DatabaseName.db
會直接創(chuàng)建一個名為DatabaseName.db的數據庫苫幢。
也可用sql創(chuàng)建數據庫
CREATE DATABASE數據庫名稱
創(chuàng)建數據表
CREATE TABLE表名稱
(
列名稱1數據類型,
列名稱2數據類型,
.......
)
使用上述方法創(chuàng)建數據表,常見數據類型:Text, CHAR(size), VARCHAR(size), INT(size), FLOAT(size,d)
刪除數據表
DROP TABLE table_name;
使用上述命令可以刪除數據表
從CSV文件導入數據
sqlite> .mode csv
sqlite> .import baseball_data.csv baseball_data
更改數據表名稱
sqlite> alter table old_name rename to newname;
數據庫操作
根據上面的方法垫挨,我建立了一個baseball.db的數據庫韩肝,并建立了一個baseball數據表。
查看總行數
select count(*) from baseball;
打印結果:
count(*)
1157
找出使用右手棒拂,身高在72~75之間,體重最高的5個人的信息
代碼如下:
select * from baseball
where handedness == 'R' and height >= 72 and height <= 75
order by weight
limit 5;
打印結果:
"Ramon Manon",R,72,150,0.0,0
"Manny Trillo",R,73,150,0.263,61
"Dave Concepcion",R,74,155,0.267,101
"Frank Taveras",R,72,155,0.255,2
"Rafael Vasquez",R,72,160,0.0,0