• MySQL 之 扩展例子


    扩展例子

    插入一条记录

    INSERT INTO 表名 [(字段1,…,字段n)] VALUES (值1,…,值n)

    插入查询的结果

    INSERT INTO 表名 (字段1,…,字段n) VALUES 子查询

    例如:INSERT  INTO  Scores  VALUES ("990301", "大学计算机基础", 98)

    DELETE FROM 表 [WHERE 条件]

    注意: WHERE子句缺省,则删除表中所有的记录(表还在)

    例如::DELETE FROM Scores WHERE 成绩<70

    UPDATE 表 SET 字段1=表达式1, … ,字段n=表达式n [WHERE 条件]

    注意: WHERE子句缺省,则修改表中所有的记录

    例 将表Students中学生王涛的姓名改为王宝球

    UPDATE  Students  SET  姓名=“王宝球”  WHERE  姓名="王涛"

    例 将表Students中助学金低于200的学生加30元

    UPDATE  Students  SET  助学金=助学金+30  WHERE  助学金<200

    UPDATE语句一次只能对一个表进行修改

    选择字段:

    例7.10  查询所有的专业,查询结果中不出现重复的记录

    SELECT DISTINCT 专业 FROM Students;

    例7.11  使用合计函数,查询学生人数、最低助学金、最高助学金和平均助学金

    SELECT    Count(*) AS 人数,        Min(助学金) AS 最低助学金,    Max(助学金) AS 最高助学金,   Avg(助学金) AS 平均助学金

    FROM Students

    例7.12 查询学生的姓名和年龄

    SELECT 姓名, Year(Date())-Year(出生年月) AS 年龄 FROM Students

    选择记录:

    例7.13  显示所有非计算机专业学生的学号、姓名和年龄

    SELECT 学号, 姓名, Year(Date())-Year(出生年月)  AS 年龄 FROM Students WHERE 专业<>"计算机"

    例7.14 查询1981年(包括1981年)以前出生的女生姓名和出生年月。

    SELECT 姓名,出生年月 FROM Students  WHERE 出生年月 < #1/1/1982#  AND 性别="女"

    排序:

    例7.15 查询所有党员学生的学号和姓名,并按助学金从小到大排序。

    SELECT 学号, 姓名  FROM  Students  WHERE 党员=True  ORDER BY 助学金

    可用多个关键字排序。例如,ORDER BY 专业 ASC, 助学金  DESC

    ASC:表示升序,DESC:表示降序。

    分组查询:

    例7.16 查询每个专业学生人数。(简单分组)

    SELECT 专业, count(*) AS 人数  FROM students  GROUP BY 专业;

    例7.17 查询各专业男女生的平均助学金(复杂分组)

    SELECT 专业,性别, Avg(助学金) AS 平均助学金  FROM Students  GROUP BY 专业, 性别

    将专业和性别都相同的记录分在一组。

    例7.18 对Scores表查询有2门课程成绩在75以上的学生的学号和课程数。分组后过滤

    SELECT 学号, Count(*)  AS 课程数 FROM Scores  WHERE 成绩>=75 GROUP BY 学号

    HAVING Count(*)>=2

    连接查询:

    例7.19 查询所有学生的学号、姓名、课程和成绩

    SELECT  Students.学号,Students.姓名,Scores.课程, Scores.成绩  FROM  Students, Scores

    WHERE  Students.学号 = Scores.学号

    自动生成语句:

    SELECT Students.学号, Students.姓名, Scores.课程, Scores.成绩 FROM Students INNER JOIN Scores  ON  Students.学号 = Scores.学号

    例7.20 查询选修了“高等数学”课程的学生的学号、姓名和成绩。

    SELECT  Students.学号, Students.姓名, Scores.成绩  FROM  Students, Scores

    WHERE  Students.学号=Scores.学号 AND Scores.课程="高等数学"

    上述语句可以改写为:

    SELECT  Students.学号, Students.姓名, Scores.成绩 FROM  Students INNER JOIN  Scores

     ON Students.学号 = Scores.学号 WHERE Scores.课程="高等数学"

    嵌套查询:在SQL中,将一个SELECT语句查询块嵌套在另一个SELECT语句的WHERE子句或HAVING子句中称为嵌套查询

    例7.21 查询没有学过大学计算机基础的学生的学号、姓名和专业

    SELECT Students.学号, Students.姓名, Students.专业 FROM Students

    WHERE Students.学号 Not in

    (SELECT Scores.学号 FROM Scores  WHERE Scores.课程="大学计算机基础")

    例7.22 查询与“邓倩梅”在同一个专业的学生的学号和姓名

    SELECT Students.学号, Students.姓名 FROM Students  WHERE 专业 in

    (SELECT Students.专业  FROM Students  WHERE  Students.姓名="邓倩梅")

  • 相关阅读:
    leetcode : 3 sum
    leetcode : Merge two sorted lists
    算法:海量数据问题
    计算机基础:数据库
    计算机基础:Linux
    Java:JVM
    Java:Basic/集合框架/多线程
    Java:面试题
    框架:SSM整合
    LeetCode: Tags-[Bit Manipulation]
  • 原文地址:https://www.cnblogs.com/li-20151130/p/7455189.html
Copyright © 2020-2023  润新知