2025-04-27

本周主要是对即时通讯项目的学习和实现,以及对MySQL数据库的学习。

数据库核心知识总结

1. 网络编程

Socket:用于客户端与服务器通信。客户端使用Socket连接服务器,服务器使用ServerSocket监听连接。

协议:常用TCP协议保证数据可靠传输,UDP较少使用但可用于实时性要求高的场景。

2. 数据传输

IO流:通过Socket的输入流和输出流读写数据。可使用字符流或缓冲流提高效率。

数据格式:可采用文本或二进制格式传输数据,也可设计自定义协议(如[消息长度][消息内容])。

3. 多线程

线程创建:服务器端为每个客户端创建一个线程处理消息,可通过实现Runnable接口或继承Thread类。

线程同步:处理共享资源(如消息队列)时,需使用synchronized或Lock进行同步。

4. 消息处理

接收与发送:客户端和服务器通过IO流发送和接收消息。

消息解析:根据协议解析消息,文本格式可使用字符串操作,二进制格式可使用DataInputStream。

5. 异常处理

网络异常:捕获IOException等异常,关闭资源并提示用户。

线程异常:捕获线程中的异常,避免程序崩溃。

MySQL核心知识总结

1. 核心概念

数据库:CREATE DATABASE db_name;

:CREATE TABLE table_name (id INT PRIMARY KEY, name VARCHAR(50));

字段类型

数值:INT、DECIMAL

字符串:VARCHAR、TEXT

日期:DATE、DATETIME

主键:唯一标识记录,不能为空。

外键:关联表,引用其他表的主键。

2. SQL语句

DDL(数据定义语言)

创建表:CREATE TABLE table_name (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));

修改表:ALTER TABLE table_name ADD COLUMN age INT;

删除表:DROP TABLE table_name;

DML(数据操纵语言)

插入:INSERT INTO table_name (name, age) VALUES ('Alice', 25);

更新:UPDATE table_name SET age = 26 WHERE name = 'Alice';

删除:DELETE FROM table_name WHERE name = 'Alice';

DQL(数据查询语言)

查询:SELECT * FROM table_name WHERE age > 20 ORDER BY age DESC;

分组:SELECT age, COUNT(*) FROM table_name GROUP BY age;

DCL(数据控制语言)

授权:GRANT SELECT, INSERT ON db_name.table_name TO 'user'@'localhost';

撤销:REVOKE SELECT ON db_name.table_name FROM 'user'@'localhost';

3. 索引

作用:加速查询。

创建:CREATE INDEX idx_name ON table_name (column_name);

删除:DROP INDEX idx_name ON table_name;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 四、数据结构和算法 1、求一串数字序列中的连续子串最大和,比如arr=1 -2 3 -1 2,连续子串最大和就是3...
    XDgbh阅读 371评论 0 1
  • title: "Oracle创建表空间和表"date: 2021-02-01T20:17:20+08:00draf...
    大地缸阅读 256评论 0 0
  • 文章目录 MySQL 索引使用有哪些注意事项呢?索引哪些情况会失效索引不适合哪些场景 MySQL 遇到过死锁问题吗...
    祁小彬阅读 542评论 0 1
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,857评论 5 116
  • 数据库基础知识 1. 为什么要使用数据库 数据保存在内存 优点:存取速度快 缺点:数据不能永久保存 数据保存在文件...
    Python百事通阅读 426评论 0 1