MYSQL数据库

目录

SQL

SQL-DDL

操作数据库

查询(show)(select)

创建(create)

删除(drop)

操作表

查询当前数据库所有表

修改表

删除

SQL-DML

添加数据(可以批量添加)

SQL-DQL

 创建表和插入数据:

条件查询:

聚合函数:

分组查询:

排序查询: 

分页查询:

 SQL-DCL

函数

字符串函数

 数值函数

 日期函数

 流程函数

约束

多表查询

内连接

 外连接

自连接

联合查询

子查询

事务

并发事务问题


MYSQL 的图形化界面工具之一——DateGrip

SQL 是具有数据操纵和数据定义等多种功能的数据库语言,是用于访问和处理数据库的标准的计算机语言。

SQL包括了所有对数据库的操作,主要是由4个部分组成:

  • 数据定义:又称为“DDL语言”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。
  • 数据操纵:又称为“DML语言”,包括插入、删除和更新三种操作。
  • 数据查询:又称为“DQL语言”,包括数据查询操作。
  • 数据控制:又称为“DCL语言”,对用户访问数据的控制有基本表和视图的授权及回收。
  • 事务控制:又称为“TCL语言”,包括事务的提交与回滚。
  • 嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。

SQL

SQL-DDL

操作数据库

  • 查询(show)(select)

show databases;

select database();

注意第二条语句后面有括号。 

  • 创建(create)

create database[if not exists]数据库名[default charset字符集][collate 排序规则];

其中字符集一般使用 utf8,也可以省略。

  • 删除(drop)

drop database[if exists]数据库名;

  • 使用

use 数据库名;

操作表

  • 查询当前数据库所有表

show tables;

  • 查询表结构

desc 表名;

  • 查询指定表的建表语句

show create table 表名;

修改表

  • 添加字段

alter table 表名 add 字段名 类型(长度) [comment 注释][约束];

  • 修改

修改数据类型

alter table 表名 modify 字段名 新数据类型(长度);

修改字段名

alter table 表名 change 旧字段名 新字段名[comment 注释][约束];

删除字段

alter table 表名 drop 字段名;

修改表名

alter table 表名 rename to 新表名;

  • 删除

删除表

drop table[if exists]表名;

删除表,并重新创建该表

truncate table 表名;

SQL-DML

DML 是对数据库中比表的数据记录增删查改操作。

  1. 插入数据是,指定字符顺序是一一对应的
  2. 包含字符串和日期型数据
  • 添加数据(可以批量添加)

insert into 表名(字段1,字段2,...)values(值1,值2);

insert into 表名 value(值1,值2);

  • 修改数据

update 表名 set 字段名=值1, 字段名2=值2,...[where 条件];

  • 删除数据

delete from 表名[where 条件];

SQL-DQL

DQL 是数据库的查询语言。

 创建表和插入数据:

create table employee (
    id int comment '编号',
    workno varchar(10)comment '工号',
    name varchar(10) comment '姓名',
    gender varchar(10) comment '性别',
    age tinyint unsigned comment'年龄',
    idcard char(18) comment '身份证号',
    workaddress varchar(10) comment '工作地址',
    entrydate date comment '入职时间'
);

insert into employee(id,workno,name,gender,age,idcard,workaddress,entrydate)
values
    (1,'1','李华','男',52,'74105209632','天津','2007-7-23'),
    (2,'2','张无忌','男',18,'74705209632','上海','2000-5-3'),
    (3,'3','韦一笑','男',36,'77105209932','西安','2007-12-5'),
    (4,'4','赵敏','女',40,'34105907612','天津','2010-4-6'),
    (5,'5','小昭','女',18,'74455934612','天津','2007-4-26'),
    (6,'6','杨逍','男',40,'74108909610','北京','2008-7-19'),
    (7,'7','陈友','男',65,'74175903612','北京','2002-9-8'),
    (8,'8','范瑶','女',40,'44105909712','北京','2007-9-8'),
    (9,'9','范凉凉','女',75,'23105905612','重庆','2001-3-2'),
    (10,'10','张三丰','女',26,'23105905612','上海','1997-10-15'),
    (11,'11','周芷若','女',45,null,'北京','2003-11-8');

条件查询:

#查询指定字段
select name,workno,age from employee;
#查询员工的年龄,起别名(as可以省),不重复
select distinct age as'年龄'from employee;


#查询年龄大于等于20小于等于50的员工(也可以用&&代替and)
#不等于用! 或者<>表示
select age from employee where age>=20 and age<=50;
select age from employee where age between 20 and 50;
#查询没有身份证号的员工
select * from employee where idcard is null;


#查询年龄等于18或者等于40的员工
select * from employee where age = 18 or age=40;
select * from employee where age in(18,40);


#查询名字为两个字的员工
select * from employee where name like'__';
#查询身份证最后一位是0的员工
select * from employee where idcard like '%0';

聚合函数:

#统计数量(*可以替换为具体的,例如name等),但是对于null是不参与聚合函数的计算的
select count(*) from employee ;
#统计最大年龄(最小用min())(统计年龄之和用sum())(平均值用avg())
select max(age)from employee;

分组查询:

#根据性别分组,统计男员工和女员工的平均年龄
select gender,avg(age) from employee group by gender;
#查询年龄小于45的员工并根据工作地址分组,然后获得员工人数大于等于2的组
select workaddress,count(*) from employee where age<45 group by workaddress having count(*)>=2;

排序查询: 

#对入职时间升序排序(默认是升序),降序用desc
select * from employee order by entrydate asc ;
#根据年龄对员工升序,年龄相同按照入职时间降序排序
select * from employee order by age,entrydate desc ;

分页查询:

#分页查询(前面一句是0-7)后面一句是(8-15)
select * from employee limit 0,8;
select * from employee limit 8,8;

 SQL-DCL

 DLC 是数据库控制语言。是用来设置或更改数据库用户或角色权限的语句。

主机可以用%通配。

函数

字符串函数

 数值函数

 日期函数

 流程函数

#返回Ok
select  if (true,'Ok','False');
#如果第一个值为null就返回第一个值,不为null就返回第二个值
select ifnull(null,'Default');



#查询员工的工作地址,北京上海的显示未一线城市,其他显示为二线城市
select name,
       (case workaddress when '北京' then'一线城市' when'上海' then'一线城市' else '二线城市' end)as '工作地址'from employee;

约束

 外键约束:让两张表的数据建立连接,保证数据的一致性和完整性。

 存在外键后,删除更新行为:(添加在建立外键约束的后面)

多表查询

为表起了别名,在该条语句就不能直接用表名来约束字段。

内连接

内连接查询的时两表交集的部分。

隐式:去掉笛卡尔积中的无效组合:在表名后加约束条件(where)

 外连接

分为右外连接和左外连接:

右向外连接,如果右表的某行在左表中没有匹配行,则将为左表返回空值;如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

自连接

自连接要起别名。

联合查询

使用 all 字段可能会有查询的结果重复,去掉 all 字段后不会有重复的结果。

多张表的列数必须一致,字段类型也要一致。

子查询

标量子查询:总是使用圆括号把结果括起来,返回的结果是单行单列的数据,就是一个值。

列子查询:返回的是单行多列的数据,就是一条记录。

行子查询:返回的结果是一行,可以是多列。

表子查询:返回的结果是多行多列。

事务

是一组操作的集合,不可分割的工作单位,把所有的操作作为一个整体,一起提交或撤销的操作。

例如银行的转账和收款,只能一起操作。

开始事务,提交事务,回滚事务

分别对应:

start transaction;

commit;

rollback;

并发事务问题

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

课程简介:.Net Core从零学习搭建权限管理系统

课程简介目录 &#x1f680;前言一、课程背景二、课程目的三、系统功能四、系统技术架构五、课程特点六、课程适合人员七、课程规划的章节八、最后 &#x1f680;前言 本文是《.Net Core从零学习搭建权限管理系统》教程专栏的导航站&#xff08;点击链接&#xff0c;跳转到专栏…

做好Python工程师,首先你需要做好的几件事

做好Python工程师&#xff0c;需要做好的几件事&#xff0c;我想分享给大家。首先千万不要做事周折。在你提问之前&#xff0c;先好好想一想&#xff0c;这个问题自己能不能解决。如果能解决&#xff0c;尽量自己解决&#xff1b;如果解决不了&#xff0c;那就要把你的问题描述…

亿发软件:传统食品饮料批发行业如何通过信息化管理系统降本增效?

传统食品饮料批发行业信息化水平较低&#xff0c;存在多重管理难题&#xff0c;例如&#xff1a; 手动数据输入和管理&#xff0c;导致错误和效率低下&#xff1b; 数据缺乏实时可见性&#xff0c;无法实时了解企业仓库存量、销售额和其他关键业务指标&#xff1b; 低效的供应链…

索引:索引知识重复习,什么是索引、索引的类型、建立索引及【最左匹配原则】、Explain查看sql的执行计划

文章目录 什么是索引索引的类型主键索引&#xff08;primary key&#xff09;普通索引&#xff08;index&#xff09;复合索引全文索引&#xff08;fulltext&#xff09;空间索引唯一索引索引修改及删除 Explain一、using filesort(减慢查询效率)二、Using temporary三、using …

前端UI框架有哪些|20个优秀免费开源的WEB前端UI框架提高网站开发效率

最近准备学习一下前端UI我也是在网上找了很久最终整理出来了20个不错的前端UI框架网站,大家都知道很多成熟的前端框架可以直接引,学习框架可以提升我们网站的开发速度。有些大型公司的前端或者后端框架都是用自己开发的,对于大部分用户和公司来讲,我们可以用开源免费的前端…

Python 中 SyntaxError: ‘yield‘ outside function 错误

当我们在函数外部使用 yield 关键字时&#xff0c;会出现 Python “SyntaxError: ‘yield’ outside function”。 要解决该错误&#xff0c;如果我们需要对每个元素执行一些运算符&#xff0c;请使用列表理解&#xff0c;或者缩进函数内部使用 yield 的代码。 下面是一个产生…

毕业2年,跳槽到下一个公司就25K了,厉害了···

本人本科就读于某普通院校&#xff0c;毕业后通过同学的原因加入软件测试这个行业&#xff0c;角色也从测试小白到了目前的资深工程师&#xff0c;从功能测试转变为测试开发&#xff0c;并顺利拿下了某二线城市互联网企业的Offer&#xff0c;年薪 30W 。 选择和努力哪个重要&a…

写博客8年与人生第一个502万

题记&#xff1a;我们并非生来强大&#xff0c;但依然可以不负青春。 原本想好好写一下如何制定一个目标并通过一点一滴的努力去实现&#xff0c;这三年反思发现其实写自己的经历并不重要。 很多人都听过一句话&#xff1a;榜样的力量是无穷的。 更现实和实际的情况是&#x…

mysql聚合函数

文章目录 前言一、常见的聚合函数1.avg和sum函数2.max和min函数3.count函数 二、group by的使用1.基本使用方法2.with rollup 求平均值 三、having关键字的使用四、多表连接聚合函数1.sql92语法总结2.sql99语法总结 总结 前言 聚合函数&#xff1a;他是对一组数据进行汇总的函…

3 个自定义防抖 Hooks 的实现原理

前言— 本文通过实现 useDebounceFn、useDebounce、useDebounceEffect 3 种自定义防抖 Hooks&#xff0c;来介绍在日常开发过程中自定义 Hooks 的思路及实现&#xff0c;帮助大家完成通用 Hooks 来提高开发效率。 防抖— 防抖的概念已经司空见惯了&#xff0c;这里稍作简单介…

Golang每日一练(leetDay0034) 二叉树专题(3)

目录 100. 相同的树 Same Tree &#x1f31f; 101. 对称二叉树 Symmetric Tree &#x1f31f; 102. 二叉树的层序遍历 Binary Tree Level-order Traversal &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一…

程序设计方法学

体育竞技分析 问题分析 体育竞技分析 需求&#xff1a;毫厘是多少&#xff1f; 如何科学分析体育竞技比赛&#xff1f; 输入&#xff1a;球员的水平 输出&#xff1a;可预测的比赛成绩 体育竞技分析&#xff1a;模拟N场比赛 计算思维&#xff1a;抽象 自动化 模拟&am…

【算法题】2583. 二叉树中的第 K 大层和

题目&#xff1a; 给你一棵二叉树的根节点 root 和一个正整数 k 。 树中的 层和 是指 同一层 上节点值的总和。 返回树中第 k 大的层和&#xff08;不一定不同&#xff09;。如果树少于 k 层&#xff0c;则返回 -1 。 注意&#xff0c;如果两个节点与根节点的距离相同&…

能够翻译文档的免费软件-免费翻译整个文档的软件

chatgpt怎么实现批量翻译 ChatGPT是一种基于人工智能技术的自然语言处理软件&#xff0c;可以实现快速、准确的批量翻译操作&#xff0c;同时也支持多种语言翻译。下面是 ChatGPT 的批量翻译操作流程&#xff1a; 步骤 1: 确定翻译语言和翻译文本 首先需要确定要翻译的原文本…

java学习之局部内部类

目录 一、内部类简介 二、内部类的分类 三、局部内部类 第一点 第二点 第三点 第四点 第五点 第六点 第七点 一、内部类简介 类的五大成员&#xff1a;属性、方法、构造器、代码块、内部类 package com.hspedu.innerclass;public class InnerClass01 {public static…

AOP与SpringBoot使用AOP实例

AOP&#xff1a;Aspect Oriented Programming&#xff08;面向切面编程、面向方面编程&#xff09;&#xff0c;其实就是面向特定方法编程。 动态代理是面向切面编程最主流的实现。而SpringAOP是Spring框架的高级技术&#xff0c;旨在管理bean对象的过程中&#xff0c;主要通过…

Windows使用Dockers+battery historian踩坑记

1、首先&#xff0c;需要翻墙。 2、然后安装Dockers&#xff0c;网上好多博客说安装Docker Toolbox&#xff0c;我亲测无效&#xff0c;卸载后安装Docker for Windows&#xff0c;安装完成后打开&#xff0c;会提示&#xff1a; Hardware assisted virtualization and data e…

Mybatis03学习笔记

目录 使用注解开发 设置事务自动提交 mybatis运行原理 注解CRUD lombok使用&#xff08;偷懒神器&#xff0c;大神都不建议使用&#xff09; 复杂查询环境&#xff08;多对一&#xff09; 复杂查询环境&#xff08;一对多&#xff09; 动态sql环境搭建 动态sql常用标签…

大数据实战 --- 淘宝用户行为

目录 开发环境 数据描述 功能需求 数据准备 数据清洗 用户行为分析 找出有价值的用户 开发环境 HadoopHiveSparkHBase 启动Hadoop&#xff1a;start-all.sh 启动zookeeper&#xff1a;zkServer.sh start 启动Hive&#xff1a; nohup hiveserver2 1>/dev/null 2>…

生成树端口选举

所有交换机运行RSTP,SW1优先级4096,SW2优先级4096,SW3优先级8192,SW1的G0/0/1、G0/0/2接口通过手动模式加入Eth-Trunk 1,SW1的G0/0/3、G0/0/4接口通过手动模式加入Eth-Trunk 2,SW2的G0/0/1、G0/0/2接口通过手动模式加入Eth-Trunk 1,SW3的G0/0/1、G0/0/2接口通过手动模式…