数据库学习01 Mysql数据库的基本操作
数据库的基本操作
1 |
输入 mysql -uroot -p -P3306 -h127.0.0.1 |
数据库学习02 Mysql数据库数据表的操作
1、查看表结构
1 |
desc table |
2、查看表的内容
1 |
select * from table_name |
3、建立表
1 |
CREATE TABLE 表名 ( |
4、约束条件
PRIMARY KEY 标识该属性为该表的主键,可以唯一的标识对应的元组
FOREIGN KEY 标识该属性为该表的外键,是与之联系某表的主键
NOT NULL 标识该属性不能为空
UNIQUE 标识该属性的值是唯一的
AUTO_INCREMENT 标识该属性的值是自动增加,这是MySQL的SQL语句的特色
DEFAULT 为该属性设置默认值
5、修改表的操作
1 |
修改表格式:ALTER TABLE 旧表名 RENAME 新表名; |
1 |
修改字段的数据类型: |
1 |
修改字段名: |
数据库学习03 Mysql数据库数据的增删改查
数据的增删改查
增
1 |
语法:INSERT INTO 表名 VALUES(值11,值2,…); |
删
1 |
DELETE FROM 表名 [WHERE 条件表达式 |
更新
1 |
语法:UPDATE 表名 SET 字段名1=值1,[ ,字段名2=值2,…][ WHERE 条件表达式 ] |
查
1 |
select * from users; |
数据库学习04 Mysql数据库数据的查询语句
in 查询
1 |
SELECT * FROM student2 WHERE id IN (1,2,3); |
带 BETWEEN AND 关键字的查询
1 |
select * from users where id not between 1 and 10; |
带 DISTINCT 关键字的查询
1 |
select distinct username from users |
and查询
1 |
满足多个条件 |
;
or查询
1 |
满足任意一个条件 |
聚合查询
1 |
count 返回行数 |
分组查询
1 |
GROUP BY |
数据库学习05 Mysql数据库子查询
where型子查询
1 |
(把内层查询结果当作外层查询的比较条件) |
from型子查询
1 |
(把内层的查询结果供外层再次查询) |
exists型子查询
1 |
(把外层查询结果拿到内层,看内层的查询是否成立) |
联合查询(两个表的查询)
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行
SQL UNION ALL 语法
union的用法及注意事项: 两次查询的列数必须一致
1 |
select * from users union select *,1 from news; |
详解http协议
http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。
1、 支持客户/服务器模式 基于请求与响应的
2、 无连接:限制每次连接只处理一一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间
3、 无状态:指协议对事务处理没有记忆能力,缺少状态一位着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一个方面 ,在服务器不需要先前的信息时它的应答就比较快。
http请求
三个部分组成,分别是:请求行 、消息报头、请求正文
GET / HTTP/1.1 请求行
Upgrade-Insecure-Requests: 1
客户端向服务器端发送信号表示它支持 upgrade-insecure-requests 的升级机制
max-age=0表示不管response怎么设置,在重新获取资源之前,先检验ETag/Last-Modified
*GET 请求获取Request-URI所标识的资源*
*POST 在Request-URI所标识的资源后附加新的数据* 比GET方法多一个请求正文
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
http响应
常见的状态代码 状态描述 说明
200 OK // 客户端请求成功
302 Redirection //请求重定向 (A 找 B 借钱,B 通知 A 找C 借钱 , A找C 借钱) A 客户端 B、C服务器
304 //服务器端资源没有改动,通知客户端查找本地缓存
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒接提供服务
404 Not Found //客户端访问资源不存在
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
端口协议
端口的类型
TCP端口和UDP端口。由于TCP和UDP两个协议是独立的,因此各自的端口号也相互独立,比如TCP有235端口,UDP也 可以有235端口,两者并不冲突。
(1)TCP端口
TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供****可靠的数据传输****。常见的包括FTP服务的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等等。
(2)UDP端口
UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和400
常见的端口
a.服务端用的端口号
a.服务端使用的端口号
- 预留端口号
取值范围0-1023,这些端口我们编程的时候不能使用,是那些vip应用程序使用的,只有超级用户特权的应用才允许被分配一个预留端口号
- 登记端口号
取值范围1024-49151,就是我们平时编写服务器使用的端口号范围
b.客户端使用的端口号
取值范围49152-65535,这部分是客户端进程运行时动态选择的范围,又叫临时端口号
TCP协议三次握手
如何查看端口被占用?
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval]
-a 显示所有连接和侦听端口。
-b 显示在创建每个连接或侦听端口时涉及的可执行程序。
在某些情况下,已知可执行程序承载多个独立的
组件,这些情况下,显示创建连接或侦听端口时涉
及的组件序列。此情况下,可执行程序的名称
位于底部[]中,它调用的组件位于顶部,直至达
到 TCP/IP。注意,此选项可能很耗时,并且在您没有
足够权限时可能失败。
-e 显示以太网统计。此选项可以与 -s 选项结合使用。
-f 显示外部地址的完全限定域名(FQDN)。
-n 以数字形式显示地址和端口号。
-o 显示拥有的与每个连接关联的进程 ID。
-p proto 显示 proto 指定的协议的连接;proto 可以是下列任
何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s 选
项一起用来显示每个协议的统计,proto 可以是下列任
何一个: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP
或 UDPv6。
-r 显示路由表。
-s 显示每个协议的统计。默认情况下,显示
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6
的统计;-p 选项可用于指定默认的子网。
-t 显示当前连接卸载状态。
interval 重新显示选定的统计,各个显示间暂停的间隔秒数。
按 CTRL+C 停止重新显示统计。如果省略,则 netstat
将打印当前的配置信息一次。
TCP状态转移要点
TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态中,最值得注意的状态有两个:CLOSE_WAIT和TIME_WAIT。
1、LISTENING状态
FTP服务启动后首先处于侦听(LISTENING)状态。
2、ESTABLISHED状态
ESTABLISHED的意思是建立连接。表示两台机器正在通信。
3、CLOSE_WAIT
对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭
4、TIME_WAIT
我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。****处于TIME_WAIT状态的连接占用的资源不会被内核释放****,所以作为服务器,在可能的情况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。
相关推荐: 速查表:学习 Kubernetes 的基本命令 | Linux 中国
导读:开始探索 kubectl、容器、吊舱等,接着下载我们的免费的速查表,这样你就可以随时掌握关键的命令了。本文字数:2963,阅读时长大约:4分钟https://linux.cn/article-13390-1.html作者:Seth Kenlo…
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论