8.sql和hsql以及flink-sql总结

1. SQL

1.1. 初始化操作

  • 链接数据库mysql -h 192.168.1.30 -P 3306 -uroot -p123456
  • 退出数据库exit/quit/ctrl+d
  • 显示时间select now();
  • 显示数据库的版本select version();

1.2. 数据定义语言DDL(Data Definition Language

  • 关键词: create alter drop truncate(删除当前表再新建一个一模一样的表结构)
  • 创建数据库create database hadoop-01 charset=utf8; # 注意有特殊字符时,用tab键上面的字符引起来
  • 查看所有的数据库/表show databases/tables
  • 查看创建数据库的语句show create database db_test;\G格式化,在终端可以直接拷贝出sql语句
  • 查看当前使用的数据库select database();
  • 使用数据库use db_test;
  • 删除数据库drop database db_test;
  • 创建表
    • 格式
      • auto_increment表示自动增长
      • not null 表示不能为空
      • primary key 表示主键
      • default 默认值
      • create table 数据表名字 (字段 类型 约束[, 字段 类型 约束]);
    • 实例
      • create table xxxxx(id int, name varchar(30));

      • create table yyyyy(id int primary key not null auto_increment, name varchar(30));

      • 创建students表(id、name、age、high、gender、cls_id)

        create table students(
            id int unsigned not null auto_increment primary key,
            name varchar(30),
            age tinyint unsigned default 0,
            high decimal(5,2),
            gender enum("男", "女", "中性", "保密") default "保密",
            cls_id int unsigned,
        	is_delete bit default 0
        );
        
  • 查看表结构desc xxxxx;
  • 查看创建表的创建语句show create table xxxxx; \G格式化,在终端可以直接拷贝出sql语句
  • 修改表
    • 增加列alter table 表名 add 列名 类型;

       alter table students add birthday datetime;
      
    • 修改字段:不重命名字段alter table 表名 modify 列名 类型及约束

      alter table students modify birthday date;
      
    • 修改表-修改字段:重命名字段alter table 表名 change 原名 新名 类型及约束;

      alter table students change birthday birth date default "2020-03-30";
      
    • 修改表-删除字段alter table 表名 drop 列名;

      alter table students drop high;
      
  • 删除表drop table xxxxx;
  • 复制表结构,不包含数据create table stu like students;
  • 复制表结构和数据create table stu1 (select * from students);

1.3. 数据操纵语言DML(Data Manipulation Language

  • 关键词: insert update delete

  • 注意点

    • 开发中很少使用delete,删除有物理删除和逻辑删除,其中逻辑删除可以通过给表添加一个字段(isDel),若值为1,代表删除;若值为0,代表没有删除。此时,对数据的删除操作就变成了update操作了。
    • truncate和delete的区别:truncate是删除表,再重新创建这个表。属于DDL,delete是一条一条删除表中的数据,属于DML。
  • 数据的增加

    • 全列插入insert [into] 表名 values(...)
      -- auto_increment:从当前最大的自增值开始偏移,即使缺少了中间部分值,也可以指定,只要不冲突就可以,一般用0或者null
      insert into students values(0, "小李飞刀", 20,166.66,"女","1990-01-01",0);
      -- 是否删除位一般采用一个bit即可
      insert into students values(null, "小李飞刀", 20,166.6,"女","1990-01-01",1);
      -- 枚举中 的 下标从1 开始 1---“男” 2--->"女"....
      insert into students values(null, "小李飞刀", 20,166.6,"2","1990-01-01",1);
      
    • 部分插入insert into 表名(列1,...) values(值1,...)
      insert into students (name, gender) values ("小乔", 2);
      
    • 多行插入
      insert into students (name, gender) values ("大乔", 2),("貂蝉", 2);
      insert into students values(null, "小李飞刀", 20,166.6,"女","1990-01-01",1),(null, "小李飞刀", 20,166.6,"女","1990-01-01",1);
      
  • 修改数据update 表名 set 列1=值1,列2=值2... where 条件;

    -- 全部修改
    update students set gender=1;
    -- 只要name是小李飞刀的 全部的修改
    update students set gender=1 where name="小李飞刀";
    -- 只要id为3的 进行修改
    update students set gender=1 where id=3;
    -- 只要id为3的 进行修改,修改多列
    update students set age=22, gender=1 where id=3;
    
  • 删除数据

    • 物理删除 delete from 表名 where 条件

      delete from students
### Spring Boot 应用程序因缺少 DataSource URL 属性而启动失败的解决方案 当 Spring Boot 应用程序因为 `DataSource` 的 `url` 属性未被指定而导致启动失败时,可以采取以下措施来解决问题。 #### 1. 配置嵌入式数据库 如果希望使用嵌入式数据库(如 H2、HSQL 或 Derby),则需要将其依赖项添加到项目的类路径中。例如,在 Maven 中可以通过以下方式引入 H2 数据库: ```xml <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> ``` 这样,Spring Boot 将自动检测并配置嵌入式数据源[^1]。 #### 2. 明确指定外部数据库连接信息 对于外部数据库(如 MySQL 或 PostgreSQL),需在 `application.properties` 或 `application.yml` 文件中提供完整的数据源配置。以下是针对 MySQL 数据库的一个示例配置: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 或者通过 YAML 格式的配置文件实现相同效果: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC username: root password: password driver-class-name: com.mysql.cj.jdbc.Driver ``` 这些设置确保了 Spring Boot 能够识别所需的驱动程序以及正确的数据库地址[^2]。 #### 3. 启动特定环境下的配置文件 如果有多个环境(开发、测试、生产等)对应的独立配置,则应激活相应的配置文件以加载对应的数据源参数。这可通过命令行选项完成,比如 `-Dspring.profiles.active=dev` 来启用开发模式中的设定[^3]。 #### 4. 检查 ShardingSphere 多数据源场景下是否存在遗漏 如果是基于 ShardingSphere 实现分片或多数据源架构的应用,务必确认每一个单独定义的数据源都具备齐全的信息字段,包括但不限于 type、driver-class-name 具体的 JDBC 连接串等内容。如下所示是一个典型的双数据源实例片段: ```properties spring.shardingsphere.datasource.names=ds-0,ds-1 spring.shardingsphere.datasource.ds-0.type=com.zaxxer.hikari.HikariDataSource spring.shardingsphere.datasource.ds-0.driver-class-name=com.mysql.cj.jdbc.Driver spring.shardingsphere.datasource.ds-0.url=jdbc:mysql://localhost:3306/ds_0?serverTimezone=UTC&useSSL=false spring.shardingsphere.datasource.ds-0.username=root spring.shardingsphere.datasource.ds-0.password=123456 spring.shardingsphere.datasource.ds-1.type=com.zaxxer.hikari.HikariDataSource spring.shardingsphere.datasource.ds-1.driver-class-name=com.mysql.cj.jdbc.Driver spring.shardingsphere.datasource.ds-1.url=jdbc:mysql://localhost:3306/ds_1?serverTimezone=UTC&useSSL=false spring.shardingsphere.datasource.ds-1.username=root spring.shardingsphere.datasource.ds-1.password=123456 ``` 这里需要注意的是,每个子节点都需要有清晰无误的描述以便于框架解析成功[^4]。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值