精英内训

2025-04-27

2025-04-26  本文已影响0人  C陈永杰

本周主要是对即时通讯项目的学习和实现,以及对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;

上一篇 下一篇

猜你喜欢

热点阅读