我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql基本操作

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql基本操作

Mysql基本操作

二、删除已经有的数据库school

三、创建新数据库myschool

四、进入到myschool

五、查看myschool库中所有的表

六、新建一张student

七、查看student表结构

八、插入两个学生的信息

九、再次查询表中数据

十、给student表添加两列:agesex,age默认值为0,sex默认值为’m’

十一、给student表插入zhangsan这个学生信息,性别与age都使用默认值

十二、给student表插入zhansan这个学生信息,性别与age不使用默认值

十三、修改sex列的类型由char(4)改为char(8)

十四、修改sex列名为gender

十五、修改表名由student变为stu

十六、新建表score

十七。给score设置联合主键(stuId,subject)

十八、给score设置外健列stuId,使它引用stu表的id

十九、给score表添加四行数据,分别是tome,jim,zhangsanC++Java考试成绩

二十、再添加一条10号学生的java成绩(其实这个学生在stu表中根本不存在,我们用此操作引发的错误来验证联合主键与外键)

二十一、修改所有学生C++考试成绩都为100

二十一、为了不重名,我们修改score表中的score列名为exam_score

二十二.修改1号学生C++,Java考试成绩都为89

二十二.只修改1号学生Java考试成绩都为30

 

二十三,删除学号为2的学生的Java成绩

二十三,删除学号为3的学生的所有成绩

二十四、为了测试的需要,再给学生表添加5条数据

二十五、修改tomage21jim22

二十六、查询5号学生的全部信息(共4列)

二十七、查询5号学生的学号和姓名信息(2列)

二十八、查询小于5号(不包括5号)学生的学号和姓名信息(2列)

二十九、查询小于5号(包括5号)学生的学号和姓名信息(2列)

三十、查询大于5号(不包括5号)学生的学号和姓名信息(2列)

三十一查询大于5号(包括5号)学生的学号和姓名信息(2列)

三十一查询大于3号(包括3号)且小于7(包含7号)学生的学号和姓名信息(2列)

三十一查询大于3号(包括3号)且小于7(包含7号)学生的学号和姓名信息(2列)用between....and

三十二、查询3579号学生学号和姓名信息(2列)

三十二、查询3579号学生学号和姓名信息(2列)

in运算符

 

三十三、查询不是3579号学生学号和姓名信息(2列)

not in运算符

 

 

34.若某一列可以为null,如果输入null值呢?

当你插入一行新数据的时候,忽略想输入null值的列,则它的值自然就是null.也可以赋值时给个NULL,NULL绝不能加双引号,比如”NULL”,那成了字符串,是有数据的,只不过内容是NULL.

可以通过如下方式验证:

查询学生表中性别不为null的信息

查询姓名是以”s”开头的学生信息

查询姓名中第2个字母是s的学生信息

查询姓名由5个字母构成的学生记录

查询姓名由5个字母构成,并且第5个字母为“i”的学生记录

 

 

查询姓名中包含“a”字母的学生记录

 

 

创建部门表dept

创建员工表emp

 

 

 

查询出部门编号为30的所有员工

 

只查询emp表中的job

发现有大量的重复结果

去除重复记录

想去除重复记录,需要使用DISTINCT

 

查看雇员的月薪与佣金之和

发现了问题,如smith的月薪和佣金之和是null

comm列有很多记录的值为NULL,因为任何东西与NULL相加结果还是NULL,所以结算结果可能会出现NULL。下面使用了把NULL转换成数值0的函数IFNULL

SELECT *,sal+IFNULL(comm,0) FROM emp;

 

 

可以给查询结果列起列名(别名)

给列起别名

给表起别名

起别名时,可以加as,也可以省略不写

查询所有员工记录,按sal升序排序

若是升序排列,asc可以不写

查询所有员工记录,按sal降序排序

查询所有雇员,按月薪降序排序,如果月薪相同时,按编号升序排序

查询某列(sal)的工资和(纵向运算)

查询某列(sal)的工资平均值

查询某列(sal)的工资最高值

查询某列(sal)的工资最低值

统计有工资的员工总数

统计有奖金的员工总数

统计共有员工数量

在一个sql语句中同时使用多个聚合函数

在一个sql语句中同时使用多个聚合函数

 

 

我想查询一下每个部门共几个员工?(分组+聚合函数)

分组要用到一个关键字(group by)

先分组后统计

我想统计一下每个部门工资总数和平均数?(分组+聚合函数)

我想查询一下10号部门共几个员工?(分组+聚合函数)

分组后若要再加条件(过滤),就不能使用where,而要使用having(group by后面不能出现where,只能出现having)

统计一下10号部门工资总数和平均数

 

查询所有员工的员工编号,姓名,所在部门的部门名称,及部门所在城市

 

两张表连接查询还可以细节分出两大类:

外连接

     左外连接:以左表作为基准(左表中的数据必须全部显示,右表中和左边有关的数据才显示,无关的数据不显示)

 

     右外边接: 以右表作为基准(右表中的数据必须全部显示,左表中和右边有关的数据才显示,无关的数据不显示)

 

内连接:既不以左表为基准,也不以右表为基准,而是把两张表相关的数据配合显示

分页查询

Limit

LIMIT用来限定查询结果的起始行,以及总行数。

 

 

查询出部门编号为30的所有员工

所有销售员的姓名、编号和部门编号。

找出奖金高于工资的员工。

找出奖金高于工资12%的员工。

找出部门编号为10的所有经理,和部门编号为20的所有销售员的详细资料。

找出部门编号为10的所有经理,和部门编号为20的所有办事员的详细资料。

 

找出部门编号为10中所有经理,部门编号为20中所有办事员,还有既不是经理又不是办事员但其工资大或等于2000的所有员工详细资料

无奖金或奖金低于1000的员工。

查询名字由四个字组成的员工。

查询1981年入职的员工。

查询所有员工详细信息,用编号升序排序

查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序

查询每个部门的平均工资

查询每个部门的雇员数量。

查询每个工种的最高工资、最低工资、人数

从事同一工作雇员的月工资的总和

显示非销售人员工作名称以及从事同一工作雇员的月工资的总和

子查询

对于某些复杂的查询,我们可以先查询出一个结果集,然后将此结果集当做一张虚拟表,然后再从这张虚拟表中进行更进一步查询。获得最终要的结果。

那么能查询出虚拟表的那条查询sql就称为子查询.

例如:查询出部门编号为30的所有员工

 

经验:通过子查询你可以实现层层过滤

查询20部门所有员工详细信息,用工资降序排序。

 

 

查询20号部门中没有奖金但工资大于2000的员工

 

显示非销售人员工作名称以及从事同一工作雇员的月工资的总和,并且要满足从事同一工作的雇员的月工资合计大于5000,输出结果按月工资的合计降序排列

有奖金的工种。

查出至少有4个员工的部门。显示部门编号、部门名称、部门位置、部门人数。

列出所有员工的姓名及其直接上级的姓名。

列出入职日期早于直接上级的所有员工的编号、姓名、部门名称。

列出部门名称和这些部门的员工编号和员工姓名,同时列出那些没有员工的部门。

列出最低薪金大于3000的各种工作及从事此工作的员工人数。

列出在销售部工作的员工的姓名,假定不知道销售部的部门编号。

列出薪金高于公司平均薪金的所有员工信息,所在部门名称,上级领导。

 

显示员工的编号,姓名,职位,所在部门的名称

创建一个视图,将上面查询出来的虚拟表“固化”到数据库,可以永久保持。

在已有视图上定义新视图

 

删除视图

创建视图时可以指定视图中出现的列的列名(相当于物理列的别名)

创建一个视图,用来展示每个部门员工人数

下面先改一下mysql的分隔符

创建一个存储过程,用来查询stu

调用上面的存储过程

删除存储过程

存储过程也可以像java一样定义局部变量

create procedure pro2()

begin

declare v_id int;

set v_id=12;

select * from stu where id=v_id;

end;

 

存储过程也可以像java一样具有条件分支(流程控制)

 

存储过程也可以像java一样具有循环

 

存储过程也可以像java一样定义形参,不过,它的形参分两种,有输入形式,有输出形参,用inout关键字区分

形参可以定义多个

定义有输出参数和输入参数的存储过程

调用存储过程,传入7788,定义系统变量@sal,用来存储返回值,然后用select打印出来

mysql存储过程很像java中无返回值的方法

mysql函数很像java中有返回值的方法

因为存储过程可以不返回,但函数必须有返回值,必须返回

注意:在begin上面的return必须加s

 

 

 

 

 

 

 

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql基本操作

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Mysql基本操作

二、删除已经有的数据库school 三、创建新数据库myschool 四、进入到myschool中 五、查看myschool库中所有的表
Mysql基本操作
2019-11-20

mysql的基本操作

一、库操作创建库:create database 数据库的名字;删除库:drop database 数据库的名字;查看当前有多少个数据库:show databases;查看当前使用的数据库:select database();切换到这个数据
2023-01-31

📖Mysql基本操作

??Mysql基本操作shell 命令-u后输入用户名 -p后用于输入用户密码mysql -uroot -proot数据库显示所有数据库show databases;创建数据库create database 数据库名称;删除数据库drop database 数
📖Mysql基本操作
2017-02-13

【MySQL基础】MySQL基本操作详解

系列文章目录 第1篇:【MySQL基础】MySQL介绍及安装 第2篇:【MySQL基础】MySQL基本操作详解 文章目录 ✍1,数据库操作     🔍1.1,查看数据库     🔍1.2,创建数据库    
2023-08-16

MySQL基本操作有哪些

这篇文章主要介绍“MySQL基本操作有哪些”,在日常操作中,相信很多人在MySQL基本操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL基本操作有哪些”的疑惑有所帮助!接下来,请跟着小编一起来
2022-12-05

MYSQL基本命令和操作

🖊作者 : D. Star. 📘专栏 : JAVA 😆今日提问 : 你好,我的朋友,在你的人生途中,会面临很多选择,不管选什么样的结果,我们都多少会有些后悔。如果是你,你会选择爱你的,还是
2023-08-24

编程热搜

目录