日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据库财务_MySQL数据库——从入门到删库跑路(二)

發布時間:2023/12/19 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库财务_MySQL数据库——从入门到删库跑路(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DQL 查詢表中的記錄 select .... from .....

語法

select 需要查詢的信息(列名1,列名2,.......列名n) / * from 表名 [where 條件];

完善下:

select

字段列表

from

表名列表

where

條件列表

group by

分組字段

having

分組之后的條件

limit

分頁限定

去重查詢 distinct

ifnull表達式 ifnull(表達式1,表達式2)

表達式1: 代表那個字段需要判斷是否為null

表達式2:如果該字段值為null 后面的進行替換

起別名操作

語法 as 也可以省略不寫? 表名 as 新的名字

查詢出來的字段信息 as 新名字

當你查詢同一張表,并且進行多次查詢的時候可以使用起別名來實現

注意:

起別名 只是在sql語句中方便查詢使用的,并不會對數據原來的文件起到任何影響

查詢

查詢表中的所有的行和列的數據

select * from 表名;

select * from student;

查詢指定列的數據:如果有多個列,中間用逗號隔開。

select 列名1,列名2,列名3,...... from 表名

select age,name from student;

查詢時指定列的別名

使用關鍵字 as

使用別名的好處:顯示的時候指定新的名字,并不修改表的原有結構。

對指定列進行別名操作: select 列名1 as 新名字,列名2 as 新名字,..... from 表名;

對表和列同時進行別名操作: select 列名1 as 新名字,列名2 as 新名字,..... from 表名 as 新表名;

如:對學生表進行操作:查詢學生表的姓名和年齡;

selects.ageas年齡,

s.nameas姓名fromstudentass;--as關鍵字可以省略不寫。

去除重復查詢

使用關鍵字 distinct 去掉重復的記錄

語法格式: select distinct 字段名 from 表名;

例如:

--查詢學生表中的學生都來自于哪些地方法?

select distinct address from student;

查詢的結果值可以參與數學運算

查詢出來的列和其他列可以進行數學運算

語法: select 列名1+、-、/、* 列名2,..... from 表名;

注意: 能夠參與數學運算的是前提是列的數據類型是數值型. 整數和小數

例如:

--查詢學生表學生的數學成績和歷史成績的和

select s.math+s.history as 綜合 from student ass;--as 可以省略

條件查詢

查詢的時候,有時候只想獲取符合條件的結果值,并不是獲取表中的所有記錄

語法: select 字段列表 from 表名 where 條件表達式;

結果值:符合條件的記錄就會被返回,如果條件不符合就不返回(過濾掉)

運算符:

>、 < 、 >= 、<= 、!=、=、<>(不等于),沒有''==''在SQL中,不等于有兩種表示方式,!= 、<>

between..... and

表示的是一個區間范圍 如 between A and B [A,B]

in(具體的取值)

里面放的是一個個數值,如果有多個,中間用逗號隔開

like

模糊查詢,根據關鍵字查詢,一般搭配"%"

is null

查詢某一列為null的值,注意在sql 不能這樣表達“字段名= null”

is not null

查詢某一列不為null的值

操作:

--比較運算符的操作--查詢數學成績50分以上的學生

select * from student as s where s.math <> 100;--BETWEEN AND--查詢數學成績在70-100分之間的

select * from student as s where s.math BETWEEN 70 and 100;--in(某幾個散列值)--查詢歷史成績為80分和100分的學生

select * from student as s where s.history in(80,100);--模糊查詢 like 搭配使用 %--查詢學生地址中含有"陽"的學生

select * from student as s where s.address like '%陽%';--查詢本班同學中含有小的學生信息

SELECT * from student as s where s.username like '%劉%';--查詢生日為空的學生有哪些

select * from student as s where s.birthday is not null;

備注:在模糊查詢時,通配符 有兩種表示方式:% _

% 匹配任意多個字符_ 匹配單個字符

兩者都需要注意書寫的位置:

一般我們使用【%】作為模糊查詢的通配符

邏輯運算符 與、或、非

與:&& ---> and

或: || ---> or

非: !

在sql建議使用單詞來表示邏輯運算?and or

操作:

--邏輯運算符 與或非--查詢歷史成績為80分和100分的同學 or

select * from student as s where s.history = 80 or s.history = 100;--查詢本班同學成績在70分以上的 and

SELECT * from student as s where s.math > 70 and s.history > 70;--取非 !

SELECT * from student as s where ! (s.math > 70 and s.history > 70);

排序

單列排序

通過 order by語句來實現排序,只是將查詢出來的結果值進行排序,并不影響查詢的結果,不進行條件過濾,影響的是顯示的方式(從大到小還是從小到大)

升序:asc 默認就是升序

降序:desc

單列排序:根據表中的某個字段、某列進行排序

語法: select 字段列表 from 表名 where 條件 order by 字段名 asc、desc;

如:

--對查詢出來的同學信息根據歷史成績降序排序

select * from student as s order by s.history desc;

組合排序

同時對表中的多個字段進行排序,如果前面的字段值相同,再根據后面的字段再次排序

語法: select 字段列表 from 表名 where 條件 order by 字段1 desc|asc,字段名2 desc|asc;

操作:

--根據數學成績進行升序排序,當數學成績相同再根據歷史成績降序排序

select * from student as s order by s.math asc,s.history desc;

聚合函數

常用的聚合函數

求一個最大值 max

求一個最小值 min

求一下平均數 avg

求一下總和 sum

統計查詢結果的記錄數 count

使用count統計記錄數的時候,如果count中填寫的是表中的某個字段,如果某條件中該字段為null,則該記錄會被過濾掉。

ifnull(表達式1,表達式2),如果前面的字段為null,后面的表達式2可以替換掉前面的字段為null的值??梢越y計帶null的值

分組查詢 group by

select字段列表from表名列表where分組之前的條件group by分組字段having分組之后的條件

limit

分頁限定條件

概念:使用group by 對查詢的結果信息進行分組,相同的數據分成一組。

語法: select 字段列表 from 表名 group by 分組字段 having 分組之后的條件

例如:

將查詢出來的結果值內容,再按照性別進行分組,分成2組。

--將查詢出來的結果值內容,再按照性別進行分組,分組2組。文綜和是多少--年齡大于18歲的/*1.我想要什么樣的結果值

2. sql中需要有哪些條件

3. 在sql都需要涉及到幾張表*/

SELECTs.gender,sum(s.history+s.geo+s.political) as 文綜和 --查詢出來需要展示的結果值

fromstudentassWHEREs.age> 18

GROUP BYs.gender--統計成年人男女各多少個?

SELECTs.gender,count(s.gender) as個數FROMstudentassWHEREs.age>=18

GROUP BYs.gender

having和where的區別

where語句:將查詢結果分組前的符合條件返回數據,不符合條件的過濾掉,即先過濾再分組。where后面不能使用聚合函數。

having語句:在分組之后過濾數據,即先分組再過濾。having后面可以使用聚合函數

分頁查詢

使用關鍵字 limit,它是mysql中的方言操作

作用:對查詢的結果值進行分頁展示,每次顯示多少條記錄

語法: select 字段列表 from 表名 where 條件 group by 分組字段 having 分組之后條件 order by 升降序 limit 分頁限定條件

分頁限定條件 -----> 起始值 展示的記錄數 limit offset,length

操作:

1 --查詢學生表中的數據,從第一條開始,每頁顯示2條,第一次只能看到前兩條

2 SELECT

3 s.username as 姓名,s.age as 年齡,s.gender as性別4 FROM

5 student ass6 LIMIT7 0,2

8

9 --查詢學生表中的數據,從第4條,展示3條

10 SELECT

11 *

12 FROM

13 student14 LIMIT15 3,3

16 --分頁 轉換分頁查詢的起始值和頁碼數,每頁展示的個數確定的

17 --0,15 第一頁

18 --15,15 第二頁

19 --30,15 第三頁

20

21 --查詢第28頁的數據 15條記錄

22 --頁碼數已知的 pageNum 起始值是未知的 beginNum ,記錄數為num

23 --totalNum 總記錄數 根據記錄數進行分頁

24 --beginNum = (pageNum - 1) * num

25 LIMIT26 (pageNum - 1) *num;27 --如果你查詢的記錄值是從第一條開始的,這個0可以省略

28 SELECT

29 *

30 FROM

31 student ass32 LIMIT33 5;34 --如果你查詢的是最后幾條,有幾條顯示幾條,不會報分頁錯誤

35 --查詢從第三條開始,查詢5條

36 SELECT

37 *

38 FROM

39 student ass40 LIMIT41 2,5;

備注:

如果查詢從第一條開始,起始值可以省略,如果查詢最后幾條,有幾條顯示幾條,不會報分頁錯誤。

數據庫備份和還原

圖形化界面工具 Navicat

備份

選中數據庫右鍵 ----> 轉儲sql文件----> 結構和數據 --->指定磁盤中sql文件存儲的位置。

還原

先通過Navicat創建一個數據庫(需要和sql文件中的數據庫保持同名) --->右鍵運行sql文件----->瀏覽磁盤中存儲的sql文件,點擊運行,最后------>刷新。

dos指令操作

備份

在不登錄的情況下使用 mysqldump -u登錄名 -p登錄密碼 備份數據庫名 > 存儲磁盤的位置(絕對路徑)

還原

登錄mysql,首先創建同名的數據庫,然后使用當前創建的數據庫 use 創建數據庫名

然后 source 磁盤中sql文件存儲的位置

備份:

還原:

數據庫表的約束

概述

對表中的數據進行限定,保證數據的有效性、完整性和正確性。一個表一旦添加了約束,那么不正確的數據將無法添加進來,所以一般約束在創建表設定字段的時候添加上

主鍵約束

主鍵:一般是用來唯一標識數據庫表中的某一條記錄,不能為空

通常情況下,一般會給表添加一個id字段,用作唯一標識,設置為主鍵,主鍵一般是提供給數據庫操作使用的(查詢,修改,刪除等等),主鍵不能重復,也不能為空。

比如: 一個人的身份證號、一個人手機號,一個學生的學號,一個員工工號

語法: 使用關鍵字 primary key

操作:

--查詢

SELECT * FROM user;--非法數據插入 唯一 不重復

INSERT INTO user values(7,'0008','123123','小花','12312312313','女',19);--非法數據插入 null值插入 非空

INSERT INTO user values(null,'0008','123123','小花','12312312313','女',19);--刪除主鍵 sql語句

alter table user drop PRIMARY key;--添加主鍵

alter table user add PRIMARY KEY(id);

主鍵自增

如果希望在添加表記錄時,不設定表中主鍵值,系統會自動給主鍵添加自增值

語法: auto_increment 表示自動自增

--非法數據插入 null值插入

INSERT INTO user values(null,'0010','123123','小周','12312312313','男',25);

修改自增的起始值為100

alter table user auto_increment = 起始值;

修改自增的起始值為100

alter table user auto_increment = 起始值;

唯一約束

概念:字段值唯一,不允許重復

關鍵字: unique

語法: 字段名 字段數據類型 unique

操作:

--插入數據

insert into role values(null,'CEO');

insert into role values(null,'manager');

insert into role values(null,'CTO');

--查詢角色表

SELECT * fromrole;

insert into role values(null,null);

備注:如果插入是null,表明是沒有數據,不存在數據重復問題,可以重復插入。

非空約束

概念:記錄中的某個字段不能為null

語法: 字段名 字段數據類型 not null

--創建一張部門表

create tabledepartment (

idint PRIMARY KEY auto_increment, --id 主鍵自增

departmentname VARCHAR(10) not null --部門不能為空

)insert into department values(null,'總裁辦');insert into department values(null,'財務部');insert into department values(null,'人事部');insert into department values(null,'研發部');insert into department values(null,'銷售部');--查詢該表數據

SELECT * fromdepartment;insert into department values(null,null);

默認值:

概念:當沒有給字段賦值,系統會賦上一個指定的默認值

語法: 字段名 字段數據類型 default 默認值

操作:

--創建一張表 employee 員工表

create tableemployee (

idint PRIMARY keyauto_increment,

usernameVARCHAR(10) not null,

genderVARCHAR(1) DEFAULT '男',

ageint)insert into employee(id,username,age) values(null,'小孫',20);--查詢員工表

SELECT * fromemployee;insert into employee(id,username,gender,age) values(null,'小麗','女',20);

備注:

如果給表中的 某個字段既添加了非空約束又添加了唯一約束,那么該字段是不是主鍵呢?

一般情況下,一張表中只能有一個主鍵。

外鍵約束

總結

以上是生活随笔為你收集整理的mysql数据库财务_MySQL数据库——从入门到删库跑路(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。