MySQL总复习

目录

登录

显示数据库 

创建数据库 

删除数据库

使用数据库

创建表

添加数据表数据

查询表

添加数据表多条数据

查询表中某数据

增insert 删delete 改update 查select

where 

like 

​编辑 

范围查找

 order by

聚合函数 

count

 max

min    sum    avg

group by

having

limit

 空判断

视图

存储


登录

mysql -u root -p

显示数据库 

show databases; 

 

创建数据库 

craate database <数据库名> ;

删除数据库

 drop database <数据库名> ;

 

使用数据库

 use  <数据库名>

创建表

primary key   主键

not null 非空

unique 惟一

default 默认值

auto_increment 自增长

int unsigned 无符号整数

DROP TABLE IF EXISTS staffer;
CREATE TABLE staffer (id int NOT NULL AUTO_INCREMENT COMMENT '员工编号',dept_id int NOT NULL COMMENT '部门编号',staff_name varchar(10) NOT NULL COMMENT '员工名字',sex enum('F','M') DEFAULT 'F' COMMENT '性别',birthday date COMMENT '生日',phone char(11) COMMENT '电话',salary decimal(11,2) UNSIGNED DEFAULT 1.00 COMMENT '工资',staff_memo varchar(100) COMMENT '备注',PRIMARY KEY (id),FOREIGN KEY (dept_id) REFERENCES department (id),CHECK ((salary > 0) and (salary < 100000))
) AUTO_INCREMENT=10512;
DROP TABLE IF EXISTS  item ;
CREATE TABLE  item(item_id  int AUTO_INCREMENT,order_id  int,goods_id  int,quantity  int,total_price  decimal(11, 2),PRIMARY KEY ( item_id ),FOREIGN KEY ( goods_id ) REFERENCES  goods  ( goods_id ),FOREIGN KEY ( order_id ) REFERENCES  orders  ( order_id )  
);

添加数据表数据


INSERT INTO staffer VALUES (10501, 1, '燕南飞', 'M', '1995-09-18', '13011231890', '5000.10', '职员');
INSERT INTO staffer VALUES (10502, 2, '陈一南', 'M', '1990-09-12', '13011233333', '6000.10', '职员');
INSERT INTO staffer VALUES (10503, 4, '李思思', 'F', '1979-11-01', null, '9900.00', '总经理');
INSERT INTO staffer VALUES (10504, 1, '张燕红', 'F', '1985-06-01', '13566567456', '8000.00', '部门经理');
INSERT INTO staffer VALUES (10505, 3, '南海峰', 'M', '1986-04-01', null, '7000.00', '职员');
INSERT INTO staffer VALUES (10506, 3, '张红燕', 'F', '1982-09-21', '13823671111', '9000.00', '部门经理');
INSERT INTO staffer VALUES (10507, 2, '王南峰', 'M', '1986-04-01', '13668992222', '7000.00', '职员');
INSERT INTO staffer VALUES (10508, 5, '刘燕玲', 'F', '1981-07-01', '13823679988', '6000.00', '职员');
INSERT INTO staffer VALUES (10509, 5, '李玉燕', 'F', '1984-02-08', '13823677889', '9000.00', '部门经理');
INSERT INTO staffer VALUES (10510, 4, '王树思', 'M', '1996-04-01', '13668998888', '7000.00', '职员');
INSERT INTO staffer VALUES (10511, 1, '思灵玉', 'F', '1992-03-01', '13823679999', '6000.00', '职员');
INSERT INTO  item  VALUES (1, 1, 1, 20, NULL);
INSERT INTO  item  VALUES (2, 1, 2, 2, NULL);
INSERT INTO  item  VALUES (3, 1, 3, 3, NULL);
INSERT INTO  item  VALUES (4, 2, 1, 7, NULL);
INSERT INTO  item  VALUES (5, 2, 2, 5, NULL);
INSERT INTO  item  VALUES (6, 2, 3, 6, NULL);
INSERT INTO  item  VALUES (7, 3, 1, 10, NULL);
INSERT INTO  item  VALUES (8, 3, 4, 10, NULL);
INSERT INTO  item  VALUES (9, 4, 1, 6, NULL);
INSERT INTO  item  VALUES (10, 4, 2, 3, NULL);SET FOREIGN_KEY_CHECKS = 1;

查询表

select * from staffer;

添加数据表多条数据

一次性在department表中添加2条记录,分别为:(部门名称:市场部;电话:020-87993093)、

(部门名称:宣传部;电话:020-87993065)

select * from department;
insert into department (dept_name,dept_phone) values ('市场部','020-87993093'),('宣传部','020-87993065');
select * from department;

查询表中某数据

在goods表中查询各商品的3件费用

-- 3件费用是商品单价*3的价格,可使用表达式计算

select goods_name,unit_price,unit_price*3 as '3件费用' from goods_; 

查询goods_表第一行开始的2条记录

select * from goods_ limit 1,2;

查询staffer表中姓张的员工,并显示其staff_id,staff_name,deptartment_id,sex

select staff_id,staff_name,deptartment_id,sex from staffer where staff_name like '张%';

 item 表,按商品和供应商分组,查询各商品的各供应商提供的销售数量和总数量

-- 分析:当汇总有2个以上字段是需要用with rollup 子句才能达到按从左到右分类的目的

select * from item;
select goods_id,order_id,sum(quantity) from item group by goods_id,order_id with rollup;

增insert 删delete 改update 查select

 

 

 

where 

select 后面的"或者字段名,决定了返回什么样的字段(列):
select 中 where 子句,决定了返回什么样的记录(行);

 

like 

范围查找

 order by

当一条select语句出现了where和order by

select * from 表名 where 条件 order by 字段1,字段2;

一定要把where写在order by前面

asc 从小到大 可以省略
desc 从大到小
默认从小到大 (asc)

 

聚合函数 

count

 max

min    sum    avg

group by

select 聚合函数 from 表名 where 条件 group by 字段
select 聚合函数 from 表名 group by 字段
group by就是配合聚合函数使用的

where和group by 和order by的顺序:
select * from 表名 where 条件 group by 字段 order by 字段 

having

having子句
总是出现在group by之后
select * from 表名 group by 字段 having 条件

对比 where 与 having:
where 是对 from 后面指定的表进行数据筛选属于对原始数据的筛选having 是对 group by 的结果进行筛选;
having 后面的条件中可以用聚合函数,where 后面的条件不可以使用聚合函数。

having语法:
select 字段1,字段2,聚合...from 表名group by 字段1,字段2,字段3...
having 字段1,...聚合...

limit

 空判断

 null不是0,也不是",null在SQL里面代表空,什么也没有
null不能用比较运算符的判断
is null ---是否为null
is not null ---是否不为null
(不能用字段名 = null 字段名 != null这些都是错误的)

视图

建立部门员工视图,显示部门名称和员工对外查阅资料  | staffer 表和 department 表

select * from staffer;
select * from department;
drop view if exists v_staffer;
create view v_staffer 
as select dept_name,staff_name,sex,phone from staffer 
inner join department on staffer.deptartment_id=department.dept_id;
select * from v_staffer;

存储

创建带入in 参数和输出 out 参数的存储过程

-若需要从存储过程中返回一个或多个检索或统计的值,则可以使用代out关键字定义的输出参数,将返回值传回调用环境

在数据库db_shop中建立一个存储过程,能够通过部门编号统计该部门员工的人数,返回统计值,并调佣该存储过程

--  分析:部门编号是输入参数,统计的员工人数是输出参数

drop procedure if exists p_count;
delimiter //
create procedure p_count(in id int,out n int)
BEGIN
select count(*) into n from staffer where deptartment_id=id;
end //
delimiter ;
call p_count(1,@a);
select @a as '1号部门员工数';

编写一个函数,可按职员编号查询员工姓名。

use db_shop;
-- 创建函数时,mysql 默认开启了bin-log,因含有sql语句会出错,则需参加
drop function if exists staffer_search;
set global log_bin_trust_function_creators = 1;delimiter //
create FUNCTION staffer_search(sid int)
returns  varchar(10)
begin 
declare sname varchar (10);
select staff_name into sname from staffer where deptartment_id=sid;
if isnull(sname) then 
return '无人';
else 
return sname;
end if;
END //
delimiter ;
set @sname = staffer_search(6);
select @sname,staffer_search(7);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/66893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sqoop(二):Hive导出数据到Oracle

把Hive中的数据导入Oracle数据库。 1. 解释一下各行代码&#xff1a; sqoop export # 指定要从Hive中导出的表 --table TABLE_NAME # host_ip:导入oracle库所在的ip:导入的数据库 --connect jdbc:oracle:thin:HOST_IP:DATABASE_NAME # oracle用户账号 --username USERNAM…

补码的反码加1为什么是原码?

搞了半个小时&#xff0c;终于弄懂了。 168421原码10011反码01100补码01101 学到这里了&#xff0c;我们肯定知道&#xff0c;原码补码 0&#xff0c;在这里也就是 19 13 32&#xff0c;溢出来的一位正好舍去了&#xff1b; 所以说&#xff0c;对啊&#xff0c;只要保证…

风险评估

风险评估概念 风险评估是一种系统性的方法&#xff0c;用于识别、评估和量化潜在的风险和威胁&#xff0c;以便组织或个人能够采取适当的措施来管理和减轻这些风险。 风险评估的目的 风险评估要素关系 技术评估和管理评估 风险评估分析原理 风险评估服务 风险评估实施流程

提升生产效率,降低运维成本:纺织业物联网网关应用

在众多物联网技术应用中纺织业正逐渐崭露头角。物联网技术通过无线连接纺织设备、PLC、传感器&#xff0c;实现了纺织厂的生产数据信息的远程监控和数据采集、远程管理&#xff0c;为企业提供了更高效、智能的生产方式。智联物联小编在本文中将重点介绍纺织业物联网的应用与通讯…

Python编程练习与解答 练习100:随机密码

编写一个生成最忌密码的函数&#xff0c;密码的长度应该在7-10个字符之间。每个字符应该从ASCII表的第33位到126位中随机选择。函数不接受任何参数&#xff0c;返回随机生成的密码作为位移结果。在文件的main程序中显示随机生成的密码。main程序只在解答没有被导入另一个文件时…

【USRP】调制解调系列7:GMSK、MSK、基于labview的实现

MSK 在数字调制中&#xff0c;最小频移键控&#xff08;Minimum-Shift Keying&#xff0c;缩写&#xff1a;MSK&#xff09;是一种连续相位的频移键控方式&#xff0c;在1950年代末和1960年代产生。与偏移四相相移键控&#xff08;OQPSK&#xff09;类似&#xff0c;MSK同样将…

Arcface部署应用实战

1、概述 人脸识别的一个比较常用的网络arcface&#xff0c;依赖于其特殊设计的loss函数&#xff0c;使得模型在训练的时候能够实现类间距离增大&#xff0c;类内的距离不断减小&#xff0c;最终使得所训练的backbone能够获取鉴别性很高的特征&#xff0c;便于人脸识别。 本文…

如何处理 Flink 作业频繁重启问题?

分析&回答 Flink 实现了多种重启策略 固定延迟重启策略&#xff08;Fixed Delay Restart Strategy&#xff09;故障率重启策略&#xff08;Failure Rate Restart Strategy&#xff09;没有重启策略&#xff08;No Restart Strategy&#xff09;Fallback重启策略&#xff…

Angular中的管道(pipe)如何使用?

在Angular中&#xff0c;管道&#xff08;Pipes&#xff09;是用于在模板中转换数据显示的工具。它们用于格式化、过滤、排序等操作&#xff0c;以便将数据以更易读或更有意义的方式呈现给用户。 1、使用Angular内置管道&#xff1a; 假设我们有一个显示日期的组件&#xff0…

运维开发实践 - Kubernetes - NFS StorageClass部署

1. 介绍 NFS(Network File System), 是一种通过网络&#xff0c;让不同计算机共享文件的实现方式&#xff1b; 2. 部署实现 2.1. 配置NFS Server # install in all vms yum install -y nfs-utils我们选择一台机子作为NFS服务器 # 我们将 /root/kubernetes/data/nfs 作为NF…

光刻机是怎么做出来的

文章目录 一、光刻机的基本原理二、光刻机的制造过程三、光刻机的制造要求四、光刻机的发展趋势 光刻机是半导体工艺制造中非常重要的设备之一&#xff0c;它是用来制作微细结构的关键工具之一。相信大家都知道&#xff0c;半导体工艺中最小的制造单位是晶体管&#xff0c;而制…

Mac 安装php多版本,brew安装php8.0

因为需要我要在mac上装两个php版本&#xff0c;先前我已经装过php7.4,下面我们逐步安装php8.0 开始安装8.0&#xff1a; 直接运行安装 brew install php8.0 遇到问题怀疑是仓库太老了&#xff0c;更新一下homebrew ,重新安装 brew update 安装成功了,不过看了下版本好像不能正…

PowerBuilder连接SQLITE3

PowerBuilder,一个古老的IDE,打算陆续发些相关的,也许还有人需要,内容可能涉及其他作者,但基本都是基于本人实践整理,如涉及归属,请联系. SQLite,轻型数据库,相对与PowerBuilder来说是个新事务,故发数来,以供参考. PB中使用OLE Microsoft OLE DB方式进行连接,如下 // Profile…

【jsvue】联合gtp仿写一个简单的vue框架,以此深度学习JavaScript

用 gtp 学习 Vue 生命周期的原理 lifecycle.js function Vue(options) {// 将选项保存到实例的 $options 属性中this.$options options;// 若存在 beforeCreate 钩子函数&#xff0c;则调用之if (typeof options.beforeCreate function) {options.beforeCreate.call(this);…

生活小记-挂号信

"挂号信"通常指的是在邮寄过程中通过挂号邮寄服务寄送的信件&#xff0c;相对于普通信件有一些特殊的特点和服务。以下是挂号信与其他信件&#xff08;例如普通信件&#xff09;之间的区别&#xff1a; 跟踪和确认&#xff1a; 挂号信&#xff1a;通过挂号邮寄服务寄…

ChatGPT Prompting开发实战(四)

一、chaining prompts应用解析及输出文本的设定 由于输入和输出都是字符串形式的自然语言&#xff0c;为了方便输入和输出信息与系统设定使用的JSON格式之间进行转换&#xff0c;接下来定义从输入字符串转为JSON list的方法&#xff1a; 定义从JSON list转为输出字符串的方法&…

[华为云云服务器评测] Unbutnu添加SSH Key、编译启动Springboot项目

系列文章目录 第一章 [linux实战] 华为云耀云服务器L实例 Java、node环境配置 第二章 [linux实战] Unbutnu添加SSH Key、启动Springboot项目 文章目录 系列文章目录前言一、任务拆解二、配置git,添加SSH Key2.1、登录远程主机2.2、配置git用户名和邮箱2.3、生成SSH key2.4、查…

第 361 场 LeetCode 周赛题解

A 统计对称整数的数目 枚举 x x x class Solution { public:int countSymmetricIntegers(int low, int high) {int res 0;for (int i low; i < high; i) {string s to_string(i);if (s.size() & 1)continue;int s1 0, s2 0;for (int k 0; k < s.size(); k)if …

钡铼R40边缘计算网关与华为云合作,促进物联网传感器数据共享与应用

场景说明 微型气象是不可预测的&#xff0c;基本上不能通过人工手段来分析其变化&#xff0c;因此必须运用新技术&#xff0c;对气象进行实时监测&#xff0c;以便采取相应的措施来避免或解决事故的发生。而常规气象环境数据采集容易造成数据损失、人力成本高、数据安全性差、…

升级iOS17后iPhone无法连接App Store怎么办?

最近很多用户反馈&#xff0c;升级最新iOS 17系统后打开App Store提示"无法连接"&#xff0c;无法正常打开下载APP。 为什么升级后无法连接到App Store&#xff1f;可能是以下问题导致&#xff1a; 1.网络问题导致App Store无法正常打开 2.网络设置问题 3.App Sto…