Mysql研学-SQL语言基础

一 DDL语句:数据定义语言

1 作用:操作表

2 常用关键字

  CREATE(创建)

   DROP(删除(销毁))

   ALTER修改

3 格式

-- 单行注释/* 多行注释 */删除表:DROP TABLE [IF EXISTS] 表名;括号内为查看该表是否存在有则删创建表:参考JavaBean中定义有参构造器   (最后一列不写逗号)
CREATE TABLE 表名(
列名1 数据类型[约束] [字段约束],
列名2 数据类型[约束] [字段约束],.....
列名n 数据类型[约束] [字段约束]
);

4 表约束 – 又称字段约束或列约束

作用:限定表中指定字段存储数据的规则;需要根据表中的列含义和实际情况相结合来编写表约束

分类:

① 通用约束 – 所有的关系型数据库

非空约束 -- NOT NULL(常用)唯一约束 -- UNIQUE(常用)默认值的约束 -- DEFAULT(没有特殊要求一般不用)外键约束 -- FOREIGN KEY(必须是多表操作目前用不上)主键约束 -- PRIMARY KEY(重点)

   特点1:非空且唯一,等价于NOT NULL UNIQUE同时使用

   特点2: 每张表中有且仅有一个主键字段

   特点3:如果表中定义主键字段,推荐使用不具备业务逻辑的列作为主键

② "方言"约束只适用于MySQL数据库

AUTO_INCREMENT -- 主键自增长

   特点:必须配置主键字段编写,默认从1开始,每次增长1,类似Java中的++或+=1

③ 例子

# 判断表是否存在,若存在则删除
DROP TABLE IF EXISTS t_employee;# 创建表
CREATE TABLE t_employee(
id BIGINT PRIMARY KEY AUTO_INCREMENT,
eid VARCHAR(10) NOT NULL UNIQUE,
ename VARCHAR(6) NOT NULL,
job VARCHAR(10),
salary INT(10)
);

二 DML语言 – 数据操作语言

1 作用:对表中数据进行增删改操作

2 关键字

INSERT INTO ... VALUES... --插入UPDATE ... SET... -- 修改DELETE FROM ... --删除

3 插入数据

# 向表中所有字段插入一条数据,VALUES语句中的值与表中字段的顺序一致
# INSERT INTO 表名 VALUES(1,2....);
INSERT INTO t_employee
VALUES(1,'tj001',"大黄",'医药代表',15000);# 向表中指定字段(不具有自增长和默认值的字段)插入一条数据
# INSERT INTO 表名(1,2....)VALUES(1,2....);
INSERT INTO t_employee(eid,ename,job)
VALUES("tj002","大白",'机器人');# 同时向表中指定字段插入多条数据(常用)
# INSERT INTO 表名 (1,2...)VALUES(1,2....),(1,2....),(1,2....);
INSERT INTO t_employee(eid,ename,job)
VALUES("tj004","大橘",'机器人'),("tj003","小黑",'保安');

4 修改数据

# 不对修改设置条件,表中所有数据都会被修改
# UPDATE 表名 SET1=,2=....[WHERE 条件];# 将所有员工的职业设置为智能机器人
UPDATE t_employee
SET job='智能机器人';# 将大黄的职业设置为保安
UPDATE t_employee
SET job='保安'
WHERE ename='大黄';

5 删除数据

# 不对删除设置条件,表中所有数据都会被删除
# DELETE FROM 表名[WHERE 条件]# 删除员工编号为tj004的员工
DELETE FROM t_employee
where eid='tj004';# 删除表中所有数据
DELETE FROM t_employee;

6 DELETE语句与DROP语句区别

   ① DELETE语句:DML语句,操作表中数据,删除表中数据,保留表结构

   ② DROP语句:DDL语句,操作表,将表结构删除

三 DQL语言 – 数据查询语言

1 作用:查询表中的数据

2 查询操作结果分类

   ① 没有结果 – 0条数据

   ② 有一个结果 – 1条数据

   ③ 多个结果 – 存放到List集合中

3 语法

① 查询员工表所有信息

# * 表示查询指定表中所有的字段
# 字段: 字段表示查询表中的指定字段
# 函数: 表示调用MySQL定好的方法
SELECT *|字段|函数 FROM 表名;# 查询员工表所有信息
SELECT * FROM t_employee;# 查询员工表指定字段
SELECT ename,eid FROM t_employee;

② 去重查询

SELECT DISTINCT ename,eid
FROM t_employee;

③ 算数运算符: + - * /

# MySQL中算数运算符只针对数值型和日期类型数据
# 数值型数据可以进行 + - * /操作;日期型只支持 + - 操作# 员工工资翻倍
SELECT ename,salary,(salary*2)
FROM t_employee;# 员工工资翻倍再加上5000块绩效
SELECT ename,salary,(salary*2+5000)
FROM t_employee;

④ 给指定字段定义别名

# 起别名时 as 可省略
SELECT ename,salary,(salary*2+5000) as '工资'
FROM t_employee;

⑤ 给定格式显示数据

# 使用CONCAT(1,烈2...)
SELECT ename,salary,CONCAT(ename,"拿到了双倍工资",(salary*2),"还有",5000,"的绩效") 工资说明
FROM t_employee;

⑥ 过滤查询

# SELECT *|字段|函数 FROM 表名 WHERE 条件;
# 关系判断: > >= < <= = <>(不等于,等价!=)# 查询工作不是智能机器人的员工
SELECT ename,job
FROM t_employee
WHERE job <> "智能机器人";

⑦ 逻辑判断 – AND(&&)

# 查询工资大于10000且工作不是智能机器人的员工
SELECT ename,salary
from t_employee
WHERE salary >= 10000 AND job <> '智能机器人';# BETWEEN AND 当判断条件仅有1个字段时可使用,取值范围包括端点
SELECT ename,salary
from t_employee
WHERE salary BETWEEN 10000 AND 15000;

⑧ 逻辑判断 – OR(||)

# 查询工资大于12000或者工作不是智能机器人的员工
SELECT ename,salary
from t_employee
WHERE salary > 12000 or job <> '智能机器人';# IN(1,2,...) 判断条件仅有一个字段时使用,条件的结果是确定的几个值中的任意一个
SELECT ename,salary
from t_employee
WHERE salary IN(10000,12000,15000);

⑨ 逻辑判断 – NOT(!)

# 查询工资不是1000012000的员工
SELECT ename,salary
from t_employee
WHERE salary NOT IN(10000,12000);

⑩ 特殊值判断 – 判断当前字段是否为 NULL

# 为空 IS NULL 不为空 IS NOT NULL
SELECT ename,salary
from t_employee
WHERE salary IS NULL;### MySQL中运算符的优先级 (由高到低)
() >算数(+ - * /) >关系 >NOT > AND >OR

4 模糊查询 – 关键字搜索

① 语法

SELECT * | 字段 |函数 FROM 表名 WHERE 字段 LIKE;

② 通配符

   _:表示一个字符

   %:表示任意多个字符,取值范围[0,正无穷)

# 查询名字大字共计开头两个字的员工
SELECT ename,salary
from t_employee
WHERE ename LIKE '大_';# 查询名字含黄字的员工
SELECT ename,salary
from t_employee
WHERE ename LIKE '%黄%';

5 排序显示

① 语法

SELECT * |字段 |函数 FROM 表名 ORDER BY[排序方式,[排序方式],....];

  排序会增加用户等待时长;一般参与排序的字段数据类型为数值型或日期型;
  使用多个字段进行排序,当且仅当前一个字段无法排序时,才会使用后一个字段的排序方式进行操作

② 分类
  升序排序:默认的排序方式,关键字ASC,可以省略不写

  降序排序:关键字 DESC ,必须写

# 按照工资降序排序,同时按照工号升序排序
SELECT ename,salary
from t_employee
ORDER BY salary DESC,eid;

6 分页显示

① 优势

  提高用户观感度

  一定程度上避免内存溢出的风险

② 语法

# LIMIT语句是MySQL"方言"
# 第一个?:表示当前页开始显示数据的下标(0开始)
# 第二个?:表示的是当前也显示数据的条数
# 例子:一共16条数据,每页显示3条
# 第一页下标 0 第二页下标 3SELECT * |字段 |函数
FROM 表名
LIMIT ?,?;# 将员工信息分页展示,每页3条数据,显示第2SELECT ename,salary
from t_employee
LIMIT 6,3;

7 小结

① 完整的DQL 语句

SELECT *|字段|函数
FROM 表名
[WHERE 条件]
[ORDER BY 排序字段]
[LIMIT ?,?];

② 执行顺序
  从指定的表中(FROM语句),根据指定条件(WHERE语句),查询指定的数据(SELECT 语句),根据指定的字段进行排序(ORDER BY语句),以指定的条件进行分页显示(LIMIT 语句)

四 聚合函数 – 分组函数

1 作用:针对表中指定的某一个字段进行统计操作,是由MySQL定义好的方法,直接调用即可

2 常见聚合函数 – 5个

COUNT(字段) -- 统计指定字段个数以下4个聚合函数只对数值型数据有意义SUM(字段) -- 统计指定字段的数据总和AVG(字段) -- 统计指定字段的数据平均值MAX(字段) -- 统计指定字段的数据最大值MIN(字段) --统计指定字段的数据最小值# 查询员工总数
SELECT COUNT(id) from t_employee;# 查询此次公司给员工发放的薪水总额,与平均工资
# 聚合函数对NULL值会进行忽略,做统计操作需配合IFNULL(字段,替换值)方法
SELECT SUM(salary) '发放金额',AVG(IFNULL(salary,0)) '员工平均工资',MAX(salary) '第一',MIN(salary) '倒数'
from t_employee;

  聚合函数对于字段中的NULL值会进行忽略处理;因此在进行统计总数操作时,需使用具有非空约束的字段

五 导入与导出

1 导出命令

  mysqldump -u用户名 -p密码 指定的数据库名 > 导出的地址(.sql结尾)

2 导入命令:前提是指定的数据库必须存在

  mysql -u用户名 -p密码 指定的数据库名 < 导入的地址(.sql结尾)

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

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

相关文章

如何创建逼真的3D模型

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 1、如何创建逼真的3D模型 通过调整默认的表面贴图&#xff0c;可以为…

DNSLog漏洞探测(七)之SQL注入漏洞实战

DNSLog漏洞探测(七)之SQL注入漏洞实战 在前面的文章之中&#xff0c;我们已经学习了XSS、RCE、XXE、SSRF漏洞中有关于DNSLog平台的使用。这些漏洞本身在执行时就有解析URL地址&#xff0c;发起网络请求的操作&#xff0c;所以只要我们把DNSLog平台获取的子域名地址发送到存在漏…

电脑监控软件丨你能接受在电脑上安装吗

很多人说自己是不能接受老板在电脑上安装电脑监控软件的&#xff0c;怎么说呢&#xff0c;我自己本身是没有任何意见的。 我是可以接受的。 先来说说我的理由&#xff1a; 我是站在企业管理者的角度上&#xff0c;来思考这个问题的。老板花钱雇佣员工不是来公司来上网聊天打游…

docker-harbor私有仓库

docker 三大组件 镜像 容器 仓库 仓库&#xff1a;保存镜像 私有&#xff0c;自定义用户的形式登录仓库&#xff0c;拉去或者上传镜像&#xff08;内部管理的用户&#xff09; harbor&#xff1a;是由VMware公司开发的&#xff0c;开源的企业级的docker registry 项目 。 帮…

阿里云国际DDOS设置流量清洗阈值

当您的公网IP资产的业务流量超过正常流量基线时&#xff0c;DDoS防护会对攻击流量进行清洗&#xff0c;并尽可能保障您的业务可用。本文介绍了设置流量清洗阈值的方法。 背景信息 DDoS原生防护在清洗判定中采用了AI智能分析的方法。您可以根据正常业务流量基线&#xff0c;设…

图像特征提取-角点

角点特征 大多数人都玩过拼图游戏。首先拿到完整图像的碎片&#xff0c;然后把这些碎片以正确的方式排列起来从而重建这幅图像。如果把拼图游戏的原理写成计算机程序&#xff0c;那计算机就也会玩拼图游戏了。 在拼图时&#xff0c;我们要寻找一些唯一的特征&#xff0c;这些…

数据结构之---- 图

数据结构之---- 图 什么是图&#xff1f; 图是一种非线性数据结构&#xff0c;由顶点和边组成。我们可以将图 &#x1d43a; 抽象地表示为一组顶点 &#x1d449; 和一组边 &#x1d438; 的集合。 以下示例展示了一个包含 5 个顶点和 7 条边的图。 如果将顶点看作节点&…

Java研学-druid连接池

一 连接池 1 概述 JDBC 数据库连接(Connectiond对象)使用 DriverManager 来获取&#xff0c;每次向数据库建立连接的时候都要将 Connection 加载到内存中&#xff0c;再验证用户名和密码得花费 0.05s&#xff5e;1s 的时间&#xff0c;执行完成后再断开连接。这样的方式将会消…

LabVIEW进行癌症预测模型研究

LabVIEW进行癌症预测模型研究 癌症是一种细胞异常增生的疾病。随着年龄的增长&#xff0c;细胞分裂速度放缓&#xff0c;但癌细胞会失去控制地不断分裂&#xff0c;形成可能良性或恶性的肿瘤。 2012年的国际癌症数据显示&#xff0c;新发癌症病例和癌症相关死亡人数有所增加。…

Qt优秀开源项目之十九:跨平台记事本Notes

官网&#xff1a;https://www.get-notes.com github&#xff1a;https://github.com/nuttyartist/notes 一.特性 1.完全基于Qt和C 2.完全开源和跨平台&#xff08;Linux、macOS、Windows&#xff09; 3.运行速度快&#xff0c;界面美如画 4.支持Markdown 5.支持使用嵌套文件夹…

在Flutter中使用PhotoViewGallery指南

介绍 Flutter中的PhotoViewGallery是一个功能强大的插件&#xff0c;用于在应用中展示可缩放的图片。无论是构建图像浏览器、相册应用&#xff0c;还是需要在应用中查看大图的场景&#xff0c;PhotoViewGallery都是一个不错的选择。 添加依赖 首先&#xff0c;需要在pubspec…

多项创新技术加持,汉威科技危化品企业、化工园区两大智能化管控平台重磅发布

化工产业是我国支柱产业&#xff0c;化学品产值约占全球的40%&#xff0c;位列第一。石油化工、煤化工、化肥、制药、冶金、氢能源等产业持续升级迭代&#xff0c;化工园区作为重要载体&#xff0c;不断推动产业朝专业化、集约化方向发展。 近年来我国危险化学品领域重特大事故…

实现不同分辨率、不同缩放比例屏幕对vue显示的问题的适配解决

分析 我们使用适配常用的就是百分比 这个一般依托于父组件的宽度和高度 &#xff0c;但是大部分父组件并没有设置宽度和高度&#xff0c;也没有继承其父组件的宽高 所以导致这个问题 另外&#xff0c;使用百分比有时候不生效 可以在设置宽度的时候使用vw 在设置高度的时候设置…

WebService技术--随笔1

1.WebService 发展史 创建阶段&#xff08;1990 年代末至 2000 年代初&#xff09;&#xff1a;在这个阶段&#xff0c;XML-RPC 和 SOAP 协议被引入&#xff0c;为跨平台和跨语言的应用程序集成提供了基础。XML-RPC 提供了一种基于 XML 的远程过程调用机制&#xff0c;而 SOAP…

word图片点击放大,word图片双击放大

网上自己搜了半天&#xff0c;都是顾左右而言他&#xff0c;直接实践一下。 干货就是&#xff1a;调整word视图为阅读模式&#xff0c;双机图片 就能放大查看&#xff0c;然后还会有一个 放大镜供点击放大到整个屏幕。 其实挺好理解的&#xff0c;word跟wps不同&#xff0c;w…

【VSCode】自定义配置

VSCode自定义配置 Visual Studio Code (VSCode) 是一个强大的开源代码编辑器&#xff0c;支持丰富的自定义配置。下面是一些常见的自定义配置选项&#xff0c;你可以根据个人喜好和工作流程进行调整&#xff1a; 1. 主题和配色方案: 在 “settings.json” 中设置&#xff1a…

力扣labuladong——一刷day74

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣1305. 两棵二叉搜索树中的所有元素二、力扣872. 叶子相似的树 前言 二叉树的构造算法通用思路很简单&#xff0c;无非就是构造根节点&#xff0c;然后递…

我的2023 - git目录

.\0000 差旅 .\0000_BigEvent .\0000工时统计 .\000_CommonDoc .\000_Delay .\000_Done .\000_Drop .\000_参考 .\001_Cache .\11111111_zhy远程调试 .\20230802_参考项目 .\20230928_Ccz产品化 .\20231105_天津北京出差报告 .\20231207_libmodbus移植集成 .\20231213_cz原理图…

2024 年 8 款最佳数据恢复软件深度评测(Windows 和 Mac)

由于意外删除、格式化或损坏而立即丢失重要数据是一场噩梦。当您开始寻找 2024 年最好的数据恢复软件时&#xff0c;由于选项太多&#xff0c;您可能会不知所措。 2024 年 8 款最佳数据恢复软件深度评测 有些工具适用于 Windows&#xff0c;其他工具适用于 Mac&#xff0c;但并…

GZ029 智能电子产品设计与开发赛题第10套

2023年全国职业院校技能大赛高职组 “GZ029智能电子产品设计与开发”赛项赛卷十 题目&#xff1a;模拟工业传送带物品检测系统的设计与开发 1 竞赛任务 在智能电视机上播放工业传送带传输物品视频&#xff0c;模拟工业传送带物品检测系统&#xff08;以下简称物品检测系统&…