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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql求表中年龄同张三,mysql子查询与连接查询

發布時間:2023/12/10 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql求表中年龄同张三,mysql子查询与连接查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

表結構以及數據:

CREATE TABLE`student` (

`id`int(11) NOT NULLAUTO_INCREMENT,

`name`varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

`age`int(11) NULL DEFAULT NULL,PRIMARY KEY(`id`) USING BTREE

) ENGINE= InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

INSERT INTO `student` VALUES (1, 'zazr', 11);INSERT INTO `student` VALUES (2, 'jkg', 20);INSERT INTO `student` VALUES (4, 'zazr', 11);INSERT INTO `student` VALUES (5, 'jkg', 12);INSERT INTO `student` VALUES (6, 'lgh', 13);INSERT INTO `student` VALUES (7, 'zazr', 11);INSERT INTO `student` VALUES (8, 'jkg', 12);INSERT INTO `student` VALUES (9, 'lgh', 13);INSERT INTO `student` VALUES (10, 'zazr', 11);INSERT INTO `student` VALUES (11, 'jkg', 12);INSERT INTO `student` VALUES (12, 'lgh', 13);

查詢表中所有數據:

SELECT * FROM student;

查詢表中年齡的平均值:

SELECT ROUND(AVG(age),0) from student;

ROUND、AVG都是聚合函數,ROUND(小數,2)表示這個小數四舍五入保留2位小數;AVG求平均值

查詢表中年齡大于等于平均值的學生姓名(子查詢):

SELECT name FROM student WHERE age>=(SELECT ROUND(AVG(age),0) FROM student);

將表中的不同姓名插入到另一張NAME表中:

創建表:

CREATE TABLE NAME(

-> id int(11) NOT NULL AUTO_INCREMENT KEY,

-> name VARCHAR(20));

SQL語句:

INSERT name(name) SELECT name FROM student GROUP BY name;

將student表中的name值,替換成name表所對應的id(內連接):如果student的name等于name表中的name,則將student表中的name換成對應的id

UPDATE student INNER JOIN name ON name.name=student.name SET student.name=name.id;

此時可以看:id為1對應的是name表中id為3的名字:zazr

向student中添加兩條記錄:

INSERT student VALUES(NULL,"10",24);

INSERT student VALUES(NULL,"8",30);

向name中添加兩條記錄:

INSERT name VALUES(NULL,"張三");

INSERT name VALUES(NULL,"李四");

內連接:

查詢student和name表滿足相同條件的記錄:student表中新加入的10和8,與name表中的id為4,5的沒有對應關系,所以不會顯示,條件就是student.name=name.id;

SELECT student.id,name.name FROM student INNER JOIN name ON student.name=name.id;

左外連接:顯示左表中的全部以及與右表符合條件的記錄

將查詢改為左外連接查詢:顯示student全部id數據,不過對應的name為NULL;

SELECT student.id,name.name FROM student LEFT JOIN name ON student.name=name.id;

右外連接:

將查詢改為右外連接查詢:顯示name全部name屬性數據,不過對應的student的id為NULL;

SELECT student.id,name.name FROM student RIGHT JOIN name ON student.name=name.id;

總結

以上是生活随笔為你收集整理的mysql求表中年龄同张三,mysql子查询与连接查询的全部內容,希望文章能夠幫你解決所遇到的問題。

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