數(shù)據(jù)庫(kù)相關(guān)
- navicat工具創(chuàng)建的數(shù)據(jù)庫(kù)(SQLite3)
- 屬性的類型(5種)
- blob 二進(jìn)制類型
- integer 整型
- real 浮點(diǎn)型
- text 文本類型
- null 空
- 主鍵
- 主鍵(primary key)用來(lái)唯一的標(biāo)示某一條記錄
- 主鍵可以是一個(gè)字段或多個(gè)字段
- 主鍵設(shè)計(jì)的原則
- 主鍵應(yīng)當(dāng)是對(duì)用戶沒(méi)有意義
- 永遠(yuǎn)也不要更新主鍵
- 主鍵不應(yīng)該包含動(dòng)態(tài)變化的數(shù)據(jù)
- 主鍵應(yīng)當(dāng)有計(jì)算機(jī)自動(dòng)生成
- 屬性的類型(5種)
- SQL語(yǔ)言簡(jiǎn)介
- SQL(structured query language)結(jié)構(gòu)化查詢語(yǔ)言,是一種對(duì)關(guān)系型數(shù)據(jù)進(jìn)行定義和操作的語(yǔ)言
- SQL語(yǔ)句中的CURD(Create Retrieve Update Delete)
- 在SQL語(yǔ)句中不區(qū)分大小寫(xiě),每條語(yǔ)句都必須以分號(hào)結(jié)尾
- SQL語(yǔ)句的種類
- 數(shù)據(jù)定義語(yǔ)句(DDL Data Definition Language) 包括 crate drop alter 等操作
- 數(shù)據(jù)操作語(yǔ)句(DML Data Manipulation Language) 包括 insert delete update等操作
- 數(shù)據(jù)查詢語(yǔ)句(DQL Data Query Language) select where order by
- DDL(Data Definition Language)
- 創(chuàng)建表
- 格式: create table 表名 (字段名1 字段名1類型,字段名2 字段名2類型);
- 示例: create table t_stu (name text,score real);
- 語(yǔ)句優(yōu)化:
- 原因:創(chuàng)建表時(shí),最好加個(gè)表是否已經(jīng)存在的判斷,防止語(yǔ)句多次執(zhí)行時(shí)發(fā)生判斷
- create table if not exists (字段名1 字段名1類型,字段名2 字段名2類型);
- 刪除表
- 格式: drop table 表名
- 示例: drop table t_stu
- 語(yǔ)句優(yōu)化: drop tabel if exists t_stu
- 修改表
- 修改表名
- alter table 舊表名 rename to 新表名
- 新增屬性
- alter table 表名 add column 列名 數(shù)據(jù)類型 限定符
- 修改表名
- 創(chuàng)建表
- 字段類型的約束
- 簡(jiǎn)單的約束
- 不能為空 not null 規(guī)定字段的值不能為空
- 不能重復(fù) unique 規(guī)定字段的值必須唯一
- 默認(rèn)值 default 指定字段的默認(rèn)值
- 主鍵的約束
- 在創(chuàng)建表的時(shí)候在一個(gè)字段類型的后面添加 primary key 表明該字段是這個(gè)表的主鍵
- 主鍵字段默認(rèn)包含了 not null 和 unique 兩個(gè)約束
- 如果想要讓主鍵自動(dòng)增長(zhǎng)(必須是integer類型),應(yīng)該增加autoincrement
- 簡(jiǎn)單的約束
- DML(Data Manipulation Language)
- 插入數(shù)據(jù) insert
- 格式: insert into 表名(字段1,字段2,...) values (字段1的值,字段2的值,...);
- 示例: insert into t_stu(name,age) values ('張三',19);
- 注意點(diǎn): 數(shù)據(jù)庫(kù)中的字符串內(nèi)容應(yīng)該用單引號(hào)''括住
- 更新數(shù)據(jù) update
- 格式: update 表名 set 字段1 = 字段1的值,字段2 = 字段2的值,...;
- 示例: update t_stu set name = '李四',age = 20;
- 注意:要帶上要更新數(shù)據(jù)的條件語(yǔ)句
- 刪除數(shù)據(jù) delete
- 格式: delete from 表名;
- 示例: delete from t_stu;
- 注意: 要帶上你要?jiǎng)h除數(shù)據(jù)的條件
- 插入數(shù)據(jù) insert
- 條件語(yǔ)句
- 作用:如果只想更新或刪除一些滿足特定條件的記錄,那就必須在DML語(yǔ)句后加上一些條件
- 條件語(yǔ)句的常見(jiàn)格式
- where 字段 = 某個(gè)值; // 等于某個(gè)值
- where 字段 is 某個(gè)值; // is 相當(dāng)于 =
- where 字段 != 某個(gè)值; // 不等于某個(gè)值
- where 字段 is not 某個(gè)值 // is not 相當(dāng)于 !=
- where 字段 > 某個(gè)值
- where 字段1 = 某個(gè)值 and 字段2 > 某個(gè)值; // and 相當(dāng)于C語(yǔ)言中的&&
- where 字段1 = 某個(gè)值 or 字段2 = 某個(gè)值; // or 相當(dāng)于C語(yǔ)言中的||
- DQL(Data Qurey Language)
- 格式
- select 字段1,字段2,... from 表名;
- select * from 表名;
- 示例:
- select name,age from t_stu;
- select * from t_stu;
- select *from t_stu where age > 10; // 條件查詢
- 格式
- 查詢相關(guān)語(yǔ)句
- 統(tǒng)計(jì)
- count(X)
- select count(*) from t_stu
- 計(jì)算所有記錄個(gè)數(shù)
- select count(age) from t_stu
- 計(jì)算age有值的記錄個(gè)數(shù)(Null不計(jì)算在內(nèi))
- avg(X) 計(jì)算某個(gè)字段的平均值
- sum(X) 計(jì)算某個(gè)字段的總和
- max(X) 計(jì)算某個(gè)字段的最大值
- min(X) 計(jì)算某個(gè)字段的最小值
- count(X)
- 排序
- 查詢出來(lái)的結(jié)果可以用order by 進(jìn)行排序 默認(rèn)按照升序排序(有由小到大 ASC,降序,由大到小 DESC)
- 示例:
- select 字段1,字段2 from 表名 order by 字段 ;
- select * from t_stu order by age asc; // 升序,默認(rèn)
- select * from t_stu order by age desc; 降序
- 也可以用多個(gè)字段進(jìn)行排序
- select * from t_stu order by age asc,score desc // 先按照age升序排序,age相等就按照score降序排序
- limit分頁(yè)
- 使用limit可以準(zhǔn)確地控制查詢結(jié)果的數(shù)量,比如每次只查詢10條數(shù)據(jù)
- 格式: select * from 表名 limit 數(shù)值1,數(shù)值2;
- 示例:select * from t_stu limit 4,8; // 可以理解為跳過(guò)最前面4條語(yǔ)句,然后取8條記錄
- limit 常用來(lái)做分頁(yè)查詢,比如每頁(yè)固定顯示5條數(shù)據(jù),那么應(yīng)該這樣取數(shù)據(jù) 第n頁(yè)
- select * from t_stu limit (n-1)*count count; // count為每頁(yè)固定顯示的數(shù)據(jù)
- 統(tǒng)計(jì)
- 多表查詢
- 格式:select 字段1,字段2,...from 表名1,表名2;
- 別名:可以給表或者字段單獨(dú)起別名 as 可以省略
- 示例:select 字段1 as 字段名1,字段2 as 字段名2 from 表名1 as 別名1,表名2 as 別名2;
- 表鏈接查詢
- 格式: select 字段1,字段2,...from 表名1,表名2 where 表名.id = 表名2.id;
- 外鍵
- 如果表1的主關(guān)鍵字是表2中的字段,則稱該字段為表2的外鍵
- 作用:保持?jǐn)?shù)據(jù)一致性,完整性,主要目的是控制存儲(chǔ)在外鍵表中的數(shù)據(jù).使兩張表形成關(guān)聯(lián),外鍵只能引用外表中的列的值或使用空值