Java-MySQL

本文详细介绍了MySQL的安装步骤,包括选择安装类型、配置服务器和设置root密码。同时,讲解了数据库的基本概念,如DBMS、SQL,以及关系型数据库的特点。还涵盖了数据库的创建、删除、修改等操作,并提供了使用SQL语句进行数据插入、删除、更新和查询的示例。
摘要由CSDN通过智能技术生成

一.MySQL安装&卸载

1.1MySQL安装

1.双击打开mysql-installer-community-8.0.26.0.msi文件,
打开安装向导。

2.打开“Choosing a Setup Type”(选择安装类型)窗口

在这里插入图片描述

3.选择选择“MySQL Server 8.0.26-X64”后,单击“→”添加按
钮,即可选择安装MySQL服务器

在这里插入图片描述

4.此时如果直接“Next”(下一步),则产品的安装路径是默认的。如果想要自定义安装目录,则可以选中 对应的产品,然后在下面会出现“Advanced Options”(高级选项)的超链接

在这里插入图片描述在这里插入图片描述

5.在上一步选择好安装目录,以及产品后,点击下一步,然后如下图点击执行安装

在这里插入图片描述

在这里插入图片描述

6.配置:MySQL安装成功之后需要对服务器进行配置,点击next,得到如下窗口,点击下一步进
入配置窗口

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

7.设置服务器root超级管理员的密码,两次密码输入需要相同

在这里插入图片描述

在这里插入图片描述

8.执行配置即可

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

9.结束安装和配置

在这里插入图片描述

10.MySQL使用
**查看所有的数据库
show databases;

"informaction_schema"是MySQL系统自带的数据库,主要保存MySQL数据库服务器的系统信息
例如:数据库的名称/数据表的名称/字段名称/存取权限/数据文件所在文件夹和系统使用文件夹等

"mysql"数据库是保存了MySQL数据库服务器运行时需要的系统信息,比如数据文件夹,当前使用字符集.约束信息等

"performance_schema"是MySQL系统自带的数据库,可以用来监控MySQ的各项性能指标

"sys"数据库是MySQL系统自带的数据库,主要作用是一种方便被理解的方式展示MySQL数据库服务器的各项性能指标,帮助系统管理员和开发人员监控MySQL的技术性能

1.2MySQL卸载

1.卸载之前需要先停止正在运行的MySQL服务器
在电脑工具栏右键,打开“任务管理器”对话框,点开详细信息;

在这里插入图片描述

2.可以在对应“服务”列表找到“MySQL”的服务,如果现在是正在运行的状态,可以右键单击服务,选择“停止”选项来停止服务,如下图:

在这里插入图片描述

3.卸载软件:打开电脑控制面板,找到卸载程序,并在程序列表中找到MySQL,右键卸载即可

4.清理MySQL遗留文件:

服务目录:mysql服务的安装目录
数据目录:默认在C:\ProgramData\MySQL

5.清理注册表
在系统的搜索框中输入 regedit

  1. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MySQL服务 目录删除
  2. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL服务 目录删除
  3. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\MySQL服务 目录删除
  4. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL
    服务目录删除
  5. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL服务删除
  6. 上述位置若没有服务目录,不删即可

二.数据库概念

2.1为什么要学习数据库

我们之前学IO可以通过本地文本用来保存数据,但是操作起来非常繁琐比如:

  1. 检索或者更新修改
  2. 数据的分析和共享
  3. 数据急剧增长,大量数据保存的问题

有没有一种方式能够解决上述问题?

2.2什么是数据库

2.2.1数据库的相关概念

DB:数据库(Database)
即存储数据的"仓库",其本质是一个文件系统.它保存了一系列有组织的数据
DBMS:数据库管理系统(Database Management System)
是一种操作和管理数据库的大型软件,用于建立/使用和维护数据库.对数据库进行统一管理和控制
SQL:结构化查询语言
专门用来与数据库通信的语言

2.2.2DB/DBMS/SQL关系

数据库管理系统(DBMS)可以管理多个数据库(DB),是通过SQL来实现管理

2.2.3常见数据库

点击查看

2.3MySQL概述

1.MySQL是一个开放源代码的关系型数据库管理系统,将数据保存在不同的表中,而不是将所有的数据放在一个仓库内,这样就增加速度并提高灵活性
2.MySQL是开源的,不需要支付额外的费用
3.MySQL是可以定制,你可以修改源代码来开发自己的MySQL系统
4.MySQL支持大型的数据库,可以处理拥有上千万条记录的大型数据库
5.MySQL使用标准的SQL数据语言形式
6.MySQL可以允许运行于多个系统上,并且支持多种语言,C /C++/Python/Java/PHP等

2.4数据库系统分类

2.4.1关系型数据库管理系统(RDBMS)

这种类型的数据库是最古老的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二维表格形式

关系型数据库以行和列的形式存储数据,以便于用户理解;这一系列的行和列被称为表格,一组表组成一个数据库(DB)

表与表之间的数据有关系,现实世界中各种实体和实体之间的各种联系用关系模型来表示

关系型数据库,就是建立在关系模型基础上的数据库
关系型数据库(RDBMS)是DBMS的主流,常见的关系型数据库(RDBMS)有Oracle/MySQL/SQL Server

优势:
复杂查询:可以用SQL语言在一个表和多个表之间做非常复杂的查询
事务支持:使得对于安全性很高的数据得以访问

2.4.2非关系型数据库系统(非RDBMS)

可以基于键值对存储数据

常见非关系型数据库
键值型数据库 文档型数据库 搜索引擎 等

键值型数据库
1.键值型数据库通过key-value键值的方式来存储
2.key做为唯一标识符,优点是查找速度快,在这个方面优于关系型数据库
3.缺点就是没有办法像关系型数据一样做条件过滤
4.Redis是最流行的键值型数据库

三.MySQL使用

3.1查看所有数据库

show databases;

"informaction_schema"是MySQL系统自带的数据库,主要保存MySQL数据库服务器的系统信息
例如:数据库的名称/数据表的名称/字段名称/存取权限/数据文件所在文件夹和系统使用文件夹等

"mysql"数据库是保存了MySQL数据库服务器运行时需要的系统信息,比如数据文件夹,当前使用字符集.约束信息等

"performance_schema"是MySQL系统自带的数据库,可以用来监控MySQ的各项性能指标

"sys"数据库是MySQL系统自带的数据库,主要作用是一种方便被理解的方式展示MySQL数据库服务器的各项性能指标,帮助系统管理员和开发人员监控MySQL的技术性能

3.2自己创建数据库

# 语法格式:create database 数据库名
# 创建的时候数据库名不能用已存在的
create database user;

3.3数据库基本操作(SQL)

DDL:Data Definition Language数据定义语言:表的创建,修改

3.3.1创建表/创建数据库

语法规则:
1.create table 表名/create database 数据库名
2.create table 表名(
字段名1 数据类型1,
字段名2 数据类型2
)

3.3.2删除表/删除数据库

语法规则:
drop table 表名/drop database数据库

3.3.3修改(alter)

1.添加列
alter table 表名 add(字段名 字段类型)
2.删除列
alter table 表名 drop 字段
alter table 表名 drop column 字段名
3.删除多列
alter table student drop column 列名, drop column 列名;
alter table 表名 drop column 字段名
4.修改表名 修改列名 修改数据库
rename table 原表to新表 /rename database 原数据库名 to 新数据库名
alter table 表名 change 原列名 新列名 数据类型
5.修改列类型
alter table 表名 modify 字段 字段类型

案例代码

#查询数据库
show databases ;
#查询表格
show tables ;
#进入指定数据库
#语法格式:use 数据库;
use mysql;
use vip2106;
#DDL
#创建语法规则:create 表/DB.....
#创建表的语法:create table 表名(
# 字段名1 数据类型1,
# 字段名2 数据类型2,
# ...(最后一个字段后,不可以加',')
# )
create table student(
name varchar(10),
age int(3),
score double(3,2)
);
#修改表
#需要在表格中添加列,
#语法:alter table 表名 add(字段名 字段类型)
alter table student add(gender char(1));
#查询表结构
#语法规则 desc 表名;(为了让大家看表结构,不是DDL语句)
desc student;
#删除数据库/删除表/删除表中列
#语法规则 drop database 数据库名/drop table 表名 drop column 列名
create database test;
drop database test;
#删除表中的列
alter table student drop column name, drop column age;
alter table student drop name;
#drop column name;
#修改表名
#语法规则:rename table 原表名 to 新表名
rename table student to stu;
#修改列类型
#语法规则:alter table 表名 modify 字段名 字段类型
alter table stu modify name varchar(11);
alter table stu modify name varchar(11),modify score double(4,2);
#修改列名
#语法规则:alter table 表名 change 原列名 新列名 数据类型
alter table stu change name stu_name varchar(11);

DML:Data Manipulation Language数据操作语言:表数据的增加修改删除

3.3.4增加:使用insert语句向表中插入数据

按照表中所有字段默认顺序插入数据

/*
INSERT INTO 表名 VALUES (value1,value2,....);
值列表中需要为表的每一个字段指定值,并且值的顺序必须和数据表中字段定义时的顺序相同
*/
insert into student values('小泽玛利亚',18,98);
INSERT INTO student VALUES ('波多野', null, NULL);

为表的指定字段插入数据

/*
INSERT INTO 表名(column1 [, column2, …, columnn]) VALUES (value1 [,value2, …,valuen]);
为表的指定字段插入数据,就是在INSERT语句中只向部分字段中插入值,而其他字段的值为表定义时的默认值。
在 INSERT 子句中随意列出列名,但是一旦列出,VALUES中要插入的value1,....valuen需要与column1,...columnn列一一对应。如果类型不同,将无法插入,并且MySQL会产生错误
*/
insert into student(name) values('刘亦菲');

同时插入多条记录
INSERT语句可以同时向数据表中插入多条记录,插入时指定多个值列表,每个值列表之间用逗号分隔开,基本语法格式如下:

INSERT INTO table_name
VALUES
(value1 [,value2,, valuen]),
(value1 [,value2,, valuen]),
……(value1 [,value2,, valuen]);
#或
INSERT INTO table_name
(column1 [, column2,, columnn])
VALUES
(value1 [,value2,, valuen]),
(value1 [,value2,, valuen]),
……(value1 [,value2,, valuen]);
#例:
insert into student(name,age)
values
('蔡徐坤',19),
('罗志祥',19),
('王祖贤',30);
/*
注:VALUES 也可以写成 VALUE ,但是VALUES是标准写法。
字符和日期型数据应包含在单引号中。
*/

3.3.5删除:使用delete语句从表中删除数据

DELETE FROM table_name [WHERE <condition>];

table_name指定要执行删除操作的表;“[WHERE ]”为可选参数,指定删除条件,如果没有WHERE子句,DELETE语句将删除表中的所有记录。

使用where子句删除指定的记录

DELETE FROM student WHERE name = '小泽玛利亚';

如果省去了where子句,则表中的全部数据将被删除

DELETE FROM student

3.3.6修改:使用update语句更新数据

UPDATE table_name SET column1=value1, column2=value2,, column=valuen [WHERE
condition]

可以一次更新多条数据
使用 WHERE 子句指定需要更新的数据。

UPDATE student SET age = 70 WHERE name = '罗志祥';
#name不可以没有

如果省略 WHERE 子句,则表中的所有数据都将被更新

UPDATE student SET age = 70;
#idea里面用不可以,但是在窗口里面可以

DQL:Data Query Language数据查询语言:数据库的查询

3.3.7查询:使用select语句查询数据

select

SELECT 1; #没有任何子句
SELECT 9/2; #没有任何子句
/*
在Mysql和SQL Server中可以直接select 1不需要加from 表名就可以执行 ,而在Oracle中要满足
select from的结构:
select 1不能实现满足上述结构,于是Oracle引入dual虚拟表来满足结构。 Oracle这样表示:select
1 from dual
现在一般线上使用的MySQL都是5.5以上的,在mysql里也存在和oracle里类似的dual虚拟表:官方声明纯
粹是为了满足select ... from...这一习惯问题,mysql会忽略对该表的引用。在mysql中Dual表的使用
示例如下:
*/
SELECT 1 from dual; #没有任何子句
SELECT 9/2 from dual; #没有任何子句

select…form

SELECT 标识选择哪些列
FROM 标识从哪个表中选择

例:选择全部列

select * from student;

一般情况下,除非需要使用表中所有的字段数据,最好不要使用通配符‘*’。使用通配符虽然可以节省输入查询语句的时间,但是获取不需要的列数据通常会降低查询和所使用的应用程序的效率。通配符的优势是,当不知道所需要的列的名称时,可以通过它获取它们。
在生产环境下,不推荐你直接使用 SELECT * 进行查询

例:选择特定列

SELECT name, age FROM student;

MySQL中的SQL语句是不区分大小写的,因此SELECT和select的作用是相同的,但是,许多开发人员习惯将关键字大写、数据列和表名小写,读者也应该养成一个良好的编程习惯,这样写出来的代码更容易阅读和维护。

列的别名
重命名一个列,便于计算

紧跟列名,也可以在列名和别名之间加入关键字AS,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。
AS可以省略
建议别名简短,简明知意

SELECT name AS student_name, score student_ FROM student;

可以给列加上运算

SELECT name, score+60 "score" FROM student;

去除重复行
默认情况下,查询会返回全部行,包括重复行
SELECT语句中使用关键字DISTINCT去除重复行

SELECT DISTINCT name FROM student;
SELECT DISTINCT * FROM student;
  1. DISTINCT 需要放到所有列名的前面,如果写成 SELECT salary, DISTINCT department_id FROM employees 会报错。
  2. DISTINCT 其实是对后面所有列名的组合进行去重,你能看到最后的结果是 74 条,因为这 74 个部门id不同,都有 salary 这个属性值。如果你想要看都有哪些不同的部门(department_id),只需要写 DISTINCT department_id 即可,后面不需要再加其他的列名了。

空值参与运算
所有运算符或列值遇到null值,运算的结果都为null

SELECT name,score,(60 + score) "annual_sal" FROM student;
#处理办法
SELECT name,score,if(score is null,0,score)+60 FROM student;

这里你一定要注意,在 MySQL 里面, 空值不等于空字符串。一个空字符串的长度是 0,而一个空值的长度是空。而且,在 MySQL 里面,空值是占用空间的。

另:将查询结果插入列表中

INSERT还可以将SELECT语句查询的结果插入到表中,此时不需要把每一条记录的值一个一个输入,只需要使用一条INSERT语句和一条SELECT语句组成的组合语句即可快速地从一个或多个表中向一个表中插入多行。

基本语法格式如下:

INSERT INTO 目标表名
(tar_column1 [, tar_column2,, tar_columnn])
SELECT
(src_column1 [, src_column2,, src_columnn])
FROM 源表名
[WHERE condition]

在insert语句中加入子查询
不必写values子句
子查询中的值列表应与 INSERT 子句中的列名对应。

insert into stu select * from student where age=70;
insert into stu(name,age)
select name,age
from student where age=70;

3.4MySQL常见数据类型

3.4.1整形

mysql整形范围
tinyint(m)1个字节 范围(-128~127)
smallint(m)2个字节 范围(-32768~32767)
mediumint(m)3个字节 范围(-8388608~8388607)
int(m)4个字节 范围(-21亿~21亿)
bigint(m)8个字节 范围

int(m)里的m是表示查询结构中显示宽度,并不会影响实际的取值范围

3.4.2浮点型

mysql浮点型范围
float(m,d)单精度浮点型 8位精度(4个字节)m总个数,d表示小数位
double(m,d)双精度浮点型 16位精度(8个字节)m总个数,d表示小数位

例如: 定义字段float(5,3),如果插入一个数123.456789,实际存储的是123.457

3.4.3数值型

numeric(10,2) 是指字段是数值型,表示总位数表示10,小数点2位的数,也是就是这个字段整数为8

3.4.4字符型

mysql字符型含义
char(n)固定长度,最多255个字符
varchar(n)固定长度,最多65536个字符
tinytext可变长度,最多255个字符
text可变长度,最多65536个字符
mediumtext可变长度,最多2的24次方-1个字符
longtext可变长度,最多2的32次方-1个字符

char(4)不管是存入几个字符串,都只占4个字节

varchar和text:

  1. varchar可以指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节或2个字节text是实际字符数+2个字节
  2. text类型不能有默认值
  3. varchar可以直接创建索引,text创建索引要指定前多少个字符,vhar查询速度快text

3.4.5日期型

mysql日期型含义
data日期"2021-11-18"
time时间"21:23:00"
datatime日期时间"2021-11-18 21:23:00"
timestamp自动存储记录修改时间

若定义一个字段timestamp,这个字段的时间数据会跟随其他字段修改的时间自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的时间

四.MySQL的登录/链接

4.1登录1

开始菜单-搜索mysql-选择MySQL x.x Command Line Client
在这里插入图片描述输入安装时设置的密码回车
在这里插入图片描述

4.2登录2

win+r,输入cmd按回车
输入:
# mysql -h 主机名 -P 端口号 -u 用户名 -p密码
例如:
# mysql -h localhost -P 3306 -u root -p123456
#mysql -u root -p123456
在这里插入图片描述
注:
1.上述在使用的时候发现有的有空格有的没有空格,这里需要注意-p与密码之间不能加空格,其他的可有可无
2.客户端和服务器在同一台机器上,所以输入localhost或者IP地址127.0.0.1。同时,因为是连接本机: -hlocalhost就可以省略,如果端口号没有修改:-P3306也可以省略

4.3登录3(链接Navicat)

使用Navicat登录数据库,打开Navicat-点击连接
在这里插入图片描述填入相关信息
在这里插入图片描述如下图表示添加成功,则直接点击确定
在这里插入图片描述双击打开刚创建的mysql连接
在这里插入图片描述可以在界面中点击想要的建表等操作在这里插入图片描述

4.4登录4(链接SQLyong)

打开SQLyong,填入相应信息,点击测试连接。如果成功则点击Connect连接在这里插入图片描述在下面这个窗口中可以写相应的代码命令在这里插入图片描述

4.5登录5(链接idea)

使用idea登录数据库
在idea中找到Database窗口点击加号,选择MySQL选项在这里插入图片描述需要赋值的字符串是
serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
在这里插入图片描述打开如下窗口在红框位置处可以写相应的代码以及命令在这里插入图片描述

五.练习题

1,在学生信息表中选择出所有的学生学号。
2,在学生信息表中选择出学生姓名和高考分数。
3,在学生信息表中选择出所有的学生年龄,并且不能重复。
4,在学生信息表中选择出所有学生的学号,姓名,生日。
5,在分数信息表中选择出所有信息。
6,系主任表中选择出所有系主任的姓名。
7,在分数信息表中选择出所有学生学号和体育成绩。
8,在系部信息表中选择出所有的系编号和系名字。
9,在分数信息表中选择出所有英语和数学成绩。
10,在学生信息表中选择出所有的年龄,班级,系编号,并且不允许重复。
11,在学生信息表中选择出第一个到第十个的人的姓名。
12,在分数信息表中选择出第三个到第十二个人的语文成绩。
13,从学生信息管理表中选出所有学生的姓名、英文名、电话,并去掉重复行,在结果中取前8个结果。

----------------------------------------------------------------------------------------------
14,在分数信息表中输出所有学生体育成绩加上50的结果,并去掉重复行。
15,在分数信息表中输出所有学生的学号及语数外三课的成绩和。
16,在学生信息表中输出十年后学生的年龄及高考减100分的结果,在结果中取第4到第8行结果。
17,在学生信息表中输出所有学生的高考成绩,如果有空值则输出11118,在系部信息表中输出系的编号和人数的乘积的结果。
19,在学生信息表中输出年龄加班级编号加系编号加高考成绩的和,如果高考成绩没有则为020,在学生信息表中输出所有学生的姓名并重命名为“姓名”。
21,使用concat函数在系主任表中输出“***系主任的电话是***”,将结果取别名“信息”。
22,在学生信息表中输出所有学生10年前的年龄并重命名为“年轻 十岁”。
23,找出学生姓名和高考分数加100后的结果,并将高考分数加100取别名“最终分数”,如果高考分数为空就设置为100,去掉结果中的重复项,并取第二到第七个的结果
24,使用concat函数在学生信息表中输出所有“莫某高考成绩是***”。
25,使用concat函数在系部信息表中输出所有“某某系的系主任是***”。
26,系主任管理表中使用concat输出“系主任***的编号是***,他的电话是***,他十年以前的年龄是***”;
27,在学生信息表中使用concat输出信息:“我的名字叫 sname,我的性别是**,今年*岁,我是*班,我的分数是*,我的英文名字是*,我的电话是*” 取别名“个人信息” (如果有属性为空则给默认值0;

-----------------------------------------------------------------------------------------------------
28,在学生信息表中输出所有学生的姓名和高考成绩并按照高考成绩的升序排列。
29,在分数信息表中输出学生的学号和体育成绩并按照英语成绩的降序排列,并取前5位数据。
30,在学生信息表中输出所有学生的姓名和高考成绩并按照年龄的降序排列。
31,在学生信息表中输出所有学生的姓名和学号并按照学号的降序排列。
32,在学生信息表中输出所有学生的姓名和生日成绩并按照生日的升序排列。
33,在学生信息表中输出所有学生的信息并按照年龄的升序和高考成绩的降序排列。
34,在学生信息表中输出所有学生姓名和生日并按照班级的降序和年龄的降序及成绩的升序排列。
35,在分数信息表中输出所有学生的学号和各门课成绩的总和,并按照成绩总和的降序排列。
36,在学生信息表中用concat函数输出"**的生日是**",并按照年龄的降序排列。
37,在学生信息表中所有学生的姓名和电话,并给电话去别名"电 话",并按照年龄和班级升序排序,取第二个到第八个数据。
38,在学生信息表中找出所有学生的信息,并按照班级编号的升序和年龄的降序排列。
39,在学生信息表中找出所有学生的信息,并按照系部编号的升序和班级编号的降序和年龄的升序排列,并取前八个数据。
40,在分数信息表中输出最高分学生的学号。
41,在学生信息表中找出最大年龄的学生的信息。

------------------------------------------------------------------------------------------

42,在学生信息表中找出英文名是 Sweet的学生的姓名和生日。
43,在分数信息表中找出学号是1212的学生的四门成绩的总和。
44,在系部表中找出建筑系的全系的人数。
45,在学生信息表中找出***的年龄和生日并给生日重命名为“出生日期”。
46,在学生信息表中输出所有学生的信息并按照年龄的升序和高考成绩的降序排列。
47,在学生信息表中输出所有学生姓名和生日并按照班级的降序和年龄的降序及成绩的升序排列。
48,在学生信息表中找出年龄是20岁的人的所有学生的姓名和高考分数,并按照班级升序排列。
49,在分数信息表中找出学号是1210的体育成绩和数学成绩。
50,在学生信息表中输出英文名是Apple的学生的学号和20年后的年龄并重命名为“中年”。
51,在学生信息表中找出高考成绩为空的学生的所有信息。
52,在学生信息表中找出1990年以后出生的学生并去掉重复项,并按照学号降序排列。
53,在分数信息表中找出数学成绩不及格的学生。
54,在分数信息表中找出语文成绩90以上且数学成绩80以上且英语成绩70以上的学生的学号。
55,在分数信息表中找出至少有一门成绩不及格的学生的学号。
56,在学生信息表中找出3班的且高考成绩大于500的  或者 1班的学生的所有信息。
57,在学生信息表中找出1992年以后出生且所在系的编号为4的学生的所有信息。
58,在分数信息表中找出语文分数在7090之间的学生的英语成绩。
59,在分数信息表中找出体育不及格或者数学不及格的学生的学号。
60,在学生信息表中找出500分以下的学生,并按照年龄降序排列,然后取第2个到第4个值。
61,在学生信息表中找出学号小于1210的学生的姓名和生日,取前5个人。
62,在学生信息表中找出年龄大于等于18且是3班且学号小于等于1211的学生所有信息,并按照成绩降序排列并取前两个人。


---------------------------------------------------------------------------

63,在分数表中英语成绩不及格,或数学成绩不及格或语文及体育成绩都不及格的学生的学号。
64,在学生信息表中找出学号为120412101230 或者年龄为202122岁的学生姓名(取别名)65,在学生信息表中找出Apple、Fish、Coffee三个人的所有信息。
66,在学生信息表中找出系编号为134的所有学生的信息并按照年龄的升序和分数的降序排列。
67,在分数信息表中找出数学分数是68889198的学生的学号并按照学号的降序排列。
68,在学生信息表中找出除和Yellow和Coffee以外的其他学生的所有年龄和班级并去掉重复行。
69,在分数信息表中找出除了英语分677787以外的分数的所有学生学号和体育成绩并且将体育成绩重命名为“abc”。
70,在学生信息表中使用like找出名字中含有“丽”字的所有学生的信息。
71,在学生信息表中使用like找出英文名字中以“C”开头的学生的所有信息。
72,在学生信息表中使用like找出英文名字中含有“ee”且是3班的学生的所有信息。
73,在学生信息表中使用like找出英文名字中以“e”结尾且有5位字符的学生的所有信息。
74,在学生信息表中使用like找出姓王的学生或者名字只有两个字的学生的姓名和学号,并按照分数的降序排列。
75,在学生信息表中输出学号和他们的四门课的分数总和并重命名为总成绩。
76,在学生信息表中使用like找出英文名含有“ff”或“ee”或“oo”的学生的所有信息,并按照年龄降序排列。
77,在学生信息表中使用like找出英文名含有字母“e”和“a”的且这两个字母都不在名字的首尾  的学生的姓名和英文名。
78,在学生信息表中使用like找出中文名字是两个字且英文名字含有“e”的学生的姓名和英文名。
79,在学生信息表中使用like找出中文名字三个字且英文名字6个字符的学生的所有信息。


------------------------------------------------------------------------------------------
80,在学生信息表中使用like找出电话号码以13开头以01结尾的学生姓名、电话。
81,在学生信息表中找出名字为三个字且是1990年以后出生的学生的信息。
82,在学生信息表中找出高考分数大于500、英文名以字母“S”开头的女生的姓名和学号。
83,在系主任表中找出每个系主任的姓(重命名)、编号、电话。
84,在学生信息表中找出所有人的英文名字和中文名字并用函数将英文名字字母都转换成大写的。
85,在学生信息表中找出所有人的英文名字的首字母(如果有空格要去掉空格),并重命名为“FirstWord”。
86,在学生信息表中找出所有人的姓和学号,并按照学号的降序排列。
87,在学生信息表中找出所有人的英文名字的第3个字母并转换成大写字母,并按照分数的降序排列。
88,在学生信息表中找出所有人的学号和姓,并用连接符输出连接效果如:“1201的姓是*”。
89,在学生信息表中找出所有人的英文名字的长度并去掉重复项。
90,在学生信息表中找出所有人的英文名字第3到第5个字符并重命名。
91,在学生信息表中找出所有人的英文名字并去掉左边和右边的空格,并全部转换为大写。
92,在学生信息表中找出所有男生的姓名、英文名、英文名的最后一个字母(重命名为末尾字符)93,在学生信息表中找出姓名为两个字的学生的姓 和 和英文名的长度(空格不计算长度)94,在学生信息表中找出英文名长度为3个字符的学生的姓名、电话。


---------------------------------------------------------------------------------------


95,用正则表达式在学生信息表中找出英文名字含有“a”字母的学生的姓名和学号,并按照学号的降序排列。
96,用正则表达式在学生信息表中找出电话号中含有38的学生的姓名;
97,用正则表达式在学生信息表中找出英文名中含有a或b或c,且含有d或e或f的学生的年龄,并去掉重复项。
98,用正则表达式在学生信息表中找出名字中含有“李”字的学生的姓名和生日,并将生日重命名为“生日”。

99,用正则表达式在学生信息表中找出英文名字匹配有5个字符的学生的姓名和年龄的10倍的值。
100,用正则表达式在学生信息表中找出手机号有11位数字的学生的所有信息。
101,用正则表达式在学生信息表中找出手机号以13开头以33结尾的学生的姓名和手机号。
102,用正则表达式在学生信息表中找出英文名字不含有l-p之间字母的学生的姓名和英文名字,并按照分数的降序排列。
103,用正则表达式在学生信息表中找出手机号含有三个3且含有25的学生的姓名和手机号。
104,用正则表达式在学生信息表中找出英文名字中含有特殊字符的学生。
105,用正则表达式在学生信息表中找出英文名字中含有空格的学生。
106,用正则表达式在学生信息表中找出英文名字中含有“.”或“\”的学生。
107,用正则表达式在学生信息表中找英文名中含有连续的2个“a”或者连续的3个“e”的学生。
108,用正则表达式在学生信息表中找出英文名字以“A”开头的学生的姓名和学号。
109,用正则表达式在学生信息表中找出英文名字以“e”结尾的学生的信息。

-----------------------------------------------------------------------------

110,用函数获取当前日期和当前时间。
111,在学生信息表中找出所有人的姓名和他出生的月份,并按照他们的月份的升序排列。
112,在学生信息表中找出所有人的学号和他们出生的星期几(英文)113,在学生信息表中找出所有人中文名和英文名字及英文名字的第2个和第4个字母。
114,在学生信息表中找出所有人中文名和英文名字及英文名字最后一个字母的大写。
115,在学生信息表中找出所有人中文名和英文名字及英文名字的长度。
116,在学生信息表中找出所有人中文名和英文名字及英文名字字母倒序。
117,在学生信息表中找出英文名字中第三字母是“a”,且高考分数500一下,且性别是女的学生的姓名和电话,并按照学号升序排列。
118,在学生信息表中找出年龄数字以“8”结尾的学生的学号和姓名。
119,在学生信息表中找出英文名字以“A”开头,以“k”结尾的学生的中文名和英文名,并按照学号降序排列。
120,在学生信息表中输出每个学生的姓名和生日,以及他们是一年中第几个星期出生的数字,并按照此数字排序。
121,在学生信息表中输出当前星期的英文,及当前日期的月份,及当前日期是今年第多少个星期,并分别取别名。
122,在学生信息表中输出手机号中含有三个“6”的学生的生日和出生的月份。
123,在学生信息表中输出手机号中含有两个“1”和两个“0”的学生的生日和出生日期是当前年的第几周。


---------------------------------------------------------------------------------------

124,在学生信息表中找出所有人的姓名和他出生的月份的英文、星期的英文并取前10个结果。
125,在学生信息表中找出所有人的姓名和他的生日加上100天后的日期及生日减去100天后的日期。
126,在学生信息表中找出所有人的姓名和他的生日跟今天日期相减的数。
127,在学生信息表中找出所有人的姓名和他的生日,并且生日按照格式“1990-09-21”。
128,在学生信息表中找出所有人的姓名和他的生日,并且生日按照格式“1990/09/21日”。
129,在学生信息表中找出所有人的姓名和他的生日,并且生日按照格式“1990/September/Monday”。
130,将今天的日期按照“日--年”输出。
131,在学生信息表中输出所有学生的姓名和生日,生日按照'%m-%d-%Y'的格式输出,且结果按年龄降序排列。
132,在学生信息表中输出所有学生的姓名和他们的生日加上10天后的日期。
133,在学生信息表中输出所有学生的姓名和他们的生日减去一个月后的日期并重命名为“虚生日”,且结果按照学号降序排列。
134,在学生信息表中输出以学生年龄为半径圆的面积,并从小到大排序后取前8个数。
135,在学生信息表中输出姓名和用date_format函数用英文输出学生生日的月,日。并取第510个数据出来。
136,在分数信息表中求出语文、数学、英语的平均成绩,并重命名为“语文平均”、“数学平均”、“英语平均”。
137,在学生信息表中输出所有学生的平均年龄和平均分数。
138,在学生信息表中计算出年龄在1822随之间且成绩大于500分的共有多少人。
139,在系部管理表中计算出人数在500以上的系的所有系的平均人数。
140,在分数信息表中求出每门课的最高成绩和最低成绩。
141,在分数信息表中求出每门课的总成绩并重命名为全班总成绩。
142,在学生信息表中计算出1990年以后出生的学生的最高分并重命名。
143,在学生信息表中计算出分数大于500且年龄小于20且是1班的学生一共有多少个。
144,在学生信息表中输出年龄最大的学生的姓名和年龄。
145,在学生信息表中统计出一共有多少个班(去掉重复)。
146,在学生信息表中输出平均年龄,平均分数,并分别去别名“平均年龄”、“平均分数”。


-----------------------------------------------------------------------------------------------



147,在学生信息表中计算出共有多少个不同的年龄。
148,在学生信息表中计算出所有学生成绩的和并去掉相同项。
149,在学生信息表中计算出20岁以下学生的分数总和,相同的分数只计算一遍。
150,在学生信息表中输出每个班的班号和最高分,取前2名。
151,在学生信息表中输出每个班的班号和人数并按照班号降序排列。
152,在学生信息表中输出每个系的系编号和系里面最小的一位学生的年龄,并重命名,结果按照系编号降序排列。
153,在学生信息表中输出每个班的班号和平均分数及最低分和最高分并重命名。
154,在学生信息表中输出每个系的系编号及18岁以上有多少人,并按照系编号降序排列。
155,在学生信息表中输出每个班的班级编号及班上名字是3个字的学生的个数并重命名,按照学生的个数的降序排列。
156,在学生信息表中输出每个系的系编号及系里面手机号是以“15”开头的学生的个数,按照系编号降序排列。
157,在学生信息表中输出17,19,20的年龄各有多少人,并按照人数的降序排列。
158,在学生信息表中输出每个班的班级编号及每个班有学号大于1208且年龄小于20且名字是两个字的学生的个数。
159,在学生信息表中输出每个系里面的每个班的系编号、班级编号、最高分、最低分。
160,在学生信息表中将450分以上的学生按照年龄分组,输出每个组的年龄和总人数,并按照年龄的降序排列。
161,在学生信息表中将男生按照班级分组,输出班级编号、每个班平均年龄、最高分数。
162,在学生信息表中将分数是450分以上的学生按照班级和年龄分组,输出每个组的人数,并用rollup统计。
163,在学生信息表中将19岁以上且分数是460分以上的学生按照系编号分组,并用rollup统计。
164,在学生信息表中统计出每个班的最大年龄,并将最大年龄大于19岁的班级输出班级编号和最大年龄,并按班级的降序排列。
165,在学生信息表中统计出每个系的平均分数和平均年龄,并将平均分数小于550的结果输出来。
166,在老师信息表中统计出男女各有多少人,并按照人数降序排列。
167,在学生信息表中将1990年以后出生的学生且有系编号有班级编号的学生按照系编号、班级编号分组,统计出每个组的人数。输出每个组的系编号、班级编号和人数并按照人数升序排列取前3个结果。

--------------------------------------------------------------------------------

168,在学生信息表中查找出跟“Apple”在同一个班的学生的个数。
169,在学生信息表中查找出最高分的学生的姓名和电话号。
170,在学生信息表中查找出考试分数在平均分以下的学生的学号和姓名,并按学号的降序排列。
171,在学生信息表中查找出年龄比Orange小但分数比Tea高的学生的姓名和电话号,并按照电话号降序排列,并取前两个值。
172,在学生信息表中查找出班级平均分比全校平均分低的班级编号,最高分,最低分,平均分,并按班级编号降序排列。
173,在学生信息表中将学生按年龄分组,统计每个组有多少人,筛选出人数正好等于3班人数 的组。
174,在学生信息表中查找出与120112031205号学生相同年龄的学生的学号、姓名、年龄,并按照学号降序排列。
175,在学生信息表中查找出与系编号为1的学生的年龄都不相同的学生的姓名、分数,并按照分数升序排列取前5个结果。
176,在学生信息表中查找出比 500分以上的学生的年龄大的学生姓名 或者 比1992年以前出生的学生分数高的学生姓名。
177,在学生信息表和系部管理表中查找出学号为121012131217的学生的姓名和他的系的名字。

178,系部管理表和系主任管理表中输出每个系的编号和系所对应的系主任的编号和名字。
179,在学生信息表和分数表中输出每个学生的学号、姓名、体育成绩(取别名体育成绩)、英语成绩(取别名英语成绩)。
180,在学生信息表和系部管理表中输出每个系的编号和系名字及每个系在学生信息表中的人数。
181,使用联结在学生信息表和分数表中输出每个学生的姓名和他们的各门课的成绩。
182,使用联结在学生信息表和系部表中输出每个学生的姓名和他们的系名。
183,使用联结在系部表和系主任表中输出每个系的编号、系名字、系主任名字,并按照系编号降序排列。
184,使用联结在系部表和学生信息表中输出分数最高的学生的姓名和他所在系的名字。









  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

走高冷路线

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值