MySQL(基础篇)——SQL

一.SQL分类

 二.DDL(数据定义语言)

1.DDL——数据库操作

① 查询

        查询所有数据库          SHOW  DATABASES

        查询当前所处数据库    SELECT  DATABASE()

② 创建

        CREATE  DATABASE  [IF NOT EXISTS] 数据库名(通常以db结尾) [DEFAULT  CHARSET 字符集] [COLLATE 排序规则]

③ 删除

        DROP DATABASE [IF EXISTS] 数据库名

④ 使用

        USE 数据库名 

2.DDL——表操作——查询

① 查询当前数据库所有表

        SHOW TABLES  

前提:通过USE指令,使用该数据库 

② 查询表结构

DESC  表名 

③ 查询指定表的建表语句

 SHOW CREATE TABLE  表名

3.DDL——表操作——创建 

CREATE TABLE  表名(

        列名1  数据类型  [约束]  [默认值]  [注释] ...,

        列名2  数据类型  [约束]  [默认值]  [注释] ...,

        列名3  数据类型  [约束]  [默认值]  [注释] ...

        ...

) [COMMENT  表注释]

注:[...]为可选参数,最后一个字段后面没有逗号。 

4.DDL——表操作——数据类型

        MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

(1) 数值类型

① 整数

② 浮点

FLOAT、DOUBLE、DECIMAL(依赖于M(精度)和D(标度)的值)

 DECIMAL(M,D)

M:精度,数据的总长度

D:标度,小数点后面的长度

(2) 字符串类型

CHAR(n)   长度为n的定长字符串,最大长度为255个字符

VARCHAR(n)  最大长度为n的可变字符串

(3) 日期时间类型

5.DDL——表操作——修改 

(1) 添加字段

 ALTER  TABLE  表名  ADD  字段名  数据类型  [约束]  [默认值]  [注释]

(2) 修改数据类型

  ALTER  TABLE  表名  MODIFY  字段名  新数据类型

(3) 修改字段名和数据类型

 ALTER  TABLE  表名  CHANGE 旧字段名  新字段名  数据类型  [约束]  [注释]

(4) 删除字段

  ALTER  TABLE  表名  DROP  字段名

(5) 修改表名

  ALTER  TABLE  表名  RENAME  TO  新字段名

6.DDL——表操作——删除 

 ① 删除表

DROP  TABLE  [IF  EXISTS]  表名

② 删除指定表,并重新创建该表

TRUNCATE  TABLE  表名 

三.DML(数据操作语言) 

        用来对数据库中的数据记录进行增删改操作。

  • 添加数据(insert)
  • 修改数据(updata)
  • 删除数据(delete)
1.DML——添加数据

(1)给指定字段添加数据

INSERT  INTO  表名(字段1,字段2,...)  VALUES  (值1,值2,...) 

(2)给全部字段添加数据

 INSERT  INTO  表名  VALUES  (值1,值2,...) 

(3) 批量添加数据

INSERT  INTO  表名  (字段名1,字段名2,...)  VALUES  (值1,值2,...)(值1,值2,...) 

 INSERT  INTO  表名  VALUES  (值1,值2,...)(值1,值2,...) 

注:

  •  插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
  • 若插入的数据是字符串或日期型数据应该包含在引号中。
  • 插入数据的大小,应该在字段的规定的范围内。
2.DML——修改数据

UPDATE  表名  SET  字段名1=值1,字段名2=值2,...[WHERE  条件] 

注:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。

eg: update  student  set  name  =  'gty'  where  id = 2 

3.DML——删除数据 

DELETE  FROM  表名  [WHERE  条件] 

注:

  •  DELETE的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
  • DELETE语句不能删除某一个字段的值(可以使用UPDATE(将该字段的值置为NULL))

补充:

TRUNCATE  TABLE  表名      -------  清空整张表 

四.DQL(数据查询语言) 

        用来查询数据库中的数据。

查询关键字:SELECT 

  • DQL——语法 

  • 基本查询
  • 条件查询(WHERE)
  • 聚合函数(count、max、min、avg、sum)
  • 分组查询(GROUP  BY)
  • 排序查询(ORDER  BY)
  • 分页查询(LIMIT) 
1.DQL——基本查询

(1) 查询多个字段

SELECT  字段1,字段2,字段3 ...  FROM  表名

 SELECT   FROM  表名

(2) 设置别名(增加可读性,不是必须的,设置别名时AS可以省略)

 SELECT  字段1  AS  别名1,字段2  AS  别名2 ...  FROM  表名

(3) 去除重复记录

SELECT  DISTINCT  字段列表  FROM  表名 

eg : select  distinct  subject  from  student 

2.DQL——条件查询

 (1) 语法

SELECT  字段列表  FROM  表名  WHERE  条件列表

(2)  条件

eg: select  *  from  student  where  name  like  '_ _'               查询名字为两个字的学生

      select  *  from  student  where  phoneNum  like  '%6'      查询手机号最后一位为6的学生

3.DQL——聚合函数

(1) 介绍

        将一列数据作为一个整体,进行纵向计算。

(2) 常见聚合函数

 

(3) 语法

SELECT  聚合函数(字段列表)  FROM  表名 

注:NULL值不参与所有聚合函数运算 

eg:① select  count(*)  from  student  / select  count(id)  from  student    统计学生人数

     ② select  avg(age)  from  student              计算学生的平均年龄

     ③ select  max(age)  from  student             计算学生的最大年龄

     ④ select  min(age)  from  student              计算学生的最小年龄

4.DQL——分组查询 

(1) 语法

SELECT  字段列表  FROM  表名  [WHERE  条件]  GROUP  BY  分组字段名  [HAVING  分组过滤条件] 

(2) where与having的区别

① 执行时机不同:where是分组前进行过滤,不满足where条件,不参与分组;而having是分组后对结果进行过滤。

②  判断条件不同:where不能对聚合函数进行判断,而having可以。

注:

  • 执行顺序:where > 聚合函数 > having
  • 分组之后,查询的字段一般为聚合函数,查询其他字段无意义

eg: select  gebder, count(*)  from  student  group  by  gender

                                                        根据性别分组,统计男同学和女同学的数量

      select  gender, avg(age)  from  student  group  by  gender

                                                        根据性别分组,统计男同学和女同学的平均年龄

      select  homeAddress, count(*)  from  student  where  age < 20 group by  homeAddress        having  count(*) >= 3                 

        查询年龄小于20的学生,并根据家庭地址分类,获取学生数量大于等于3的家庭地址

5.DQL——排序查询

(1) 语法

 SELECT  字段列表  FROM  表名  ORDER  BY  字段1  排序方式1, 字段2  排序方法2 

                                                                                                 (支持多字段排序)

(2) 排序方式

  • ASC:升序(默认值)
  • DESC:降序 

注:

    如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序 

eg: select * from  student  order  by  age  asc

                                                根据年龄升序排序

      select * from  student  order  by  age  asc, intime  desc 

                                                根据年龄升序排序,年龄相同,根据入学时间进行降序排序

6.DQL——分页查询 

(1) 语法

SELECT  字段列表  FROM  表名  LIMIT  起始索引, 查询记录数 

注:

  • 起始索引从0开始,起始索引=(查询页码 - 1) * 每页显示记录数。
  • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
  • 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10 。

eg: select * from  student  linit 0,10       查询第一页学生数据,展示10条数据

      select * from  student  linit  10     ------>上一行的简写形式

  • DQL——执行顺序 

 

 五.DCL(数据控制语言)

        用来管理数据库用户,控制数据库的访问权限。

1.DCL——管理用户 

(1) 查询用户

USE  mysql

SELECT * FROM  user 

(2) 创建用户

CREATE  USER  '用户名'@'主机名'  IDENTIFIED  BY  '密码' 

(3) 修改用户密码

ALTER USER  '用户名'@'主机名'   IDENTIFIED WITH  mysql_native_password BY  '新密码'

(4) 删除用户

 DROP  USER  '用户名'@'主机名'

注:

  • 主机名可以用%通配。
  • 这类SQL开发人员操作的比较少,主要是DBA(DataBase ADministrator  数据库管理人员)使用。 
2.DCL——权限控制 

        MySQL中定义了很多种权限,但是常用的就一下几种:

(1) 查询权限

SHOW  GRANTS  FOR    '用户名'@'主机名'

(2) 授予权限

GRANT  权限列表  ON  数据库名.表名  TO   '用户名'@'主机名' 

(3) 撤销权限

REVOKE  权限列表  ON  数据库名.表名  FROM   '用户名'@'主机名' 

 注:

  • 多个权限之间,使用逗号分隔。
  • 授权时,数据库名和表名可以使用 * 进行通配,代表所有。

 

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

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

相关文章

java分布式锁详解

本地锁 浏览器把100w请求由网关随机往下传&#xff0c;在集群情况下&#xff0c;每台服务都放行10w请求过来&#xff0c;这时候每台服务都用的是本地锁是跨JVM的&#xff0c; 列如这些服务都没有49企业&#xff0c;此时有几个服务进行回原了打击在DB上面&#xff0c;那后期把这…

Allegro PCB如何关联原理图?

在用Allegro进行PCB设计时,我们可以点击Orcad原理图上的器件,然后PCB会自动跳转到该器件。那如何操作PCB上的器件点击跳转到原理图呢? 这种方式可以提高设计的效率。具体操作如下。 选择菜单栏Display

【软考问题】-- 2 - 知识精讲 - 项目立项管理

一、基本问题 1&#xff1a;项目投资前时期的四个阶段是什么&#xff1f; a.项目建议与立项申请 (1)定义&#xff1a;项目建设单位向上级主管部门提交项目申请时所必须的文件。(2)特点&#xff1a;项目发展周期的初始阶段、可行性研究的依据。(3)注意&#xff1a;又称项目建议书…

xinput1_3.dll文件的几种修复办法以及修复xinput1_3.dll注意事项

xinput1_3.dll文件是DirectX的一部分&#xff0c;它在Windows系统中负责处理游戏控制器的输入。然而&#xff0c;有时候此文件可能会出现问题&#xff0c;导致游戏无法正常运行或启动。在本文中&#xff0c;将介绍多种解决xinput1_3.dll文件问题的方法&#xff0c;并对它们进行…

【Web前端开发基础】CSS3之空间转换和动画

CSS3之空间转换和动画 目录 CSS3之空间转换和动画一、空间转换1.1 概述1.2 3D转换常用的属性1.3 3D转换&#xff1a;translate3d&#xff08;位移&#xff09;1.4 3D转换&#xff1a;perspective&#xff08;视角&#xff09;1.5 3D转换&#xff1a;rotate3d&#xff08;旋转&a…

vit细粒度图像分类(一)CADF学习笔记

1.摘要&#xff1a; 目的 基于Transformer架构的网络在图像分类中表现出优异的性能。然而&#xff0c;注意力机制往往只关注图像中的显著性特征&#xff0c;而忽略了其他区域的次级显著信息&#xff0c;基于自注意力机制的Transformer也是如此。为了获取更多的有效信息&#…

Spring基于AbstractRoutingDataSource实现MySQL多数据源

目录 多数据源实现 yml配置文件 配置类 业务代码 案例演示 多数据源实现 yml配置文件 spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedatasource1:url: jdbc:mysql://127.0.0.1:3306/datasource1?serverTimezoneUTC&useUnicodetrue&characte…

企业转型:虚拟化对云计算的影响

虚拟化被认为是IT行业最优秀的技术之一。虚拟化提供的灵活性和效率&#xff0c;有助于企业根据不断变化的需求扩展其IT基础设施。虚拟化是云基础设施的基础&#xff0c;允许按需动态分配和管理计算资源。这种适应性对于满足现代企业的多样化需求至关重要&#xff0c;因为现代企…

外汇天眼:美国证券交易委员会(SEC)采纳了一系列规定,以加强与特殊目的收购公司(SPACs)相关的投资者保护

美国证券交易委员会&#xff08;SEC&#xff09;今天通过了一系列新规和修订&#xff0c;以增强特殊目的收购公司&#xff08;SPACs&#xff09;的首次公开募股&#xff08;IPOs&#xff09;中的披露&#xff0c;并在SPACs与目标公司之间的后续业务合并交易&#xff08;de-SPAC…

u盘可以分区吗?怎么分区?分区后不显示出来怎么办

随着科技的不断发展&#xff0c;U盘已经成为人们传输和存储数据的重要设备之一。而针对U盘的分区问题&#xff0c;很多人对此还不太了解。比如&#xff0c;U盘可以分区吗&#xff1f;U盘怎么分区&#xff1f;U盘分区后不显示出来怎么办&#xff1f;下面我们一起来针对这些问题进…

SpringCloud Aliba-Seata【下】-从入门到学废【8】

目录 1.数据库创建 1.seata_account库下建表 2.seata_order库下建表 3.seata_storage库下建表 4.在每个库下创建回滚日志 2.创建订单模块 2.1建工程 2.2加pom 2.3改yml 2.4file.conf 2.5registry.conf 2.6domain 2.7Dao 2.8Service 2.9controller 2.10confi…

对 MODNet 网络结构直接剪枝的探索

文章目录 1 写在前面2 遇到问题3 解决方案4 探索过程4.1 方案一4.2 方案二4.3 方案三 5 疑惑与思考5.1 Q15.2 Q2 1 写在前面 在前面的文章中&#xff0c;笔者与小伙伴们分享了对 MODNet 主干网络部分以及其余分支分别剪枝的探索历程&#xff0c;即先分解、再处理、后融合的手法…

C++:缺省参数函数重载

目录 C/C语言 函数调用的工作原理&#xff1a; 函数调用一般分为两个部分&#xff1a; 缺省参数&#xff1a; 缺省参数的分类&#xff1a; 全缺省参数 半缺省参数 注意事项&#xff1a; 缺省参数与C语言的调用参数对比&#xff1a; 函数重载&#xff1a; 函数重载…

pve8.1 安装、创建centos7虚拟机及配置

之前创建虚拟机centos7时&#xff0c;硬盘分配太大了&#xff0c;做成模板后无法进行修改了&#xff0c;安装完pve8.1后&#xff0c;强迫症犯了重新创建一下顺便记录一下配置过程。由于目前centos7还是生产用的比较多的版本所以本次还是安装centos7.9版本。 一、下载镜像 下载…

利用Redis List实现数据库分页快速查询的有效方法

目录 引言 传统数据库分页查询的挑战 Redis List的优势 利用Redis List实现分页查询 1. 数据准备 2. 分页查询 3. 分页缓存 4. 分页处理 结论 引言 随着Web应用程序的发展和用户数量的增加&#xff0c;数据库分页查询变得越来越常见。分页查询允许用户在大型数据集中…

JVM/GC复习

JVM/GC JVM(java虚拟机)MATjstack(将正在运行的JVM的线程进行快照并且打印出来)死锁VisualVM工具(监控线程内存使用情况)JMX GC垃圾回收算法1.引用计数法2.标记清除发3.标记压缩算法4.复制算法5.分代算法 收集器1.串行垃圾收集器2.并行垃圾收集器2.CMS垃圾收集器 3.G1垃圾收集器…

营销一体化平台如何助力企业增长?3个案例深度解析

无论大家怎么想&#xff0c;反对和批评的声音有多大&#xff0c;还是有很多企业从组织层面为CMO下了很多需要及时转化的KPI要求。 原因无外乎是增长乏力。再加上外部环境处在产业升级换代、科技革命在即的当口&#xff0c;企业比以往任何时候都意识到营销变革的重要性。 然而…

两相步进电机驱动原理

两相步进电机驱动 前言什么是步进电机驱动器细分控制电机内部结构图片步进电机驱动原理&#xff08;重要&#xff09;步进电机参数&#xff11;、步距角&#xff1a;收到一个脉冲转动的角度&#xff12;、细分数 &#xff1a;&#xff11;&#xff0f;&#xff12;&#xff0c…

清华大学对港澳台华侨生新增额外招生项目来啦

导读 众所周知的是&#xff0c;港澳台和华侨生录取清华大学和北京大学&#xff0c;除了港澳台联考&#xff0c;DSE申请等形式之外&#xff0c;那只有和普通内地高中生混在一起的录取方式。但是其实近些年来&#xff0c;清华大学也为尖子生开辟了新的录取方式&#xff0c;我们一…

Qt Quick程序的发布|Qt5中QML和Qt Quick 的更改

# Quick程序的发布旧版做法 # Qt5中QML和Qt Quick 的更改 1.QML语言的更改(Qt4->Qt5) 在QML语言中,只有少量更改会影响QML代码的迁移:无法直接导入单独的文件(例如:import"MyType.qml”),需要导人该文件所在的目录; JavaScript文件中的相对路径被解析…