只用django做網(wǎng)站友情鏈接購(gòu)買平臺(tái)
這里寫(xiě)目錄標(biāo)題
- 1 背概念
- 2 學(xué)例子
1 背概念
1 事務(wù) 事務(wù)是最小的不可在分的工作單元,事務(wù)的操作要么同時(shí)成功,要么同時(shí)失敗。
ACID: 原子性、一致性、隔離性、持久性
2 約束 主鍵約束;外鍵約束(少用,會(huì)增加程序的耦合性);唯一約束;非空約束
3 視圖:視圖是是表的一部分的集合,是保存在數(shù)據(jù)庫(kù)中的已定義好的查詢語(yǔ)句的結(jié)果集
create view vName as select name from table_name where condition;
3范式 關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)中一系列規(guī)范化的要求,逐步增強(qiáng)了數(shù)據(jù)的完整性和一致性。
1NF:數(shù)據(jù)表中的每個(gè)字段都必須是原子性的,不能再分解成更小的數(shù)據(jù)項(xiàng)。
2NF:在滿足1NF基礎(chǔ)上,非主鍵列不能依賴于部分主鍵,否則需將表拆分。
3NF:2NF的基礎(chǔ)上,非主鍵列都不能依賴于其他非主鍵列,各字段之間沒(méi)有傳遞依賴關(guān)系。
4分頁(yè)limit: limit (page-1)*size,size 分別代表起始下標(biāo),顯示記錄數(shù)
-- 第21至30條記錄: SELECT * FROM employees LIMIT 20,10;
刪除:delete from 表名稱 where 條件; drop table 表名稱;
分組函數(shù):MIN(); MAX(); COUNT(); AVG(); SUM();
單行函數(shù):ABS(x),FLOOR(x) 返回小于或等于某個(gè)值的最大整數(shù)
5排序order by:默認(rèn)升序,也可以設(shè)置成desc
SELECT last_name,hire_date FROM employees ORDER BY hire_date ;
去重 :select distinct name from user;
多表查詢:外連接和內(nèi)連接,等值連接和非等值連接,自連接和非自連接
外連接和內(nèi)連接:內(nèi)連接求兩個(gè)表的交集(默認(rèn)),外連接求補(bǔ)集,左外左邊為主,右外右為主,滿外連接Union關(guān)鍵字,返回一個(gè)并集,類似于A并B,會(huì)執(zhí)行去重檢索的操作
union all 返回并集加上交集 ,優(yōu)點(diǎn)是效率比較高
等值連接和非等值連接:等:這多張表之間必須有相同的字段名,比方說(shuō)一個(gè)表的主鍵是另一個(gè)表的外鍵 非等:SELECT last_name,salary,grade_level FROM employees e,job_grades j WHERE e.salary BETWEEN j.lowest_sal and j.highest_sal;
自連接和非自連接:自己多表自己自連接,一般很少自連接
6 jdbc:java連接數(shù)據(jù)庫(kù)的一種標(biāo)準(zhǔn),加載數(shù)據(jù)庫(kù)驅(qū)動(dòng) --> 獲得連接 --> 聲明 SQL 語(yǔ)句對(duì)象 --> 執(zhí)行語(yǔ)句對(duì)象, 接收查詢結(jié)果 --> 關(guān)閉連接資源。
6 模糊查詢:% 通配符
模糊匹配含有網(wǎng):SELECT * from app_info where appName like ‘%網(wǎng)%’;
模糊匹配網(wǎng)結(jié)尾:like ‘%網(wǎng)’; 模糊匹配網(wǎng)開(kāi)頭 like ‘網(wǎng)%’
6 亂碼出現(xiàn)原因:數(shù)據(jù)庫(kù)存在多種格式,比方說(shuō)latin和utf-8,設(shè)置有問(wèn)題
2 db和dbms的區(qū)別:db是數(shù)據(jù)庫(kù)的縮寫(xiě),dbms是數(shù)據(jù)庫(kù)管理系統(tǒng)
1 sql中常用數(shù)據(jù)類型的分類:整數(shù)類型 int,浮點(diǎn)類型float、double,字符型char,varchar;日期類型:date;文本類型txt,二進(jìn)制文件類型blob
顯示表結(jié)構(gòu):DESCRIBE employees;
2 學(xué)例子
– 建立一個(gè)數(shù)據(jù)表
create table employee(id int,name1 varchar(40),sex varchar(4),birthday date,entry_date date,salary decimal(8,2),resum text
);
drop table employee;
-- 插入數(shù)據(jù)
INSERT INTO employee(id,name1,sex,birthday,entry_date,,salary,resum)
VALUES(1,'zhangsan','male','1993-03-04','2016-11-10','1000','i am a developer');-- 給某一列插入數(shù)據(jù)
INSERT INTO employee(id) VALUES (6);
SELECT * FROM employee;-- 刪除數(shù)據(jù)
DELETE from employee where job='zhangsan';
SELECT * from employee;
-- 刪除所有數(shù)據(jù),保存表結(jié)構(gòu)
DELETE FROM employee;-- 改數(shù)據(jù),有東西才能改,沒(méi)有東西改不成
INSERT INTO employee(id,name1,sex,birthday,entry_date,salary,resum)
values (1,'zhangsan','male','1993-03-04','2016-11-10','1000','i am a developer');
INSERT INTO employee(id,name1,sex,birthday,entry_date,salary,resum)
values (1,'aaa','male','1993-03-04','2016-11-10','1000','i am a developer');-- 將所有員工工資修改為5000元
UPDATE employee SET salary=5000;
-- 將張三員工工資設(shè)置為600
UPDATE employee SET salary=3000 where name1='張三';
-- 將aaa員工的薪水修改為4000元,id修改為2
UPDATE employee SET salary=4000,id=2 where name1='aaa'
-- 修改是可以做加減法的
UPDATE employee SET salary=salary+6000 WHERE name1='aaa';