实训笔记6.26

这篇具有很好参考价值的文章主要介绍了实训笔记6.26。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

6.26

一、座右铭

我的故事你说,我的文字我落,我值几两你定,我去何方我挑。

二、知识回顾

2.1 Java多线程

2.1.1 一些概念知识

程序、进程、线程

单核CPU和多核CPU

并行和并发

2.1.2 多线程的创建方式
  1. 继承Thread类,重写run方法
  2. 实现Runnable接口,重写run方法
  3. 实现Callable接口,重写call方法
  4. 使用线程池
    1. 缓存线程池
    2. 单例线程池
    3. 固定容量的线程池
    4. 调度线程池:schedule(Runnable|Callable,long time,Timeunit)

execute(Runnable) submit(Callable)

多线程的运行都需要借助Thread类的start方法来开启一个多线程

两个问题

  1. 继承和实现创建的多线程有什么区别

1、继承只能单继承、实现可以多实现

2、继承体系下多线程数据共享操作比较麻烦 实现体系下多线程数据共享操作比较简单

  1. Runnable和Callable两个的区别

1、run方法没有返回值、call方法是有返回值的

2、run方法不能抛出异常,有异常只能捕获 call方法可以抛出异常

2.1.3 多线程的生命周期

新建、就绪、运行、阻塞、死亡

2.1.4 多线程的数据同步–多线程数据共享问题

多线程中哪些数据是可以共享的?堆区或者元数据区

多线程操作共享数据的时候,因为抢占时间片机制,导致数据出现问题

三种解决方案

  1. 同步代码块
  2. 同步方法

定义同步监视器–锁的钥匙

Java中所有类的对象都可以当同步监视器

  1. 显式的上锁和解锁
2.1.5 多线程的线程通信

多个线程之间相互通信交流,依次占用CPU进行运行

wait、notify、notifyAll

多线程之间如果要进行通信,必须保证多线程之间的同步监视器也是同一个

sleep\wait方法

  1. sleep方法是Thread类,wait方法是Object类
  2. sleep方法会带着锁去阻塞,wait方法会释放了锁再进入阻塞状态

三、数据库

3.1 分类

3.1.1 关系型数据库管理系统:RDBMS
  1. 存储结构化数据
  2. MySQL
  3. Oracle
  4. SQL Server
3.1.2 非关系型数据库管理系统:NoSQL
  1. 存储非结构化数据
  2. Redis
  3. mongodb
  4. hbase

3.2 连接MySQL服务

mysql -uusername -ppassword -Pport

使用到一款工具–数据库可视化工具,给数据库提供了一个可视化操作的界面(navicat、sqlyog、dbeaver…)

3.3 SQL语言

3.3.1 SQL语言概念

SQL语言全称是Structured query language,结构化查询语言,是RDBMS提供的用来管理数据库、数据表、表数据的一个工具

3.3.2 DDL语言

DDL语言:数据定义语言-库和表的管理语言

  1. 负责创建、删除、修改、查询数据库和数据表

  2. 库的管理操作

    1. 创建数据库:

      create database if not exists database_name charset "编码集";

    2. 修改数据库:改数据库的编码集

      alter database database_name character set "编码集";

    3. 查询MySQL中数据库的相关信息

      show databases;

      show create database database_name;

    4. 删除数据库drop database if exists database_name;

      数据库一旦删除,数据库中表全部删除了

  3. 表的管理操作

    1. 创建数据表create table if not exists table_name( 字段名 字段类型 字段约束 comment “注释”, 字段名 字段类型 字段约束 comment “注释”, … )engine=“存储引擎”,charset=“编码集”;show engines;

    2. mysql常见的字段类型

      类型
      整数型 tinyint
      smallint
      mediumint
      int/integer
      bigint
      小数型 float
      double(num,num)
      字符串类型 char(num)
      varchar(num)
      text
      blob/tinyblob
      时间日期类型 datetime
      timestrap
      两种特殊的类型 enum
      set
    3. mysql字段约束:限制数据的格式

        1. 格式名 说明
          主键约束 外键有个特点:外键两张表的关联关系主表,
          从表,主表的主键是从表中外键
          如果主表的数据不存在,那么从表无法添加数据
          如果从表的数据不删除,那么主表的数据也不能删除
          foreign key
          外键约束 primary key
          唯一约束 unique 限制数据再当前列只能出现一次
          非空约束 not null 限制数据在添加时,必须添加数据
          默认约束 default 值 如果在添加数据时,没有添加改字段值,会给我赋予一个默认值
          检查约束
          (mysql8版本以后才生效)
          check(条件) 限制数据的填充规范

      主键约束:表级约束来添加

      外键约束、唯一约束、非空约束、默认约束、检查约束:列级约束来添加

    4. 数据库的设计三范式

      1. 创建数据表的时候,表的设计规则–业界默认规则
      2. 第一范式1NF:原子性,设计表的时候,表中的字段满足不可在被分割的原则
      3. 第二范式2NF:唯一性,表中的每一行数据在数据表中是唯一的,设置主键,给每一行数据必须得有一个主键来维护它的唯一性,每一行数据的非主键字段必须依赖于主键字段,主键字段一般是和业务字段无关的字段,主键在表中唯一的。 因为主键是和业务字段无关的,因此主键的值没有特殊要求的,一般唯一即可,所以主键一般都是整数类型的自增字段(标识列)
      4. 第三范式3NF:消除冗余,表中非主键字段必须直接依赖于主键字段,设置外键
3.3.3 DML语言

DML语言:数据操纵语言–表数据的增加、删除、修改操作

增加表数据

1、insert into table_name(表字段列表) values(值列表),(值列表)

3.3.4 DQL语言

DQL语言:数据查询语言–查询表数据

3.3.5 DCL–TCL语言

DCL–TCL语言:数据控制语言–负责数据库的事务操作文章来源地址https://www.toymoban.com/news/detail-503263.html

今日数据库代码示例

-- 1、创建数据库
create database if not exists school charset 'utf8';
-- 2、修改数据库的编码集
alter database school character set "gbk";
-- 3、查看数据库的创建细节
show create database school;
-- 4、删除数据库
drop database if exists school;
-- 5、查询MySQL支持的所有的存储引擎
show engines;

USE school;
-- 6、创建一个院系表:院系id,院系名字,院系领导,院系的地址,院系简介,院系的专业个数
create table if not exists department(
    department_id  int primary key auto_increment comment "院系id 院系的主键",
		department_name  varchar(255) not null unique comment "院系名",
		department_leader varchar(255) default "",
		department_address varchar(255),
		department_intro   text,
		major_number   int not null check(major_number >0)
)engine="innodb",charset="UTF8";
-- 7、学生表:学生id,学生姓名 学生年龄 学生学号 学生手机号 学生的院系id
create table if not exists student(
    student_id  int primary key auto_increment comment "学生id 学生的主键",
		student_name  varchar(255) not null comment "学生名",
		student_age    int   not null check(student_age > 15 and student_age < 150),
		student_sno   varchar(20) not null unique,
		student_phone  varchar(20) unique,
		student_department_id int,
		constraint fk1 FOREIGN key(student_department_id) references department(department_id)
)engine="innodb",charset="UTF8";

-- 院系表增加数据
insert into department(department_name,department_leader,department_address,department_intro,major_number) values("数学系","数老师","学院路3号","数学系",3),("体育学院","体老师","学院路3号","体育系",3);

insert into student values(2,"xjq",20,"s002","15766666667",1);

create table demo(
   sex enum('男','女'),
	 hobby set('唱歌','jump','rap'),
	 time datetime
)

insert into demo values('男','jump,rap','2023-10-01')

到了这里,关于实训笔记6.26的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 华为实训课笔记

    ping 基于ICMP协议,用来进行可达性测试 ping +目的IP地址/设备域名(主机名) 如果能收到 reply 回复,则表示双方可以正常通信。一次正常的数据通信必须是有去有回。 Huawei 用户视图,只能做查询和一些简单的资源调用,还有配置保存 Huaweisystem-view 进入系统视图 [Huawei] 系统视

    2024年02月04日
    浏览(35)
  • 实训笔记8.22

    1.1 DDL 1.1.1 Hive中数据表的分类问题 Hive中数据表的分类只是用来告诉我们Hive底层在HDFS上存储的文件的规则和规范 1.1.2 特殊的数据类型 array、map、struct Hive数据表可以指定底层的存储格式的分隔符问题row format 1.2 DML Hive中默认不支持批量的删除和更新操作 增加数据 装载数据 追

    2024年02月11日
    浏览(32)
  • 实训笔记6.5

    我的故事你说,我的文字我落,我值几两你定,我去何方我挑。 Java基本语法 1、Java的安装和环境变量的配置 JDK、JRE、JVM的区别 环境变量的配置 2、Java的标识符、和保留字 包名:纯小写 类名:大驼峰命名法 方法名和属性名:小驼峰命名法 static final 修饰的属性名:全

    2024年02月08日
    浏览(43)
  • 实训笔记6.6

    我的故事你说,我的文字我落,我值几两你定,我去何方我挑。 1、方法和构造方法 1.1 Java方法 方法的声明和调用方式 方法的分类 方法的返回值问题 方法名 方法的形参列表问题 方法的重载问题 方法的JVM内存问题(方法的声明时机、方法的调用内存) 方法和方法之间可以相

    2024年02月08日
    浏览(34)
  • 粤嵌实训笔记二

    1、在Linux下,使用 gcc 来编译 gcc xxx.c -- 默认生成的可执行文件 名为 a.out gcc xxx.c -o xx -- 生成指定名字的可执行文件 xx 2、交叉编译 :在一个环境下编译生成 适用于 另一个环境下的可执行文件 3、为交叉编译工具创建软连接 sudo ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-

    2024年02月03日
    浏览(40)
  • 实训笔记9.4

    git官网 1.1 建立仓库 git init 1.2 添加到暂存区 git add 文件名称 git add . 1.3 提交到历史区 git commit -m \\\"提交信息\\\" 1.4 查看 1.4.1 查看当前版本库状态 git status 1.4.2 查看版本日志信息 git log git log --oneline 单行模式 git log --oneline --graph ——单行带图形 1.4.3 查看版本的变更历史 git reflog

    2024年02月09日
    浏览(33)
  • 实训笔记7.24

    1.1 涉及到一些框架核心组件 1.1.1 InputFotmat 1.1.2 MapTask 1.1. 3Partitioner 1.1.4 WritableComparable 1.1.5 Combiner(可选) 1.1.6 WritableComparator(GroupingComparator) 1.1.7 ReduceTask 1.1.8 OutputFormat SequenceFile文件是Hadoop提供的一种比较的特殊的文件,文件中存储的是key-value的二进制数据,而且SequenceFile文

    2024年02月16日
    浏览(36)
  • 实训笔记6.21

    我的故事你说,我的文字我落,我值几两你定,我去何方我挑。 2.1 JavaIO流 2.1.1 从三个角度分为六类 输入流和输出流 字节流和字符流 节点流和功能流 2.1.2 IO流的四大抽象基类 四大抽象基类 InputStream OutputStream Reader Writer InputStream、OutputStream: 所有格式的数据 Reader、Writer:

    2024年02月10日
    浏览(32)
  • 实训笔记7.19

    我的故事你说,我的文字我落,我值几两你定,我去何方我挑。 2.1 HDFS上传数据的流程 2.2 HDFS下载数据的流程 2.1~2.2:客户端Client 主节点NameNode 从节点DataNode 2.3 HDFS中NameNode和SecondaryNameNode工作机制(涉及到HDFS的元数据管理操作) 一个概念和两个文件:元数据、edits编辑日志文

    2024年02月16日
    浏览(34)
  • 实训笔记8.25

    将海量的数据通过某种技术采集到大数据环境中进行存储和管理,为后期的大数据处理分析做准备 常见的数据:网站/软件的运行日志、记录的日志,软件的结构化数据、爬虫数据、传感器采集数据… Flume是apache开源的顶尖项目,专门是采集和聚合海量的日志数据。但是随着

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包