最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【D1n910】(13/42)學(xué)習(xí)【MySQL數(shù)據(jù)庫(kù)】C++語(yǔ)言程序設(shè)計(jì) - MySQL數(shù)據(jù)庫(kù)的筆記

2023-04-03 07:30 作者:愛交作業(yè)的D1N910  | 我要投稿

正常操作,正常分析,大家好,我是D1N910,這是我觀看【MySQL數(shù)據(jù)庫(kù)】C++語(yǔ)言程序設(shè)計(jì) - MySQL數(shù)據(jù)庫(kù)從而整理的學(xué)習(xí)筆記。我會(huì)繼續(xù)努力的。

本篇 D1n910】(13/42)學(xué)習(xí)【MySQL數(shù)據(jù)庫(kù)】C++語(yǔ)言程序設(shè)計(jì) - MySQL數(shù)據(jù)庫(kù)的筆記

的主要內(nèi)容是 MySQL數(shù)據(jù)庫(kù) 的增刪改查!

小知識(shí)點(diǎn),desc 指令可以查看表結(jié)構(gòu),desc = description

description

n. 描述;說明;形容;描寫(文字);類型

舉個(gè)例子:

學(xué)習(xí)自

如果你沒看過之前的專欄內(nèi)容,那么強(qiáng)烈建議一定要先看看再繼續(xù)往下看



Unit 6 DML 操作

DML 數(shù)據(jù)操縱語(yǔ)言(Data Manipulation Language, DML)

1.插入語(yǔ)句 insert

語(yǔ)法

insert into 表名 [(字段列表)] values (值列表);

其中字段列表帶中括號(hào)就是可以不填寫,默認(rèn)則匹配全部字段。

一般場(chǎng)景

有自增長(zhǎng)字段的場(chǎng)景


這里能夠看到class_no不是按順序的原因是因?yàn)槲抑坝?insert 語(yǔ)句的時(shí)候插入失敗了幾次,但是這也同樣會(huì)占用自增長(zhǎng)的編號(hào)的。所以自增長(zhǎng)的編號(hào)只是唯一的,但不是說一定是連續(xù)的。

插入有使用默認(rèn)值的場(chǎng)景

回顧課程表的字段信息

已添加的教師信息

自增長(zhǎng)字段可以直接用null,默認(rèn)值字段想用默認(rèn)值得用 default;

如果想要在values中缺省默認(rèn)值字段,可以在表后括號(hào)內(nèi)指定填寫的字段;


?? 錯(cuò)誤示例,違反了外鍵約束:插入了不存在的教師編號(hào) 007


???錯(cuò)誤示例,違反了唯一約束:插入了重復(fù)的教師編號(hào) 001;

教師編號(hào) teacher_no 是我們之前設(shè)置了 unique 的字段.


批量插入多行數(shù)據(jù)


如果這邊報(bào)錯(cuò)

ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`choose`.`student`, CONSTRAINT `students_class_fk` FOREIGN KEY (`class_no`) REFERENCES `classes` (`class_no`))

這是因?yàn)橥怄I限制, classes 表的?class_no 字段和要添加的不符合

修改后就OK了


Insert...select語(yǔ)句

-- 在insert語(yǔ)句中使用select子句可以將源表的查詢結(jié)果添加到目標(biāo)表中

語(yǔ)法

如果目標(biāo)表名和復(fù)制的表的字段一樣,那么字段列表1就是可選的,用 * 表示全部

示例

* like 在之前學(xué)過是用來拷貝表結(jié)構(gòu)而不包含表數(shù)據(jù)。

這個(gè)的作用主要是對(duì)原表進(jìn)行備份


2.update語(yǔ)句 更新SQL數(shù)據(jù) 更新數(shù)據(jù)

語(yǔ)法

示例

創(chuàng)建表 score,包含如下字段:

添加測(cè)試數(shù)據(jù)

先創(chuàng)建一個(gè) exam 表來作測(cè)試用


更改多個(gè)字段

執(zhí)行結(jié)果如下


測(cè)試更新語(yǔ)句違反外鍵約束的場(chǎng)景

這里的原因是子表中已經(jīng)有引用了 class_no 為 3 的外鍵了,那么改主表的?class_no 3 為 4就會(huì)報(bào)錯(cuò)。


1.3.刪除語(yǔ)句

回顧原來exam表中的數(shù)據(jù)

使用 where 進(jìn)行刪除

可以看到 exam_score 小于 45 的 stu_no=5 的數(shù)據(jù)被刪除了。


沒有 where 進(jìn)行刪除

統(tǒng)統(tǒng)干掉惹 ψ(`?′)ψ


進(jìn)行違反外鍵約束的刪除

可以看到刪除失敗了,原因是子表還用著 class_no=1 的數(shù)據(jù)捏?╮(╯_╰)╭

1.4.truncate語(yǔ)句

truncate

vt.截?cái)?截短,縮短,刪節(jié)(尤指掐頭或去尾)

adj.截短的;被刪節(jié)的

--來自百度翻譯

語(yǔ)法

> truncate table table_name;

功能

截?cái)啾?,雖然不是增刪改,功能上相當(dāng)于沒有where子句的delete

語(yǔ)句示例

>使用truncate語(yǔ)句刪除表score中的數(shù)據(jù)

直接清理掉了 ヾ(?ε?`*)

>使用truncate語(yǔ)句刪除表student中的數(shù)據(jù)

失敗了 ヾ(?ε?`*)

>?使用truncate語(yǔ)句階段數(shù)據(jù)后會(huì)使得自增字段恢復(fù)初始值,回憶之前設(shè)定的 exam的內(nèi)容,stu_no是自增字段


Unit 7 基本查詢語(yǔ)句

目錄

  1. select語(yǔ)句

  2. 使用select子句指定字段列表

  3. 基本查詢語(yǔ)句

  4. 使用distinct過濾結(jié)果集中重復(fù)數(shù)據(jù)

  5. 使用imit限定返回行數(shù)

1.select語(yǔ)句

select語(yǔ)句的語(yǔ)法格式如下

select 字段列表 from 數(shù)據(jù)源

[ where 條件表達(dá)式]

????[ group by 分組字段[ having 條件表達(dá)式]]

????????[ order by 排序字段 [asc|desc]]


其中

  • 字段列表:指定要檢索的字段,* 表示全部字段

  • 數(shù)據(jù)源:檢索的表或視圖

  • where子句:用于指定記錄的過濾條件,是結(jié)果為真或者假的表達(dá)式

  • group by子句:用于對(duì)檢索數(shù)據(jù)進(jìn)行分組,

  • Having子句:依附于?group by?的。只有g(shù)roup by語(yǔ)句中才能用。對(duì)分組后的數(shù)據(jù)進(jìn)行篩選,篩選后選擇符合條件的組

  • order by子句:用于對(duì)結(jié)果集進(jìn)行排序?asc/decs 升序/降序

2.使用select子句指定字段列表

字段列表的指定方式

示例

????使用表達(dá)式

前面的我們都清楚,使用函數(shù)的意思就是select 能夠讓 mysql 執(zhí)行函數(shù)然后返回結(jié)果。

其中version、now是mysql 內(nèi)置的函數(shù)

????命名別名

????????很明顯,上面直接用函數(shù)名或者1+1等作為表頭不是很好看,那么可以另起一個(gè)名稱,函數(shù)后接 as+別名,或者直接省略 as 然后加別名即可。

????????字段或表達(dá)式 [as] 別名

????????select version() as 版本號(hào),now() 服務(wù)器時(shí)間


order by子句:用于對(duì)結(jié)果集進(jìn)行排序?asc/decs 升序/降序

默認(rèn)是 asc,升序 ascend

如果要降序,必須寫 desc,下降


3.基本查詢語(yǔ)句


下面可以看出 select 后面跟著的字段內(nèi)容就是在努力地為輸出表格而服務(wù)的。

下面再看看函數(shù)方面的應(yīng)用,下面是我們前面定義的 exam 表。


插入一個(gè)數(shù)據(jù)


上面是三列,通過函數(shù)能夠得到?exam_score、regular_score 得到的一個(gè)成績(jī)


同樣我們也可以用別名使得得到的表頭更好看。


4.使用distinct過濾結(jié)果集中重復(fù)數(shù)據(jù)

distinct

adj.不同的;明顯的;清晰的;清楚的;明白的;有區(qū)別的;不同種類的;確定無疑的;確切的

-- 來自百度翻譯

正常查詢完整的表時(shí),因?yàn)橛?primary key 主鍵對(duì)應(yīng)的列,那么就不會(huì)有重復(fù)的行,

但是如果只是部分查詢表,只是部分列的話,那么極有可能就有重復(fù)的行,

可利用distinct過濾結(jié)果集中重復(fù)數(shù)據(jù)。只用在select和字段列表之間加?distinct 這個(gè)單詞就行。

示例

????單列

????多列

其中

tables是系統(tǒng)數(shù)據(jù)庫(kù)information_schema中的一張表,用來保存數(shù)據(jù)庫(kù)中表和視圖的信息。

能夠看到 TABLES

這里關(guān)注 tables 的三個(gè)字段:

查詢數(shù)據(jù)

這里我們的一共有338行數(shù)據(jù)

可以看出表名基本上不會(huì)重復(fù),但是數(shù)據(jù)庫(kù)名和類型就重復(fù)很多了。如果我們查詢時(shí)候不包含表名,會(huì)發(fā)現(xiàn)包含大量的重復(fù)數(shù)據(jù)。

得到的很多行。

使用 distinct 后,就只有五行了。


5.使用imit限定返回行數(shù)

limit 不在SQL中要求,但是不同產(chǎn)品都會(huì)有這樣的需求,所以每個(gè)產(chǎn)品使用的方式可能都不同,這個(gè)limit只是 MySQL 的用法。這個(gè)操作有一個(gè)統(tǒng)一的名稱叫分頁(yè)。


語(yǔ)法

? ??

其中:

start: 表示從第一行記錄開始檢索,缺省值為0,表示第一行

length: 表示要檢索的行數(shù)

示例

列出information_schema.tables表中的前10行記錄的table_schema, table_name

列出information_schema.tables表中的第七頁(yè)(每頁(yè)10行)。這里為什么第七頁(yè)是從60行開始?

原因 0行~9行 是第一頁(yè),即第一頁(yè)的第一行是整張表的第0行(下標(biāo)從0開始)。

第n頁(yè)的第一行就是?(n-1)*10=60.

那么第七頁(yè)的第一行就是 (7-1)*10=60.

同樣成功。

注意,各人表不同,也許你處輸出結(jié)果和我不一樣,無礙。

未完待續(xù)

學(xué)習(xí)進(jìn)度(13/42)

恭喜你掌握 SQL 的增刪改查!

【D1n910】(13/42)學(xué)習(xí)【MySQL數(shù)據(jù)庫(kù)】C++語(yǔ)言程序設(shè)計(jì) - MySQL數(shù)據(jù)庫(kù)的筆記的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
乡城县| 河西区| 马边| 兴城市| 黔南| 龙江县| 长乐市| 凤城市| 高要市| 永昌县| 陕西省| 麻栗坡县| 桐梓县| 星子县| 宁乡县| 长沙县| 徐汇区| 敦煌市| 开江县| 库尔勒市| 虞城县| 理塘县| 黔东| 岳阳县| 静乐县| 赫章县| 密山市| 章丘市| 大足县| 界首市| 新巴尔虎右旗| 新竹市| 江口县| 长子县| 潮州市| 固镇县| 方山县| 塘沽区| 醴陵市| 天峨县| 西林县|