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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库基础操作(二)数据库表数据的增删查改

發(fā)布時間:2025/6/15 数据库 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库基础操作(二)数据库表数据的增删查改 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、插入數(shù)據(jù) insert

向表中制定字段添加數(shù)據(jù):insert into 表 (字段名1,字段名2......) values(值1,值2......); 向表中所有字段添加數(shù)據(jù):insert into 表 values(值1,值2......); 復(fù)制代碼

注意:

  • values中的‘值’得數(shù)量要和字段名的數(shù)量一致;
  • ‘值’的順序要和字段名的順序一致;
  • 插入‘值’的類型要和字段的類型一致;
  • 插入的‘值’不要超過你所設(shè)置的最大長度;
  • 插入的‘值’如果是字符串或者是日期請記得添加單引號;
  • 如果是使用的插入語句是向表中所有字段添加數(shù)據(jù)那么你的‘值’的數(shù)量和類型要和表里面的一致

二、修改數(shù)據(jù) update

修改數(shù)據(jù):update 表名 set 字段名1=值1,字段名2=值2; 帶條件的修改數(shù)據(jù):update 表名 set 字段名1=值1,字段名2=值2 where 條件; 復(fù)制代碼

注意:

  • 修改‘值’的類型需要和字段名一致;
  • 修改‘值’的時候不能超過最大長度;
  • 修改的‘值’如果是字符串或者是日期請記得添加單引號;

三、刪除數(shù)據(jù)delete

帶條件的刪除語句:delete from 表名 [where 條件];復(fù)制代碼

?注意:delete from 表名;和truncate table 表名;的區(qū)別??

  • 從刪除方式來說delete是一條一條的刪除記錄,不會去清空auto_increment記錄數(shù)。而truncate則是直接將表刪除重新建一個表,auto-increment將會被清空沒有記錄。
  • 從事物方面來說delete刪除的數(shù)據(jù)在一個事物內(nèi)還能夠找回,而truncate刪除的數(shù)據(jù)是找不回來的。

四、查詢數(shù)據(jù) select

查詢語句的基本語法:select [distinct] * 或者 字段名1,字段名2 from 表 [where 條件]; 復(fù)制代碼

distinct這個關(guān)鍵字在你使用的時候需要注意一下,當(dāng)你查詢的字段值只有一個的時候它會去掉這一個字段中 所有相同的數(shù)據(jù)如果你要是查詢的是多個字段那么它會根據(jù)你的這兩個字段來進(jìn)行查詢除非是這兩個字段中的數(shù)據(jù)同時與其他的數(shù)據(jù)相同才會去除重復(fù)的。

為了簡單的來說明這個基本查詢我們來創(chuàng)建一張表用來舉例:

#創(chuàng)建一張表 create table student( #學(xué)號 id int(5) primary key auto_increment, #學(xué)生名字 name varchar(10), #學(xué)生年齡 age int(3), #學(xué)生生日 s_date date )復(fù)制代碼

表創(chuàng)建完之后再插入一些數(shù)據(jù)

insert into student values (null,'張三',19,null); insert into student values (null,'李四',20,null); insert into student values (null,'王五',20,null); insert into student values (null,'趙六',19,null);復(fù)制代碼

簡單查詢:

1、查詢所有學(xué)生

select * from student;復(fù)制代碼


2、查詢學(xué)生的學(xué)號和名字

select id,name from student;復(fù)制代碼


3、使用別名的方式來查詢學(xué)生的名字

select name as '學(xué)生' from student;復(fù)制代碼


4、篩選學(xué)生年齡

select distinct(age) from student;復(fù)制代碼


5、將所有學(xué)生的年齡加10顯示

select name,age+10 as age from student;復(fù)制代碼


條件查詢:

在開始這些查詢之前先說一下where后面的內(nèi)容怎么寫

比較運算符: > 大于 < 小于 <= 小于等于 >= 大于等于 = 等于 <> 不等于 != 這個也是不等于但是這個并不是sql的標(biāo)準(zhǔn)語法 between...and... 顯示在某一個區(qū)間的值 in(...) 顯示在in列表中的值比如說in(1,2,3) like'%' 模糊查詢,在like語句中'%'代表著零個或者多個字符,'_'代表著一個字符 is null 判斷非空 邏輯運算符: and 多個條件同時成立 or 多個條件任意一個成立 not 條件不成立復(fù)制代碼

1、顯示名字為'張三'學(xué)生的所有信息

select * from student where name = '張三';


2、查詢年齡大于等于20歲的學(xué)生

select * from student where age>=20;


3、查詢姓'張'的學(xué)生

select * from student where? name like '張%';


4、查詢id為'1'和'4'的學(xué)生

select * from student where id in(1,4);


5、查詢id為'1'或者'3'的學(xué)生

select * from student where id=1 or id=3;


6、查詢年齡為19同時id為1的學(xué)生

select * from student where age = 19 and id = 1;


排序查詢

select ... order by 字段 asc或者desc...;

asc就是升序,desc就是降序

根據(jù)學(xué)號來對學(xué)生進(jìn)行升序排序

select * from student order by id asc;

根據(jù)學(xué)號來對學(xué)生進(jìn)行升降序排序

select * from student order by id desc;

聚合函數(shù)

sum() 求和 avg() 平均 max() 最大值 min() 最小值 count() 計數(shù)復(fù)制代碼

查詢所有學(xué)生年齡的總和

select sum(age) from student;

查詢所有學(xué)生年齡最大值

select max(age) from student;

查詢所有學(xué)生年齡最小值

select min(age) from student;

查詢學(xué)生總數(shù)

select count(id) from student;

查詢學(xué)生平均年齡

select avg(age) from student;

分組查詢

group by...

如果你進(jìn)行分組查詢的話那么你只能使用having來進(jìn)行查詢,這里我就不細(xì)說了我會在之后的面試題中來進(jìn)行具體的分析。


五、數(shù)據(jù)庫表與表之間的關(guān)系

數(shù)據(jù)庫表與表之間的關(guān)系基本上就是一下三種

1、一對多關(guān)系

  • 例子:客戶表與訂單表之間的關(guān)系,部門表與員工表之間的關(guān)系,商品分類表和商品表之間的關(guān)系。
  • 一對多建表原則:就拿上面的例子直接來說一個客戶會有多個訂單,那么客戶表就是一,訂單表就是多,創(chuàng)建表的時候就需要給‘多’的一方也就是訂單表設(shè)置一個外鍵,目標(biāo)是指向‘一’的一方的也就是客戶表的主鍵。這樣就實現(xiàn)了一對多。

2、多對多關(guān)系

  • 例子:學(xué)生表和課程表之間的關(guān)系,商品表和訂單表之間的關(guān)系,人物表和角色表之間的關(guān)系
  • 多對多建表原則:多對多的話就不在是兩張表了,而是需要添加一張中間表,是三張表進(jìn)行操作,這張中間表需要有兩個字段這兩個字段需要作為外鍵分別指向各自的自一方的主鍵。簡單的理解就是把一個多對多,變成兩個一對多。

3、一對一關(guān)系

著中關(guān)系的表開發(fā)中確實比較罕見就不舉例了。

六、多表查詢

1、交叉連接查詢(基本不會使用,這樣是得到的兩個表的乘積)

語法:select * from A表,B表;

2、內(nèi)連接查詢()

  • 隱式內(nèi)連接:select * from A表,B表 where 條件;
  • 顯示內(nèi)連接:select * from A表 inner join B表 on 條件;

3、外鏈接查詢

  • 左外鏈接:select * from A表 left outer join B表 on 條件;
  • 右外鏈接:select * from A表 right outer join B表 on 條件;

4.子查詢

簡單的理解就是將一條sql語句查詢出來的表的結(jié)果作為另一個查詢語句的表;

select * from table where table.id=(select id from table2 where table2.id=1);



轉(zhuǎn)載于:https://juejin.im/post/5b3dd6efe51d451991548579

總結(jié)

以上是生活随笔為你收集整理的数据库基础操作(二)数据库表数据的增删查改的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。