<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel rdf:about="https://blog.anlucky.cn/index.php/feed/rss/tag/MySQL/">
<title>LuckyDu - MySQL</title>
<link>https://blog.anlucky.cn/index.php/tag/MySQL/</link>
<description></description>
<items>
<rdf:Seq>
<rdf:li resource="https://blog.anlucky.cn/index.php/programming/java/141"/>
<rdf:li resource="https://blog.anlucky.cn/index.php/programming/database/127"/>
<rdf:li resource="https://blog.anlucky.cn/index.php/programming/database/39"/>
</rdf:Seq>
</items>
</channel>
<item rdf:about="https://blog.anlucky.cn/index.php/programming/java/141">
<title>SpringBoot基础入门</title>
<link>https://blog.anlucky.cn/index.php/programming/java/141</link>
<dc:date>2023-05-13T16:19:00+08:00</dc:date>
<description>SpringBoot基础入门Spring Boot是由Pivotal团队提供的一套开源框架，可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持，可以帮助开发者更轻松快捷地构建出企业级应用。Spring Boot通过自动配置功能，降低了复杂性，同时支持基于JVM的多种开源框架，可以缩短开发时间，使开发更加简单和高效。（SpringBoot简化开发，可以快速部署SSM项目，整合了很多个配置，使用的时候只需要加上 Jar 包和对应的配置注解即可实现配置，Springboot内置了Tomcat）1. 构建SpringBoot项目这里使用的IDEA编辑器，每个编辑器的构建方式可能有些不同，但是大致相同，使用别的编辑器的同学可以拿这篇文章作为参考方式一：使用官网构建使用官网页面，直接下载springboot项目，使用流程如下官网： https://start.spring.io/方式二：使用IDEA构建在IDEA中点击new project 创建新项目，然后根据需求构建项目注意：​    使用此方法构建的SpringBoot和方式一构建的方式不同点在于一个是下载了一个压缩包文件，一个是直接在IDEA开发工具中下载，区别不大方式三：自己配置自己配置SpringBoot对于新手来说不太友好，要求对Jar包的熟悉程度比较高，个人不太推荐，大佬忽略，这里没有具体的配置方式配置方式：​    使用IDEA工具构建一个新的Maven工程，然后在POM文件中添加SpringBoot的相关依赖，自己创建Application启动类和配置文件注意：
    Mybatis-Plus不可以直接勾选Jar包进行依赖引入，需要我们自己去官网选择版本引入目录结构2. SpringBoot核心配置SpringBoot有两种配置文件结尾，application.properties application.ymlyml 是一种 yaml 格式的配置文件，主要采用一定的空格、换行等格式排版进行配置。yaml 是一种直观的能够被计算机识别的的数据序列化格式，容易被人类阅读，yaml 类似于 xml，但是语法比 xml 简洁很多，值与前面的冒号配置项必须要有一个空格， yml 后缀也可以使用 yaml 后缀。注意：​    SpringBoot项目的配置文件必须使用application名称，否则不识别1. SpringBoot基本配置# SpringBoot的核心配置文件
server:
  port: 8080  # 指定项目运行的端口
  servlet:
    context-path: /  # 指定项目的运行路径
    encoding:
      charset: utf-8 # 指定项目的编码集
spring:
  profiles:
    active: dev # 多环境下使用的环境是哪个，不写就默认 application2. 多环境配置在实际开发的过程中，我们的项目会经历很多的阶段（开发-&gt;测试-&gt;上线），每个阶段的配置也会不 同，例如：端口、上下文根、数据库等，那么这个时候为了方便在不同的环境之间切换，SpringBoot 提供了多环境配置为每个环境创建一个配置文件，命名必须以 application-环境标识.properties|yml例如：application-dev.ymlapplication-test.yml3. 自定义配置SpringBoot 的核心配置文件中，除了使用内置的配置项之外，我们还可以在自定义配置，然后采用注解去读取配置的属性值如：​    在application.yml配置文件中有如下配置school:
  name: 清华大学
  address: 北京那么我们就可以在项目中使用    @Value(&quot;${school.name}&quot;) // 注入属性
    private String schoolName; 3. SpringBoot事务管理Spring Boot 使用事务非常简单，底层依然采用的是 Spring 本身提供的事务管理在入口类中使用注解 @EnableTransactionManagement 开启事务支持在访问数据库的 Service 方法上添加注解 @Transactional 即可4. SpringBoot整合mybatisPlus、thymeleaf、druid、redis、Dubbo配置# SpringBoot的核心配置文件
server:
  port: 8080  # 指定项目运行的端口
  servlet:
    context-path: /  # 指定项目的运行路径
    encoding:
      charset: UTF-8 # 指定项目的编码集
      enabled: true # 开启为 true
      force: true # 强制使用

# Spring 配置
spring:
  application:
    name: demo # spring项目名称
  profiles:
    active: dev # 使用的环境是哪个
  thymeleaf:
    cache: false # thymeleaf 不使用缓存
  datasource: # 数据库连接配置
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/ssm
    type: com.alibaba.druid.pool.DruidDataSource # 使用的数据库连接池需要导入 jar 包 druid-spring-boot-starter
    druid: # 可以不配置，有默认值
      initial-size: 5 # 初始化连接数
      min-idle: 5 # 最小连接数
      max-active: 20 # 最大连接数
      max-wait: 60000 # 获取数据库连接最大等待时间 单位毫秒
      time-between-eviction-runs-millis: 60000 # 配置多久进行一次检测，检测需要关闭的空闲连接 单位毫秒
  redis:  # redis 配置
    host: localhost
    port: 6379
#    password:  # redis密码，没有注释掉

# mybatis-plus 配置
mybatis-plus:
  mapper-locations: classpath*:/mapper/**/*.xml # 默认值，扫描mapper.xml文件
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl  # 日志输出
  global-config:
    db-config:
      logic-delete-field: isDelete # 逻辑删除 需要加一个注解 @TableLogic
      logic-not-delete-value: 0 # 未删除逻辑值
      logic-delete-value: 1 # 已经删除逻辑值

# Dubbo服务提供者
#dubbo:
#  application:
#    name: provide
#  registry:
#    address: zookeeper://localhost:2181
#  scan:
#    base-packages: com.dyf # 这里配置Dubbo的注解所在包,扫描的是接口实现类


# Dubbo消费者
#dubbo:
#  application:
#    name: cosumer
#  registry:
#    address: zookeeper://localhost:2181
#  scan:
#    base-packages: com.dyf # 这里配置Dubbo的注解所在包,扫描的是controller5. SpringBoot整合MybatisPlus分页插件配置类@Configuration
public class MyBatisPlusConfig {
    /**
     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 这里需要指定数据库类型 这里使用的Mysql
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}6. 整合所需要的 jar 包导入SpringBoot 父类项目    &lt;parent&gt;
        &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
        &lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt;
        &lt;version&gt;2.7.11&lt;/version&gt;
        &lt;relativePath/&gt; &lt;!-- lookup parent from repository --&gt;
    &lt;/parent&gt;导入所需要的 Jar 包    &lt;dependencies&gt;
        &lt;!--redis--&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-data-redis&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;!--springboot Web包--&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-web&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;!--springBoot 测试包--&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-test&lt;/artifactId&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;!--Druid 数据库连接池包--&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.alibaba&lt;/groupId&gt;
            &lt;artifactId&gt;druid-spring-boot-starter&lt;/artifactId&gt;
            &lt;version&gt;1.2.16&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;!--mybatisPlus包--&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.baomidou&lt;/groupId&gt;
            &lt;artifactId&gt;mybatis-plus-boot-starter&lt;/artifactId&gt;
            &lt;version&gt;3.5.3.1&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;!--redis Jar包--&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-data-redis&lt;/artifactId&gt;
        &lt;/dependency&gt;

        &lt;!--Dubbo Jar包--&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.dubbo&lt;/groupId&gt;
            &lt;artifactId&gt;dubbo-spring-boot-starter&lt;/artifactId&gt;
            &lt;version&gt;2.7.8&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;!--zookeep包，注册中心，整合Dubbo时候使用--&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.dubbo&lt;/groupId&gt;
            &lt;artifactId&gt;dubbo-dependencies-zookeeper&lt;/artifactId&gt;
            &lt;version&gt;2.7.8&lt;/version&gt;
            &lt;type&gt;pom&lt;/type&gt;
            &lt;!--取消引入这两个日志框架，若引入控制台会报错，Jar重复引入--&gt;
            &lt;exclusions&gt;
                &lt;exclusion&gt;
                    &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
                    &lt;artifactId&gt;slf4j-reload4j&lt;/artifactId&gt;
                &lt;/exclusion&gt;
                &lt;exclusion&gt;
                    &lt;groupId&gt;log4j&lt;/groupId&gt;
                    &lt;artifactId&gt;log4j&lt;/artifactId&gt;
                &lt;/exclusion&gt;
            &lt;/exclusions&gt;
        &lt;/dependency&gt;

    &lt;/dependencies&gt;

    &lt;build&gt;
        &lt;plugins&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
                &lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt;
                &lt;configuration&gt;
                    &lt;excludes&gt;
                        &lt;exclude&gt;
                            &lt;groupId&gt;org.projectlombok&lt;/groupId&gt;
                            &lt;artifactId&gt;lombok&lt;/artifactId&gt;
                        &lt;/exclude&gt;
                    &lt;/excludes&gt;
                &lt;/configuration&gt;
            &lt;/plugin&gt;
        &lt;/plugins&gt;
    &lt;/build&gt;</description>
</item>
<item rdf:about="https://blog.anlucky.cn/index.php/programming/database/127">
<title>Mysql56个民族数据库</title>
<link>https://blog.anlucky.cn/index.php/programming/database/127</link>
<dc:date>2023-05-06T17:02:00+08:00</dc:date>
<description>Mysql 56个民族数据库表1. 创建数据库-- 创建数据库
create database [数据库名称] charset=utf8;
-- 使用数据库
use database [数据库名称];2. 创建民族表create table [表名称](
    `id` varchar(32) primary key comment &#039;民族id&#039;,
    `nation` varchar(64) comment &#039;民族名称&#039;
);3. 添加民族数据INSERT INTO `[表名称]` VALUES (&#039;1&#039;, &#039;汉族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;2&#039;, &#039;蒙古族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;3&#039;, &#039;回族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;4&#039;, &#039;藏族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;5&#039;, &#039;维吾尔族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;6&#039;, &#039;苗族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;7&#039;, &#039;彝族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;8&#039;, &#039;壮族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;9&#039;, &#039;布依族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;10&#039;, &#039;朝鲜族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;11&#039;, &#039;满族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;12&#039;, &#039;侗族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;13&#039;, &#039;瑶族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;14&#039;, &#039;白族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;15&#039;, &#039;土家族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;16&#039;, &#039;哈尼族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;17&#039;, &#039;哈萨克族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;18&#039;, &#039;傣族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;19&#039;, &#039;黎族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;20&#039;, &#039;傈僳族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;21&#039;, &#039;佤族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;22&#039;, &#039;畲族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;23&#039;, &#039;高山族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;24&#039;, &#039;拉祜族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;25&#039;, &#039;水族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;26&#039;, &#039;东乡族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;27&#039;, &#039;纳西族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;28&#039;, &#039;景颇族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;29&#039;, &#039;柯尔克孜族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;30&#039;, &#039;土族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;31&#039;, &#039;达翰尔族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;32&#039;, &#039;么佬族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;33&#039;, &#039;羌族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;34&#039;, &#039;布朗族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;35&#039;, &#039;撒拉族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;36&#039;, &#039;毛南族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;37&#039;, &#039;仡佬族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;38&#039;, &#039;锡伯族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;39&#039;, &#039;阿昌族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;40&#039;, &#039;普米族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;41&#039;, &#039;塔吉克族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;42&#039;, &#039;怒族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;43&#039;, &#039;乌孜别克族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;44&#039;, &#039;俄罗斯族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;45&#039;, &#039;鄂温克族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;46&#039;, &#039;德昂族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;47&#039;, &#039;保安族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;48&#039;, &#039;裕固族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;49&#039;, &#039;京族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;50&#039;, &#039;塔塔尔族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;51&#039;, &#039;独龙族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;52&#039;, &#039;鄂伦春族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;53&#039;, &#039;赫哲族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;54&#039;, &#039;门巴族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;55&#039;, &#039;珞巴族&#039;);
INSERT INTO `[表名称]` VALUES (&#039;56&#039;, &#039;基诺族&#039;);4. 使用技巧将添加的数据的语句复制到记事本中，使用记事本中的替换功能进行替换快捷键：Ctrl + h然后在数据库中执行SQL语句即可完成</description>
</item>
<item rdf:about="https://blog.anlucky.cn/index.php/programming/database/39">
<title>Mysql数据库基础</title>
<link>https://blog.anlucky.cn/index.php/programming/database/39</link>
<dc:date>2023-04-16T17:55:00+08:00</dc:date>
<description>1. 什么是SQLSQL 是结构化查询语言( Structured  query language ) 适用于所有关系型数据库对数据进行增删改查的语言1.1按照SQL标准分类除了 SQL 标准之外，大部分 SQL 数据库程序都拥有它们自己的专有扩展！SQL标准关系型数据库通用的SQL语句就是SQL标准语句。SQL方言每个数据库管理系统都有各自的专属SQL语句，我们俗称方言，我们在实际开发的时候应该尽量避免使用每个数据库管理系统的专属SQL语句。2. 数据库管理系统的分类关系型数据库（SQL）RDBMS关系型数据库指的是使用关系模型（二维表格模型）来组织数据的数据库常见的关系型数据库OracleMySqlSQL Server    微软SQLiteDB2   IBM非关系型数据库（NoSQL）非关系型数据库又被称为 NoSQL（Not Only SQL )，意为不仅仅是 SQL。通常指数据以对象的形式存储在数据库中，而对象之间的关系通过每个对象自身的属性来决定，常用于存储非结构化的数据常见的非关系型数据库键值数据库：Redis文档数据库：MongoDB图形数据库：Neo4j3. MySQL介绍持久化(persistence)：把数据保存到可掉电式存储设备中以供之后使用。大多数情况下，特别是企 业级应用，数据持久化意味着将内存中的数据保存到硬盘上加以”固化”，而持久化的实现过程大多 通过各种关系数据库来完成。持久化的主要作用是将内存中的数据存储在关系型数据库中，当然也可以存储在磁盘文件、XML数 据文件中。4. 数据类型整数类型* int / interage  4B  
* tinyint 1B
* bigint 8B浮点类型* float 小数点后面6-8位
    float(n,m); 
    n表示一共有多少位数 m表示小数部分保留几位
    此时整数部分位数：（n-m）位
* double 小数点后有效位数12位
    double(n,m) n表示一共有多少位数 m表示小数部分保留几位
    此时整数部分位数：（n-m）位
* decimal 用法和float和double相同  专用于表示钱相关的数字  
         decimal(n,m) m是小数位数 n-m为整数位数 字符类型* char 固定长度 char(10) 
    分配十个长度的存储空间，若不够10个长度，MySQL会自动补齐十个长度  char(n) n&lt;=4000
* varchar 可变长度 varchar(10) 
    分配十个长度的存储空间,传入长度不够时不会自动补齐
* text 64kb
* longtext 4GB时间类型1：time：只有时分秒： xx:xx:xx
2：date：只有年月日： xx/xx/xx
3：datetime：有年月日和时分秒: xx/xx/xx xx:xx:xx
4：timestamp：时间戳  毫秒值:布尔类型bool
boolean字节类型1：binary:255B
2：blob:64kB5. DDL相关语句data defined language:数据定义 对表结构的增删改查
关键字：create /drop /alter /show1 对数据库的操作-- 数据库相关的DDL语句
SHOW DATABASES; -- 显示所有数据库

SHOW VARIABLES LIKE &#039;%char%&#039;; -- 显示数据库的编码集

SHOW TABLES; -- 显示数据库所有表

CREATE DATABASE db_1; -- 创建一个数据库 名字：db_1

CREATE DATABASE db_1 CHARSET=&#039;utf8&#039;; -- 创建一个数据库 名字：db_1

USE db_1; -- 使用db_1 数据库

SELECT DATABASE(); -- 显示当前使用的数据库

DROP DATABASE db_1; -- 删除数据库 db_1

ALTER DATABASE db_1 CHARSET=&#039;gbk&#039;; -- 修改数据库的编码集为gbk
ALTER DATABASE db_1 CHARSET=&#039;utf8&#039;;2 对表的操作-- 数据表的DDL相关操作
CREATE TABLE tab_1(  -- 创建tab_1表 且必须传字段
    tid INT NOT NULL, -- 创建tid字段 数据类型是 int
    tname VARCHAR(4), -- 创建tname字段 数据类型varchar(4)
    tage TINYINT,
    tsex CHAR(1),
    tscort FLOAT(4,1),-- 数据类型float 整数长度4-1 小数1
    tbirthday DATE,
    tintime DATETIME  -- 最后一个不可以有逗号
);
SHOW TABLES; -- 显示所有表
DESC tab_1; -- 显示指定表的字段所有信息
DROP TABLE tab_1; -- 删除表

ALTER TABLE tab_1 RENAME TO tab_11; -- 修改表的名字
ALTER TABLE tab_11 RENAME TO tab_1;
ALTER TABLE tab_1 DROP tintime;    -- 删除一个字段
ALTER TABLE tab_1 ADD tintime DATETIME; -- 增加一个字段
ALTER TABLE tab_1 MODIFY tintime DATE; -- 修改字段的数据类型
ALTER TABLE tab_1 MODIFY tintime DATETIME;
ALTER TABLE tab_1 CHANGE tintime tin DATETIME; -- 修改字段名为tin数据类型为datetime
ALTER TABLE tab_1 CHANGE tin tintime DATE;6. DML相关语句-- DML相关语句
-- 对表记录的增删改：update insert delete
USE db_1;
DESC tab_1;
SELECT * FROM tab_1;
-- 添加信息
INSERT INTO tab_1 VALUES(1001,&#039;张三&#039;,19,&#039;男&#039;,19.9,&#039;1990/1/1&#039;,NOW());
INSERT INTO tab_1 VALUES(1002,&#039;李四&#039;,21,&#039;男&#039;,29.9,&#039;1993/3/4&#039;,NOW());
INSERT INTO tab_1 VALUES(1003,&#039;王五&#039;,24,&#039;男&#039;,2131.1,&#039;2001/4/133&#039;,NOW());
INSERT INTO tab_1(tid,tname,tage,tsex,tscort,tbirthday,tin)VALUES(1004,&#039;赵六&#039;,24,&#039;男&#039;,28.1,&#039;2002/3/14&#039;,NOW());
-- 添加一行信息 ，没有指定字段为null
INSERT INTO tab_1(tid,tname,tage,tsex,tscort)VALUES(1004,&#039;赵六&#039;,24,&#039;男&#039;,28.1);
-- 添加多行信息 没有指定的字段为null 
INSERT INTO tab_1(tid,tname,tage,tsex)VALUES(1004,&#039;王刚&#039;,24,&#039;女&#039;),(1004,&#039;小明&#039;,24,&#039;男&#039;);

UPDATE tab_1 SET tsex =&#039;妖&#039; WHERE tname = &#039;王刚&#039;;

UPDATE tab_1 SET tid = 1005 WHERE tbirthday = &#039;2002/3/14&#039;;
-- 删除数据 where 使用条件
DELETE FROM tab_1 WHERE tid = 1004;

INSERT INTO tab_1(tid,tname,tage,tsex)VALUES(1004,&#039;王刚&#039;,21,&#039;女&#039;);
-- tscort 是不是null 是null的话就是1不是null的话就是本身
UPDATE tab_1 SET tscort = IFNULL(tscort,1);7. 函数1. 字符串相关MySQL中字符串索引是从1开始函数名函数使用方式函数表示意义 asciiASCII('a')       返回97获取字符串在编码表中的位置 char_lengthCHAR_LENGTH('abcdefg') 返回7获取字符串的长度 一共有多少个长度 lentgthLENGTH('abc你好啊') 返回12获取字符串所占的字节数 字符串占2个字节 concatCONCAT('abc','123','defg',可无限写) 返回 abc123defg字符串连接 formatSELECT FORMAT(123123123,3);返回123,123,123.000将数字转换成金钱余额的形式 小数点保留位数可以指定 locateSELECT LOCATE('de','abcdefg')返回4获取字符串1在字符串2中第一次出现的位置 lowerSELECT LOWER('ABCDefg123%$#!@&#039;)返回abcdefg123%$#!@将大写字符转换成小写字符其他字符不变 upperSELECT UPPER('abcdef123@$#&#039;)返回ABCDEF123@$#将小写字符转换成大写字符 trimTRIM('   --abc--   ')返回--abc--清除字符串两边空格 rtrimSELECT RTRIM('  --abc--  ');清除字符串右边空格 LtrimSELECT LTRIM('  --abc--  ');清除字符串左边空格 spaceSELECT CONCAT('abc',SPACE(5),'def');获取n个空格 reverseSELECT REVERSE('abcdefgh');字符串反转，逆序字符串 replaceSELECT REPLACE('abc123abc456abc','abc','-')将参数一中的参数二替换成参数三 positionSELECT POSITION('abc' IN 'defabcgheabc');获取第一个字符串在第二个字符串中出现第一次的位置 repeatSELECT REPEAT('abc',4);获取当前字符串几次的拼接结果 strcmpSELECT STRCMP('def','eabc');字符串逐个比较前面大返回1后面大返回-1一样返回0 substringSELECT SUBSTRING('abcdef',2,3);从参数一中截取字符串索引是参数2截取个数是参数3 2. 数学相关函数函数名函数使用方式函数表示意义 sumSELECT SUM(tscore) FROM tab_2;求和，忽略null值不算 minMIN(tscore)求最小值，忽略null值不算 maxMAX(tscore)求最大值，忽略null值不算 avgAVG(tscore)求平均值，忽略null值不算 countCOUNT(tscore)获取数据行数，忽略null值不算   COUNT(*)会获取所有行包含null floorfloor(19.5)  返回19向下取整 ceilCEIL(19.5)  返回20向上取整 roundround(19.5)   round(19.5,2)四舍五入保留几位小数 powpow(n,m)幂运算 n的m次方 sqrtSQRT(9)开平方 randRAND()获取一个0到1之间的随机数字 truncateTRUNCATE(n,m)截取数字n，保留小数点后m位 UUIDUUID()随机一个不重复的32位字符串d2f5b155-4a97-11ed-98ed-eff1eabffcb4 modMOD(n,m)n%m  取余运算         3. 日期相关函数函数名函数使用方式函数表示意义 nowNOW()取当前系统时间    2022-08-13 09:42:41 curdateCURDATE()取当前系统日期 2022-08-13                         8. 数据操作1. Insert 插入数据INSERT INTO【表名称】(字段列表)values(值列表); 插入多条数据INSERT INTO 【表名称】(字段列表)values(值列表),(值列表)...;2. Select 查询数据SELECT * FROM 【表名称】;   -- 查询该表所有字段的所有信息查询指定字段的信息SELECT 【字段列表】 FROM 【表名称】; -- 查询该表中指定字段信息3. Where 条件查询需要配合着select查询语句进行使用SELECT 【字段列表】 FROM 【表名称】 where 【字段名】&lt;等于/大于/小于/不等于&gt; 某值;4. Update 更新数据修改指定条件的字段等于某个数据UPDATE 【表名称】SET 【字段】=【某值】,【字段】=【某值】 where 【字段名】&lt;等于/大于/小于/不等于&gt; 某值;5. Delete 删除数据删除表中的数据DELETE FROM【表名称】;指定条件删除某条或多条数据DELETE FROM 【表名称】 where 【字段名】&lt;等于/大于/小于/不等于&gt; 某值;6. Like 模糊匹配我们在使用where的时候只能匹配精准的数据，若使用我们的Like 的话就可以模糊匹配某条数据是否包含某些值select 【字段名】 from 【表名】 where 【字段名】 Like &#039;匹配规则&#039;匹配规则以某值开头        &#039;【值】%&#039;;
以某值结尾        &#039;%【值】&#039;;
包含某值        &#039;%【值】%&#039;;7. 获取到数据后排序使用 Oreder By 【字段名】 【排序规则 DESC 倒序/ASC 正序】SELECT * FROM 【表名称】 order by 【字段名】 DESC/ASC;### 8. 获取到的数据分组使用 Group by 【字段名】按照指定固定字段进行分组注意：​            分组之后的数据无法查询组员是谁，只可以查询组员的聚合信息 比如 成员数，求和，求最大值，求最小值，求平均值等聚合信息聚合信息：​             比如 成员数，求和，求最大值，求最小值，求平均值select 【聚合信息字段】 from 【字段名】 group by 【分组字段】;9. 多表查询1. 字段连接查询 UNION    /  Union all查询两张表中的字段 放到一张表中显示1 两张表连接起来的数据类型必须一致SELECT 【字段名】,【字段名】 from 【表名】 union select 【字段名】,【字段名】 from 【表名】; -- 查询到的数据不包含null


SELECT 【字段名】,【字段名】 from 【表名】 union all select 【字段名】,【字段名】 from 【表名】;-- 查询到的数据包含null2. 表连接查询方言SELECT 【别名1】.*, 【别名2】.* from 【表名1】 as 【别名1】,【表名2】 as 【别名2】 where 【查询条件】;标准 内连接 去除两张表中的NULL数据SELECT 【别名1】.* 【别名2】.* from 【表名1】 as 【别名1】 inner join 【表名2】 as 【别名2】 on 【查询条件】;标准 左连接SELECT 【别名1】.* 【别名2】.* from 【表名1】 as 【别名1】 left join 【表名2】 as 【别名2】 on 【查询条件】;标准 右连接SELECT 【别名1】.* 【别名2】.* from 【表名1】 as 【别名1】 right join 【表名2】 as 【别名2】 on 【查询条件】;10. SELECT(select) 查询select 字段1,字段2,......from 表名  # 查询当前表明指定字段的所有信息查询指定字段 来自哪个表中查询所有 select * from 表名  # 查询当前表中所有字段的所有信息SELECT 1+1,3*2;
SELECT 1+1,3*2 FROM DUAL
# dual 伪表
# 当前两种语句在执行的时候没有区别11. 别名 AS在我们查询的时候为了方便查看我们可以给字段 / 表头 起一个别名,这个别名只在这条语句执行的时候有效起别名的方式有两种1 在我们select选择字段的时候可以直接按下一个空格然后指定别名2 使用 AS 关键字 AS关键字后面写入你要起的别名使用双引号select id as &quot;学号&quot;,rname as &quot;姓名&quot; from student12. 去除重复 distinct使用场景：比如我们要查询员工表中都有哪些部门中有员工就可以使用关键字 distinctselect distinct department_id from employees;错误的情况 运行报错无法运行select salary,distinct department_id from employees;正确的情况：select distinct department_id,salary from employees;13. 着重号我们在给字段起名字的时候最好不要使用到MySQL的关键字，若真是使用到了关键字我们在查询的时候可以使用着重号来给这个词括起来然后再去运行我们的查询语句就可以了着重号就是~符号单点一下14. 显示表结构 describedescribe 表名;
desc 表名;显示表中所有字段的详细设置信息15. where 数据过滤select * from 表名 Where 过滤条件如我们想要查询一个学生信息表中学生分数大于60的可写下面语句select * from student where scort&gt;60;16. 算数运算select 100 + &#039;a&#039; from dual; # 此时计算结果为100
# 在mysql中 他并不会将字符转换成对应的整数进行计算

select 100 + &#039;1&#039; from dual; # 计算结果101

select 100 + null from dual; # 计算结果为null一个整数类型的值对整数进行加法和减法操作，结果还是一个整数；一个整数类型的值对浮点数进行加法和减法操作，结果是一个浮点数；加法和减法的优先级相同，进行先加后减操作与进行先减后加操作的结果是一样的；在Java中，+的左右两边如果有字符串，那么表示字符串的拼接。但是在MySQL中+只表示数 值相加。如果遇到非数值类型，先尝试转成数值，如果转失败，就按0计算。（补充：MySQL 中字符串拼接要使用字符串函数CONCAT()实现）一个数乘以整数1和除以整数1后仍得原数；一个数乘以浮点数1和除以浮点数1后变成浮8点数，数值与原数相等；一个数除以整数后，不管是否能除尽，结果都为一个浮点数；一个数除以另一个数，除不尽时，结果为一个浮点数，并保留到小数点后4位；乘法和除法的优先级相同，进行先乘后除操作与先除后乘操作，得出的结果相同。 在数学运算中，0不能用作除数，在MySQL中，一个数除以0为NULL。17. 比较运算符比较运算符用来对表达式左边的操作数和右边的操作数进行比较，比较的结果为真则返回1，比较的结果 为假则返回0，其他情况则返回NULL。 比较运算符经常被用来作为SELECT查询语句的条件来使用，返回符合条件的结果记录。1.字符串特殊情况字符串存在隐式转换，如果转换不成功 则给他当成0来看若是字符串和字符串进行比较那么将比较的是值不会将字符串转换为 0 进行比较若是字符串与数字进行比较那么将字符串转换为数字，若字符串不是数字的话默认当成0来看2. null特殊情况如果在比较中出现与null参与比较的时候比较返回也是一个nullselect null=null from dual;  # 结果返回一个null
select null = &#039;1&#039; from dual; # 结果返回一个null3. null 查询# 假设学生数据库中有地址字段address 其中有一部分学生的address是null 并没有添加地址信息，我们要查到这些学生使用sql语句

# 错误的写法
    select * from student where address = null; # 此条语句返回一个空
    # 因null在参与比较的时候无论什么情况都返回一个null 所以会取不出我们查询的数据集此时我们要借助一个新的运算符进行和null比较 &lt;=&gt;  安全等于select null&lt;=&gt; null from dual;
# 按照之前的逻辑比较来说null参与比较是必须返回一个null，但是使用到安全等于比较运算符的时候就可以判断出他是不是等于null4. 使用关键字进行字符串比较</description>
</item>
</rdf:RDF>