范式和高級數(shù)據(jù)查詢

范式:Normal Format嵌削,是一種離散數(shù)學中的知識,是為了解決一種數(shù)據(jù)的存儲與優(yōu)化的問題,它的終極目標是為了減少數(shù)據(jù)的冗余

范式是一種分層結(jié)構(gòu)的規(guī)范,分為六層:

1NF本今、2NF、3NF主巍、……6NF

1NF是最底層冠息,要求最低

6NF是最高層,要求最嚴格

第一范式:要求字段的數(shù)據(jù)具有原子性孕索,就是需要的數(shù)據(jù)是否需要拆分才能得到

第二范式:(2NF):要解決表的設計不允許出現(xiàn)部分依賴铐达,給表添加一個id唯一

第三范式(3NF):解決傳遞依賴的問題

逆規(guī)范化:磁盤利用率與效率的對抗,空間換時間

高級數(shù)據(jù)操作:

新增數(shù)據(jù)

基本語法:insert into 表名 [(字段列表)] values(值列表);

主鍵沖突(Duplicate key)

當主鍵存在沖突的時候檬果,可以選擇性地進行處理,進行更新和替換

更新操作:insert into 表名 [(字段列表)] values(值列表) on duplicate key update 字段=新值;

替換:replace insert into 表名 [(字段列表)] values(值列表);

-- 給班級表增加主鍵

alter table my_classadd primary key (name);

-- 插入數(shù)據(jù)

insert into my_class

values ('python1910','b409');

insert into my_class

values ('python1910','b501');

-- 主鍵沖突:更新

insert into my_class

values ('python1910','b510')

-- 沖突處理

on duplicate key update

-- 更新教室

room ='b510';

insert into my_class

values ('python1907','b406');

-- 主鍵沖突:替換

replace into my_class

values ('python1907','a203');

replace into my_class

values ('python1903','b408');

replace into my_class

values ('python1811','b407');



where子句:返回結(jié)果0或1唐断,0代表false选脊,1代表true

判斷條件

比較運算符:>、<脸甘、>=恳啥、<=、!=丹诀、<>钝的、=、like铆遭、between硝桩、and、in/not in

邏輯運算符:&&(and)枚荣、||(or)碗脊、!(not)


-- 復制創(chuàng)建表

create table my_copylike my_class;

-- 蠕蟲復制

insert into my_copyselect * from my_class;

-- 刪除主鍵

alter table my_copydrop primary key ;

insert into my_copyselect * from my_copy;

-- 更新部分1811變成1911

update my_copyset name='python1911' where name='python1811' limit 3;

-- 刪除數(shù)據(jù):限制記錄數(shù)為5

delete from my_copywhere name='python1903' limit 5;

-- 給my_student表增加主鍵

alter table my_studentmodify idint primary key

auto_increment;

-- 清空表:重置自增長

truncate my_student;

-- select 選項

select * from my_copy;

select all * from my_copy;

-- 去重

select distinct * from my_copy;

-- 向?qū)W生表插入數(shù)據(jù)

insert into my_student

values (null,'bc20200001','張三','男'),

(null,'bc20200002','李四','男'),

(null,'bc20200003','王五','男'),

(null,'bc20200004','小明','男');

-- 字段別名

select id, number as 學號, name as 姓名, sexas 性別from my_student;

-- 多表數(shù)據(jù)源

select * from my_student,my_class;

-- 子查詢

select * from (select * from my_student)as s;

-- 增加age年齡和height身高字段

alter table my_student add age tinyint unsigned;

alter table my_student add height tinyint unsigned;

-- 增加字段值:rand取得一個0到1之間的隨機數(shù),floor向下取整

update my_student set age=floor(rand()*20+20),height=floor(rand()*20+170);

-- 找學生id為1橄妆、3衙伶、5的學生

select * from my_student where id=1 || id=5 || id=3;-- 邏輯判斷

select * from my_student where id in (1,3,5); -- 落在集合中

-- 找身高在185到190之間的學生

select * from my_student where height>=185 and height<=190;

select * from my_student where height between 185 and 190;

select * from my_student where height>=185 and height<=190;

select * from my_student where 1; -- 所有條件都滿足

-- 根據(jù)性別分組

select * from my_student group by sex;

-- 分組統(tǒng)計:身高高矮、平均年齡害碾、總年齡

select sex,count(*),max(height),min(height),avg(age),sum(age)from my_student group by sex;

-- 修改id為1的記錄矢劲,把年齡設置為null

update my_student set age=null where id=4;

select sex,count(*),count(age),max(height),min(height),avg(age),sum(age)from my_student group by sex;

-- 修改id為1的記錄,把性別置位女

update my_student set sex='女' where id=1;

-- nan nv

-- 倒序

select sex,count(*),count(age),max(height),min(height),avg(age),sum(age)from my_studentgroup by sexdesc;

-- 刪除班級表主鍵

alter table my_class drop primary key ;

-- 給班級表增加主鍵id

alter table my_class add id int primary key auto_increment;

-- 給學生表增加一個班級表的id

alter table my_student add c_id int;

update my_student set c_id=ceil(rand()*4);

insert into my_student values (6,'bc20200006','小芳','女',18,160,2);

-- 多字段分組:先班級慌随,后男女

select c_id,sex,count(*)from my_student group by c_id,sex;-- 多字段排序

select c_id,sex,count(*),group_concat(name)from my_student group by c_id,sex;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芬沉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌花嘶,老刑警劉巖笋籽,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異椭员,居然都是意外死亡车海,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門隘击,熙熙樓的掌柜王于貴愁眉苦臉地迎上來侍芝,“玉大人,你說我怎么就攤上這事埋同≈莸” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵凶赁,是天一觀的道長咧栗。 經(jīng)常有香客問我,道長虱肄,這世上最難降的妖魔是什么致板? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮咏窿,結(jié)果婚禮上斟或,老公的妹妹穿的比我還像新娘。我一直安慰自己集嵌,他們只是感情好萝挤,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著根欧,像睡著了一般怜珍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凤粗,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天绘面,我揣著相機與錄音,去河邊找鬼侈沪。 笑死揭璃,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的亭罪。 我是一名探鬼主播瘦馍,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼应役!你這毒婦竟也來了情组?” 一聲冷哼從身側(cè)響起燥筷,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎院崇,沒想到半個月后肆氓,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡底瓣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年谢揪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捐凭。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡拨扶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出茁肠,到底是詐尸還是另有隱情患民,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布垦梆,位于F島的核電站匹颤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏托猩。R本人自食惡果不足惜惋嚎,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望站刑。 院中可真熱鬧,春花似錦鼻百、人聲如沸绞旅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽因悲。三九已至,卻和暖如春勺爱,著一層夾襖步出監(jiān)牢的瞬間晃琳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工琐鲁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留卫旱,地道東北人。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓围段,卻偏偏與公主長得像顾翼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子奈泪,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容