数据库概述SQL基本语法
基本概念
数据库DB
database简称DB: 存储数据的仓库,是以某种结构存储数据的文件。指长期保存在计算机的存储设备上,按照一定规则阻止起来,可以被用户或应用共享的数据集合。
数据库管理系统DBMS
用于创建,维护,使用数据库的一种大型软件系统。比如MySQL, Oracle, SQL server等等。
使用
MySQL服务的开启
方式1:右键任务栏->任务管理器->服务->MySQL80->右键即可启动服务
方式2:CMD命令行操作:小黑窗里面输入:net start/stop MySQL80来启动或关闭服务。
MySQL的访问方式
方式1:外部访问命令 mysql -h主机名 -P端口号 -u用户名 -p密码
如果是访问本机的数据库,可以省略为mysql -u用户名 -p密码
方式2:MySQL安装自带的命令行
直接输入账号的密码即可登录,默认是主机是本机,默认端口号是3306,默认账号是root.
方式3:图形化窗口,Navicat, SQLyog, MySQLWorkBench等工具。
数据类型
数值类型:
int : tinyint、smallint、mediumint、int
decimal(5, 2): 表示范围为-999.99~999.99
字符串类型:
char: 定长字符串类型,默认长度为1
varchar(50):变长字符串类型
text: 不支持默认值
日期类型:
datatime: 存储的时间不会随着时区变化。
timestamp:日期时间戳,到2038年就不能用了。
json类型
update products
set properties = '{"dimension" : [1,2,3],"weight" : 10,"manufacturer" : {"name" : "sony"}
}'
WHERE product_id = 1;
select product_id, json_extract(properties, '$.weight') as weight
from products
where product_id = 1;
SQL语言
分类
- DDL数据定义语言
- DML数据操作语言
- DQL数据查询语言
- DCL数据控制语言
定义库
-- 查询所有的库
show databases;
-- 创建库
create database db1;
-- 查询数据库的字符集
show create database;
-- 指定字符集和校对规则
create database mydb2 character set gbk;
-- 修改字符集
alter database mydb2 character set utf8;
-- 删除数据
drop database mydb2;
--切换库
use db1;
定义表
-- 创建表
create table student (id int, name varchar(50), age int, gender char);
-- 查看所有表
show tables;
show create table student; -- 查看完成的创建语句
-- 查看表结构
desc student;
-- 修改表名
alter table student rename to stu;
-- 修改字段名
alter table stu change id sid int;
-- 修改数据类型
alter table stu modify gender char(2);
-- 新增字段
alter table stu add score double(5, 2);
-- 修改字段的顺序
alter table stu modify gender char(2) after name;
-- 删除表
drop table stu;
DML数据操作
- insert添加数据
-- 全字段插入
insert into emp
value(101,'tom','男',12000, '1999-02-23', 'boss');
-- 指定字段插入
insert into emp(id, name)
value(102, 'jack');
-- 批量插入
insert into emp(id, name)
values(103, 'rose'),(104, 'pert');
- update更新数据
-- 将所有行的该字段数据修改为一个值
update emp set salary = salary + 15000;--指定某一条数据
update emp set salary = 19000
where name = 'jack';update emp salary = 1000, gender='女'
where name = 'rose';update emp set birthday = '2000-01-01'
where id = 104;
- delete删除数据
delete from emp where name = 'jack';-- 删除全部数据,逐条删除,删除后可以恢复,主键还是继续累加的
delete from emp;-- 删除表后,全新创建一个空的新表,删除后无法恢复
truncate emp;
delete和truncate的区别:
- 删除全部数据,逐条删除,删除后可以恢复,主键还是继续累加
- 删除表后,全新创建一个空的新表,删除后无法恢复
DQL数据查询语句
select 关键字的作用:用于运算,执行函数,查询数据。
-
基本查询
select * from emp;
: 查询emp的所有数据select name, salary from emp;
查询指定字段的数据select distinct salary from emp;
去除重复数据select name, salary + 1000 as new_salary from emp;
起别名
-
多个条件复合查询
select * from emp where id = 1 or id = 2;
select * from emp where eid in (1, 3, 5);
集合条件查询
-
区间条件查询
select * from emp where salary >= 8000 and salary <= 15000;
select * from emp where salary between 9000 and 15000;
-
带有NULL的查询
select * from emp where salary is null;
select * from emp where salary is not null;
select name, IFNULL(salary, 0) + 1000 from emp;
把null值作为0处理。
-
模糊查询:使用like关键字,不要用等号
- 下划线 _ 表示任意一个字符
- 百分号 % 表示任意 多个字符
-
排序:关键字order by 字段名,默认是ASC升序排序,DESC是降序。
select * from emp order by salary desc;
按照降序排列select * from emp order by id asc;
asc可以省略select * from emp order by salary asc, id desc;
多个条件排序
-
聚合函数
select count(*) from t_employee where commission_pct is not null;
统计函数select * from t_employee where salary * (1 + IFNULL(commission_pct, 0)) > 15000;
如果值可能为空的话,要使用IFNULL()方法设置默认值,否则NULL和其他数字计算还是NULL.select SUM(salary), SUM(commission_pct * salary) from t_employee;
计算工资总和select SUM(salary * (IFNULL(commission_pct, 0) + 1)) from t_employee;
计算带佣金的工资总和select max(birthday), min(birthday) from t_employee;
查询年纪最小和最大的员工
-
分组查询
select did, count(*) from t_employee group by did;
查询部门变化和每个部门的人数select did, sum(salary) from t_employee group by did having SUM(salary) > 40000;
查询工资总和大于40000的部门编号及工资和。select did, SUM(salary) sm from t_employee where gender = '女' group by did having sm > 20000;
查询部门女员工工资总和大于20000的部门编号和工资总和。
-
Limit m, n 关键字
- m 表示查询的起始索引,n表示需要查询的记录数
select * from emp limit 0, 5;
查询前5条记录select * from emp limit (x-1) * n , n;
查询第x页的记录,每页有n条记录。
相关文章:
数据库概述SQL基本语法
基本概念 数据库DB database简称DB: 存储数据的仓库,是以某种结构存储数据的文件。指长期保存在计算机的存储设备上,按照一定规则阻止起来,可以被用户或应用共享的数据集合。 数据库管理系统DBMS 用于创建,维护,使…...
【面试】一文讲清组合逻辑中的竞争与冒险
竞争的定义:组合逻辑电路中,输入信号的变化传输到电路的各级逻辑门,到达的时间有先后,也就是存在时差,称为竞争。 冒险的定义:当输入信号变化时,由于存在时差,在输出端产生错误&…...
无涯教程-PHP - 性能优化
根据Zend小组的说明,以下插图显示了PHP 7与PHP 5.6和基于流行的基于PHP的应用程序上的HHVM 3.7。 Magento 1.9 与执行Magento事务的PHP 5.6相比,PHP 7的运行速度证明是其两倍。 Drupal 7 在执行Drupal事务时,与PHP 5.6相比,PHP 7的运行速度…...
如何在PHP中使用字符串
引言 字符串是由一个或多个字符组成的序列,可以由字母、数字或符号组成。所有的书面通信都是由字符串组成的。因此,它们是任何编程语言的基础。 在本文中,您将学习如何创建和查看字符串的输出,如何使用转义序列,如何连…...
Mybatis简单入门
星光下的赶路人star的个人主页 夏天就是吹拂着不可预期的风 文章目录 1、Mybatis介绍1.1 JDBC痛点1.2 程序员的诉求1.3 Mybatis简介 2、数据准备2.1 数据准备2.2 建工程2.3 Employee类2.4 Mybatis的全局配置2.5 编写要执行的SQL2.6 编写java程序2.7 稍微总结一下流程 3、解决属…...
【Linux】数据链路层:以太网协议
约束不等于压迫,冷静和理性不等于冷淡和麻木。 文章目录 一、以太网帧 和 局域网转发数据包1.局域网转发的原理(基于以太网协议)2.以太网MTU与MAC地址 二、局域网中的数据碰撞1.如何解决局域网中的数据碰撞?(碰撞检测和…...
docker搭建私有镜像harbor
docker安装搭建私有仓库 Harbor harbor用于存储和分布docker镜像企业级registry服务器的harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。 安装harhor 启动harbor 6....
汽车便携轮胎充气泵方案
便携式充气泵是一种小巧便捷的充气工具,可广泛应用于汽车、自行车、摩托车、游泳圈、球类等充气产品的充气过程中。该产品以其小巧轻便、充气效率高、操作简单等特点备受消费者的青睐。 充气泵工作过程 当电动机启动时,通过电磁离合器将气泵内的活塞带动…...
一、Kafka概述
目录 1.3 Kafka的基础架构 1.3 Kafka的基础架构 Producer:消息生产者,就是向 Kafka broker 发消息的客户端Consumer:消息消费者,向 Kafka broker 取消息的客户端。Consumer Group(CG):消费者组&…...
【数据结构OJ题】合并两个有序链表
原题链接:https://leetcode.cn/problems/merge-two-sorted-lists/description/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 可以先创建一个空链表,然后依次从两个有序链表中选取最小的进行尾插操作。(有点类似双…...
C++ LibCurl 库的使用方法
LibCurl是一个开源的免费的多协议数据传输开源库,该框架具备跨平台性,开源免费,并提供了包括HTTP、FTP、SMTP、POP3等协议的功能,使用libcurl可以方便地进行网络数据传输操作,如发送HTTP请求、下载文件、发送电子邮件等…...
自然语言处理从入门到应用——LangChain:索引(Indexes)-[向量存储器(Vectorstores)]
分类目录:《自然语言处理从入门到应用》总目录 Vectorstores是构建索引的最重要组件之一。本文展示了与VectorStores相关的基本功能。在使用VectorStores时,创建要放入其中的向量是一个关键部分,通常通过嵌入来创建。 from langchain.embedd…...
【C++练习】普通方法+利用this 设置一个矩形类(Rectangle), 包含私有成员长(length)、 宽(width), 定义一下成员函数
题目 设置一个矩形类(Rectangle), 包含私有成员长(length)、 宽(width), 定义成员函数: void set_ len(int l); //设置长度 设置宽度void set_ wid(int w); 获取长度: int get len(); 获取宽度: int get _wid); 显示周长和面积: v…...
电子电路学习笔记之SA1117BH-1.2TR——LDO低压差线性稳压器
关于LDO调节器(Low Dropout Regulator)是一种电压稳压器件,常用于电子设备中,用于将高电压转换为稳定的低电压。它能够在输入电压和输出电压之间产生较小的差异电压,因此被称为"低压差稳压器"。 LDO调节器通…...
【LeetCode-面试经典150题-day7】
392.判断子序列 题意: 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是&quo…...
00-音视频-概述
有很多场合会使用的音视频,比如安防、视频闸机、影音播放器、视频通话,短视频等等。 从摄像头采集到用户观看,这中间涉及到了很多技术。 用户一般观看的高清视频1080P30帧。若按24位RGB对视频进行存储,一个60分钟视频所占空间 …...
SOFARPC(笔记)
文章目录 一、快速开始1.1 SOFARPC1.2 基于SOFABoot 二、注册中心三、通讯协议2.1 Bolt基本发布调用方式超时控制协议泛化调用序列化协议自定义线程池 2.2 RESTful基本使用 2.3 其他协议四、架构 附录 官方样例下载地址-sofa-boot-guides 可查看 SOFARPC 方式快速入门 一、快…...
无线上网连接及配置
目录 1. 无线上网连接及配置 1.1 无线路由器连接方式 编辑 1.2 无线路由器的基本配置 1.配置用户计算机上的IP地址 2.访问无线路由Web管理界面 1.3 WAN 口设置 1.动态 IP 2.静态 IP 1. 无线上网连接及配置 一小型公司共有20名员工。由于公司业务需要访问Internet&…...
Webpack减少打包数量和体积(Umi 3.*中)
在UMI 3.*中配置: export default defineConfig({chunks: [vendors, umi],chainWebpack: function (config: any, { webpack }: any) {config.plugin(chunkPlugin).use(webpack.optimize.LimitChunkCountPlugin, [{maxChunks: 5, // 必须大于或等于 1,此…...
python Crypto 包安装
经测试使用 pip install pycrypto安装会出现,如下所示错误: pip install pycrypto -i https://pypi.douban.com/simple/ Looking in indexes: https://pypi.douban.com/simple/ Collecting pycrypto Using cached https://pypi.doubanio.com/packages/…...
时序预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络时间序列预测
时序预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络时间序列预测预测效果基本介绍程序设计学习总结参考资料 预测效果 基本介绍 时序预测 | MATLAB实现SO-CNN-LSTM蛇群…...
前端开发,怎么解决浏览器兼容性问题? - 易智编译EaseEditing
解决浏览器兼容性问题是前端开发中常见的挑战之一。不同的浏览器可能对网页元素的渲染和功能支持有所不同,因此需要采取一些策略来确保您的网页在不同浏览器上都能正常运行和呈现。以下是一些解决浏览器兼容性问题的方法和策略: 使用CSS Resetÿ…...
树莓派3B安装64位操作系统
树莓派3B安装Ubuntu MATE_树莓派3b 安装ubuntu_雨田大大的博客-CSDN博客https://blog.csdn.net/lsjackson13/article/details/92423694?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-92423694-blog-80716098.235%5Ev38%5Ep…...
Mysql系列 - 第2天:详解mysql数据类型(重点)
这是mysql系列第2篇文章。 环境:mysql5.7.25,cmd命令中进行演示。 主要内容 介绍mysql中常用的数据类型 mysql类型和java类型对应关系 数据类型选择的一些建议 MySQL的数据类型 主要包括以下五大类 整数类型:bit、bool、tinyint、smal…...
Linux常用的运维命令
1.查看进程按内存从大到小排序 ps -e -o "%C:%p:%z:%a"|sort -k5 -nr2.查看磁盘和分区信息 # 查看挂接的分区状态mount | column -t# 查看所有分区 fdisk -l# 查看所有交换分区 swapon -s3.查看网络信息 ifconfig # 查看所有网络接口的属性iptables -L…...
【从零学习python 】50.面向对象编程中的多态应用
文章目录 多态场景代码实现多态总结 进阶案例 多态 面向对象的三大特性: 封装:这是定义类的准则,根据对象的特点,将行为和属性抽象出来,封装到一个类中。继承:这是设计类的技巧。父类与子类,主…...
实现Token刷新机制
问题场景: 开发的项目中,如果正在项目中编辑信息,编辑信息的时间的过程中token失效可能导致信息丢失怎么办? 一、解决方法 实现Token刷新机制:客户端定时刷新token,当用户的token即将过期时,可以向服务器…...
FlaUi输入账号密码
FlaUI是一个用于自动化Windows桌面应用程序的开源UI自动化库,通常用于自动化Windows应用程序的测试和操作。如果你想使用FlaUI来输入账号和密码,你需要编写一些C#或其他支持.NET的编程代码来实现这一目标。以下是一个使用FlaUI来输入账号和密码的简单示例…...
ModStartBlog v8.0.0 博客归档页面,部分组件升级
ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场,后台一键快速安装会…...
使用 PyTorch 进行高效图像分割:第 4 部分
一、说明 在这个由 4 部分组成的系列中,我们将使用 PyTorch 中的深度学习技术从头开始逐步实现图像分割。本部分将重点介绍如何实现基于视觉转换器的图像分割模型。 图 1:使用视觉转换器模型架构运行图像分割的结果。 从上到下,输入图像、地面…...
网络科技工作室经营范围/seo推广培训班
资料丰富。虽然有些内容大家可能接触过,但无妨大局。总起来说,本期“趣味Linux/Ubuntu”也是一枚重磅炸弹,将在GEEK们的心里炸开欢笑和思考的花朵。『一』 无言独上窗口,吃的不是苹果!(本图片选自开源小厨)『二』开源全…...
web做网站作业/网站管理工具
W5sHTML5中文学习网 - HTML5先行者学习网//remove the utf-8 boms W5sHTML5中文学习网 - HTML5先行者学习网//by magicbug at gmail dot com W5sHTML5中文学习网 - HTML5先行者学习网if (isset($_GET[dir])){ //config the basedir W5sHTML5中文学习网 - HTML5先行者学习网$bas…...
北京直销网站开发/磁力岛
在Unity手游开发中,经常用到插值运算,我们可以使用Mathf.Lerp自行去实现效果,但是使用插件提高了我们的开发效率,这里归结一下DoTween的基本使用方式以及效果说明: 直接代码: 1 using DG.Tweening;2 using …...
做招投标有哪些网站/宁波网站优化公司推荐
Java泛型解析(02):通配符限定考虑一个这种场景。计算数组中的最大元素。[code01]public class ArrayUtil {public static <T> T max(T[] array) {if (array null || 0 array.length) { return null ;}T max array[0];for (int i 1; i < array.length; …...
如何做网站首页收录/网络营销策划的基本原则
商城接入微信支付 微信支付产品 如上图所示,接入微信支付的方法有很多,我们可以按需接入。本次我们选择Native支付进行开发,也就是最常见的购物车下单后,商家给出一个二维码,用户微信扫码付款的流程。 微信支付业务流…...
百度网站排名怎么做/seo是什么意思新手怎么做seo
使用公式n!/ r!*(nr)!计算二项式系数(c(n,r)或nCr)。以下是Java程序,找出给定整数的二项式系数。程序import java.util.Scanner;public class BinomialCoefficient {public static long fact(int i) {if(i < 1) {return 1;}ret…...