1. 程式人生 > 實用技巧 >數論大合集(柿子版)

數論大合集(柿子版)

資料庫

什麼是資料庫?

概念: 長期存放在計算機內,有組織,可共享的大量資料的集合,是一個數據“倉庫”

作用: 儲存,並能安全管理資料,減少冗餘

資料庫分為:關係型資料(SQL)和非關係型資料(NOSQL)

關係型資料庫:MySQL,Oracle,SQL Server,SQLite,DB2...

關係型資料庫通過外來鍵關聯來建立表與表之間的關係

非關係型資料庫:Redis,MongoDB

非關係型資料通常指資料以物件的形式儲存在資料庫中,而物件之間的關係通過每個物件自身的屬性來決定

什麼是DBMS?

資料庫管理系統(DataBase Management System)

MySQL

概念: 是現在流行的開源的,免費的關係型資料庫

歷史: 有瑞典MySQL AB公司開發,目前屬於Oracle旗下產品

特點:

  1. 免費,開源資料庫

  2. 小巧,功能齊全

  3. 使用健康

  4. 可執行與windows或linux作業系統

  5. 可適用於中小型甚至大型網站應用

基本的資料庫操作命令

update user set password=password('123456')where user='root';//修改密碼
flush privileges;//重新整理資料庫
show databases;//顯示所有資料庫
use dbname;//開啟某個資料庫
show tables;//顯示資料庫mysql中所有的表
describe user;//顯示錶mysql資料庫中user表的列資訊
create datebase name;//建立資料庫
use databasename;//選擇資料庫

資料庫操作

建立資料庫:create database [in not exists] 資料庫名;
刪除資料庫:drop database [if not exists] 資料庫名;
檢視資料庫:show databases;
使用資料庫:use 資料庫名;

建立資料表

create table [if not exists] `表明`(
'欄位名1' 列型別 [屬性][索引][註釋],
'欄位名2' 列型別 [屬性][索引][註釋],
....
'欄位名n' 列型別 [屬性][索引][註釋]
)[表型別][表字符集][註釋];

資料值和列型別

型別說明儲存需求
tinyint
非常小的資料 1位元組
smallint 較小的資料 2位元組
mediumint 中等大小的資料 3位元組
int 標準整數 4位元組
bigint 較大的整數 8位元組
float 單精度浮點數 4位元組
double 雙精度浮點數 8位元組
decimal 字串形式的浮點數 9位元組

字串型別

型別說明最大長度
char[(M)] 固定長字串,檢索快但費空間,0 <= M <= 255 M字元
varchar[(M)] 可變字串 0 <= M <= 65535 變長度
tinytext 微型文字串 2^8-1位元組
text 文字串 2^16-1位元組

日期和時間型數值型別

型別說明取值範圍
DATE YYYY-MM-DD,日期格式 1000-01-01~9999-12-31
TIME Hh:mm:ss,時間格式 -838:59:59~838:59:59
DATETIME YY-MM-DD hh:mm:ss 1000-01-01 00:00:00~9999-12-31 23:59:59
TIMESTAMP YYYYMMDDhhmmss格式表示的時間戳 197010101000000~2037年的某個時刻
YEAR YYYY格式的年份值 1901~2155

資料欄位屬性

  1. UnSigned

    無符號的,宣告該資料列允許負數

  2. ZEROFILL

    0填充的,不足位數的用0來填充,如int(3),5則為005

  3. Auto_InCrement

    自動增長的,每新增一條資料,自動在上一個記錄數上加1(預設),通常用於設定主鍵,且為整數型別,可定義起始值和步長

  4. NULL 和 NOT NULL

    預設的,用於設定預設值

資料表的型別

create table 表名(
--Mysql註釋
--1.#單行叔叔
--2./*...*/多行註釋
)engine = myisam(or innodb)

MySQL的資料表的型別:MyISAM,InnoDByISAM,BOB,CSV

MyISAM 與 InnoDB

名稱MyISAMInnoDB
事務處理 不支援 支援
資料行鎖定 不支援 支援
外來鍵約束 不支援 支援
全文索引 支援 不支援
表空間大小 較小 較大,約2倍

MyISAM:適用於節約空間及相應速度

InnoDB:適用於安全性,事務處理及多使用者操作資料表

資料表的儲存位置

MySQL資料表以檔案方式存放在磁碟中,包括表文件,資料檔案,以及資料庫的選項檔案。

位置:MySQL安裝目錄\data\下存放資料表,目錄名對應資料庫名

注意:

  1. *.frm -- 表結構定義檔案

  2. *.MYD--資料檔案(data)

  3. *.MYI--索引檔案(index)

設定資料表字符串:CREATE TABLE 表名()CHARSET = utf8;

修改資料

修改表(ALTER TABLE)
修改表名:ALTER TABLE 舊錶名 RENAME AS 新表名
新增欄位:ALTER TABLE 表名 ADD欄位名 列屬性[屬性]
修改欄位:
ALTER TABLE 表名 MODIFY 欄位名 列型別[屬性]
ALTER TABLE 表名 CHANGE 舊欄位名 新欄位名 列屬性[屬性]
刪除欄位:ALTER TABLE 表名 DROP 欄位名
刪除資料表:DROP TABLE [IF EXISTS] 表名
IF EXISTS為可選,判斷是否存在該資料庫
刪除不存在的資料表會丟擲錯誤

其他

反引號(`)為識別符號
註釋:
1.單行註釋 #註釋內容
2.多行註釋 /*註釋內容*/
模式萬用字元:
_ 任意單個字元
% 任意多個字元,甚至包括零字元
單引號需要進行轉義 \'
清除已有語句:\c