本文作者:kris

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比

kris 2025-01-29 05:12:19 3
与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比摘要: mysql的修改语法?在mysql中可以使用【alter table 旧表名 rename 新表名;】语句修改表名,如【mysql> alter table TYPE...

mysql的修改语法?

在mysql中可以使用【alter table 旧表名 rename 新表名;】语句修改表名,如【mysql> alter table TYPE rename type;】。

1、修改表名

用法:alter table 旧表名 rename 新表名;

mysql> alter table TYPE rename type;

2、修改表的列名

用法:alter table 表名 change 旧表名 新表名 类型;

mysql> alter table type change name type_name varchar(30) not null;

3、修改表某一列的类型

用法:alter table 表名 modify 列名 类型;

mysql> alter table type modify type_name varchar(100);

4、增加一列

用法:alter table 表名 add 列名 类型;

mysql> alter table type add age int(11);

5、删除一列

用法:alter table type drop 列名;

mysql> alter table type drop age;

在MySQL中显示数据表orders的表结构语法是什么?

下面是mysql输出表结构的sql语句:

SELECT COLUMN_NAME,--字段名称

DATA_TYPE,--字段数据类型

COLUMN_COMMENT,--字段注释

IS_NULLABLE --字段是否为空

FROM

INFORMATION_SCHEMA.Columns

WHERE

table_name='" + tableName + "' --表名

AND

table_schema='" + databaseName + "'--数据库名

懂mysql的来帮忙下关于limit语法?

limit是mysql中限制结果集行数的。这样的写法会不会重复也不一定,因为你没有对结果集排序,所以记录顺序可能不是一定的。排序后顺序就确定了,比如:select * from a order by 某列 limit 0,100

学了一阵Sql语法,想具体实践一下,有没有一些附带答案和练习数据的mysql练习题?

最近刚好在头条写了三篇关于MySQL的SQL语法实战文章,这里大概列举其中部分练习题,文末附全部文章链接,有兴趣的可以跳转阅读。


演示数据

我们将以下面演示数据为例开展相关SQL语法练习,演示数据涉及学生信息表、教师信息表、课程信息表、成绩信息表,具体建表语句及数据如下:


学生信息表

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比

我们向学生信息表中插入如下4条数据:

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比


教师信息表

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比

我们向教师信息表中插入如下3条数据:

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比


课程信息表

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比

我们向课程信息表中插入如下3条数据:

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比


成绩信息表

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比

我们向成绩信息表中插入如下11条数据:

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比

通过上述SQL我们可以创建 学生、教师、课程、成绩信息表,并插入样例数据,产生如下演示数据:

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比


练习如下

1 查询所有同学的学生编号、学生姓名、选课总数、所有课程的平均成绩。

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比

上述SQL执行结果如下:

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比


2 查询平均成绩高于60 分的学生编号和学生姓名和平均成绩。

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比

上述SQL执行结果如下:

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比

在该例子中用到了 any_value 函数,该函数有什么作用呢,如下:

  • 自 MySQL5.7版本之后,sql_mode 中 only_full_group_by 模式默认为打开状态。
  • only_full_group_by 就是确定 select target list 中的所有字段都是明确语义,即在此模式下 select target list 中的字段 要么是来自于聚合函数(sum、avg、max等)的结果,要么是来自于 group by 中的表达式的值,除此之外都将触发异常。
  • 因此,MySQL提供了any_value 函数来抑制 only_full_group_by 值被拒绝,any_value 会选择被分到同一组的数据里第一条数据的指定字段值作为返回数据。

使用内连接,同样可以实现查询平均成绩高于60 分的学生编号和学生姓名和平均成绩,如下。

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比


3 获取各课程的平均成绩,降序排列,若平均成绩相同时,按课程编号升序排列。


与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比

上述SQL执行结果如下:

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比


4 获取数学(Math)课程成绩不低于90分的学生学号、姓名班级、成绩信息。

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比

上述SQL执行结果如下:

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比


5 获取语文(Chinese)课程成绩不超过60分的学生学号、姓名班级、成绩信息,按分数降序排列的学生信息。

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比

上述SQL执行结果如下:

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比


6 获取班级的数学(Math)课程平均成绩大于90分的班级。

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比

上述SQL执行结果如下:

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比


7 获取没有缺考的学生的学号、姓名、班级信息。

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比

上述SQL执行结果如下:

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比


8 获取所有学生的课程及分数情况(存在学生没成绩,没选课的情况)

与MSSQL对比学习MYSQL的心得(一)--基本语法-mssql mysql对比


相关阅读:

学以致用,语法基础实战:

学以致用,语法进阶实战:

学以致用,语法强化实战:

文章版权及转载声明

作者:kris本文地址:https://www.damoyx.com/p/28359.html发布于 2025-01-29 05:12:19
文章转载或复制请以超链接形式并注明出处大漠游侠网

阅读
分享