什么是数据库?
可以理解为Excel就是一个数据表 利于人操作
MySQL是数据库,便于程序操作,便于存储百万以上级别的数据
基本操作为:增删改查
分为:1.Web Application Server(网页服务器) 2.Game Server(游戏服务器)
命令行学习:
show databases;(显示所有数据库)
creata database tableName(创建数据库)
create table tableName(row_Name dataType,row_Name dataType,primary key (row_Name));(控制台创建表)
show table;(显示数据库所有表)
alter table student add column studentid int not null after id;(在表内添加一条属性)
desc tableName(显示表内容)
insert into tableName(键名)values(‘值’)
select * from tableName(获取该表中的所有数据)
update tableName set username=‘123’ where id=3;(更新表内的值 where为约束条件)
delete from tableName where id=1 (删除某条数据 where为限制条件)
select * from tableName limit num(显示显示列数)
limit x (读取多少行)
limit x1,x2(从哪行开始 读取多少行)
select name,password,money from userstudy where id>2; (通过列名字查询数据)
mysql> select * from userstudy order by id;(从小到大排序)
mysql> select * from userstudy order by id desc;(从大到小排序)条件可以混合使用
常用静态函数:
select ‘some string’
select 1+1(可以做任意简单的运算)
select now():获取当前日期时间
select curdate():获取当前日期
select curtime();获取当前时间
select pi():获取pi
select mod():取余函数
select sqrt():开平方根
select round():四舍五入
select round(num ,x):保留几位小数
select floor()直接舍去
select ceiling()直接入
字符串操作
concat ()字符串拼接
left(str,num)截取字符串 以及截取多少位
length ()获取字符串长度
reverse()翻转字符串
<>意为不等于
范围判断
in() 可以传入多个不同条件 任何类型都适用 包含哪些项
not in()可传入多个不同条件 不包含某些项
between and 组合适用 包含哪些项
not between and 组合适用 不包含哪些项
like 模糊查找 某个字符+% 例如 A% 意为是否符合包含A字母的字符 %为多个字符 代表一个字符
例如: select * from student where newname like ‘s%’;
select * from student where name like '徐_’;_一个下划线代表一个字符
not like 与上面相反
子查询 select * from students where id= (select min(id) from stundents where isDelect;
ALTER TABLE student AUTO_INCREMENT=1;删除后自动排序语句
select name,count() from student group by sex;通过性别分类 获取每个类型的总数
having 关键字使用在group by 后面作为分组后筛选使用
select time ,count() from role group by time having time=‘远古时代’;
命令行导出备份
C:\Users\宋曼>cd C:\Program Files\MySQL\MySQL Server 5.7\bin
C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqldump -u root -p123456 guqiyuandata > D:backup.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
C:\Program Files\MySQL\MySQL Server 5.7\bin>
命令行导入
source D:backup.sql;
网络基础
计算机网络是指将多台计算机连接起来,以实现资源共享和信息传递
网络游戏大多使用基于TCP/IP协议的BS(客户端-服务器)结构
客户端程序运行在用户的电脑或手机上
服务端程序运行在游戏运营商的服务器上
ISO(国际标准化组织)/七层网络模型:
应用层:应用程序提供给的服务
表示层:格式化数据,以便为应用程序提供通用接口
会话层:在两个节点之间建立端连接
传输层:面向连接或无连接的常规数据递送,TCP和UDP协议数据传入层协议
网络层:通过寻址来建立两个节点之间的连接,IP协议属于传输层协议
数据链路层 :将数据分帧,添加效验机制,并处理流控制
物理层:原始比特流的传输
应用层、表示层和会话层统称为应用层,没有很明确的界定,一般由程序开发者实现
传输层、网络层、数据链路层和物理层为底层,由操作系统提供。
IP和端口
IP地址:网络上的计算机都是通过IP 地址进行识别的,应用程序通过通信端口彼此通信(在本机Windows命令提示符中输入ipconfig,便能够查看本机的ip地址)
端口:是设备与外界通信交流的出口,每台计算器可以分配0-65535个端口,其中0到1023号称为众所周知的端口号,它们被分配给一些固定的服务
C#中的相关类型
C#的System.Net命名空间中提供了两个IP和端口相关的类
IPaddress:指示IP地址
IPaddress常用的属性
IPaddress.Any:使用机器上一个可用的IP来初始化这个IP地址对象
IPaddress.Parse:根据IP地址创建IPAddress对象,如IPAddress ,Parse(“192.168.1.1”)
IPEndPoint:指示IP和端口对的组合
IPEndPoint的常用构造函数
IPEndPoint(Int64,Int32):用指定的地址和端口号初始化
IPEndPoint(IPAress,Int32):用IPAddress指定的地址和端口号初始化
IPEndPoint常用的属性
Address:获取或设置终结的IP地址
Port:获取或设置终结点的端口号
TCP协议
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,而与TCP相对应的UDP协议则是无连接的 、不可靠的协议(但传输效率比TCP高)。
TCP连接的建立
TCP是面向连接的,无论哪一方在向另一方发送数据之前,都必须现在双方之间建立一条连接。
在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的
三次握手的目的是同步连接双方的序列号和确认号,并交换TCP窗口大小的信息
自己理解的三次握手的含义
主机1向主机2发送一条数据
如果时间过久没有得到主机2的回应 主机1重复发送数据 直到得到主机2的回应
主机2收到回应后 确定主机1也可以得到回应 则进行后面的通讯
TCP的数据传输
发送一个数据后,发送方并不能确保数据一定会被接收方接受,于是发送方会等待接收方的回应,如果太长时间没有收到回应,发送方会重新发送数据
TCP连接的终止
客户端和拂服务器通过三次握手建立了TCP连接以后,待数据传送完毕,便要断开连接 。与三次握手相似,TCP通过“四次挥手”来确保双端都断开了连接
四次挥手:
第一次挥手: 主机1(可以是客户端也可以是服务器)向主机2发送一个终止信号(FIN),主机1进入FIN_WAIT_1状态,它没有需要发送的数据,只需要等待主机2的回应
第二次挥手:主机2收到主机1发送的终止信号(FIN),向主机1回应一个ACK(应答信号)。收到ACK的主机1进入FIN_WAIT_2状态。
第三次挥手:在主机2把所有数据发送完毕后,主机2向主机1发送终止信号(FIN),请求关闭连接。
第四次挥手:主机1收到主机1发送的终止信号(FIN),向主机2回应ACK。然后主机1进入TIME_WAIT状态(等待一段时间,以便处理主机2的重发数据)主机2收到主机1 的回应后,关闭连接。
至此TCP的四次挥手便完成了,主机1和主机2都关闭了连接