今日内容:

1. 代码: 简易版socketsever

2.数据库(mysql)简单介绍和分类介绍

3.mysql root修改密码

4.修改字符集编码

5.初识sql语句

1.简易版socketsever

  1. import socket
  2. from threading import Thread
  3.  
  4. class MySocket:
  5. def __init__(self,sever_addr):
  6. self.sever_addr=sever_addr
  7. self.socket=socket.socket() #可以在init方法中实例化socket对象
  8.  
  9. # 绑定ip地址和端口号,监听,
  10. #然后执行建立连接方法
  11. def serve_forever(self):
  12. self.socket.bind(self.sever_addr)
  13. self.socket.listen()
  14.  
  15. #建立连接
  16. def build_connect(self):
  17. while 1:
  18. conn,addr=self.socket.accept()
  19. t=Thread(target=self.handle,args=(conn,))
  20. t.start()
  21.  
  22. #与客户端进行沟通
  23. def handle(self,conn):
  24. while 1:
  25. from_client_msg=conn.recv(1024)
  26. print('来自客户端的消息>>>',from_client_msg.decode('utf-8'))
  27. to_sever_msg=input('服务端说:')
  28. conn.send(to_sever_msg.encode('utf-8'))
  29.  
  30. if __name__=='__main__':
  31. ip_port=('127.0.0.1',8001)
  32. sever=MySocket(ip_port)
  33. sever.serve_forever()

服务端

  1. import socket
  2.  
  3. client = socket.socket()
  4. client.connect(('127.0.0.1',8001))
  5.  
  6. while 1:
  7. to_server_msg = input('客户端说:')
  8. client.send(to_server_msg.encode('utf-8'))
  9.  
  10. from_server_msg = client.recv(1024)
  11. print('来自服务端:',from_server_msg.decode('utf-8'))

客户端

2.数据库(mysql)简单介绍和分类

  1.   数据库:(简单说数据库就是储存数据的地方)
  2.  
  3.   数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。
  4. 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
  5.   数据库管理系统 : 英语(Database Management System,简称DBMS)
  6.  
  7.   为管理数据库而设计的电脑软件系统,一般具有储存,截取,安全保障,备份等基础功能.数据库管理系统又可以分为,
  8. 关系型和非关系型
  9.  
  10. 关系型:根据所支持的计算机类型作为分类,或依据所用查询语言来作为分类,或依据性能冲量重点来做为分类,亦或其他的分类方式.

  1. 常见的关系型数据库:oracle数据库,MySQL,MariaDB数据库,SQL Server数据库,Access数据库等
  2. 非关系型:指的是非关系型数据库,而不是“No SQL”的意思,因此,NoSQL的产生并不是要彻底地否定关系型数据库,而是作为传统关系型数据库的一个有效补充。NOSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。
  3.  NOSQL非关系型数据库小结:
  4.     1NOSQL不是否定关系数据库,而是作为关系数据库的一个重要补充
  5.     2NOSQL为了高性能、高并发而生,忽略影响高性能,高并发的功能
  6.     3NOSQL典型产品memcached (纯内存),redis(持久化缓存),mongodb(文档的数据库)   

 3.mysql root修改密码

忘记密码:

cd转到mysql\bin目录。 输入mysqld --skip-grant-tables 跳过认证表来启动mysql服务端,这样再连接的时候就不需要输入密码了,直接输入一个mysql一回车就行了,然后到里面去修改密码

方法1:用mysqladmin  (因为我们将bin已经添加到环境变量了,这个mysqladmin也在bin目录下,所以可以直接使用这个mysqladmin功能,使用它来修改密码)

    关于mysqladmin的介绍:是一个执行管理操作的客户端程序。它可以用来检查服务器的配置和当前状态、创建和删除数据库、修改用户密码等等的功能,虽然mysqladmin的很多功能通过使用MySQL自带的mysql客户端可以搞定,但是有时候使用mysqladmin操作会比较简单。
    格式:mysqladmin -u用户名 -p旧密码 password 新密码 
    例子:mysqladmin -uroot -p123456 password 123

    只用mysqladmin的时候,会出现一个warning警告信息:Warning: Using a password on the command line interface can be insecure.,这个没关系,是提示你,你直接在cmd下使用明文设置密码的时候,是不安全的,因为别人可以通过翻看你输入指令的历史记录来查看到你设置的密码,所以提示你一下,不信你按上下键,可以看到自己之前输入的命令,或者输入下面这个指令也可以看到:

所以我们最好连接进入到mysql里面之后,在进行密码的修改和设置。

方法2: 用SET PASSWORD命令

  1.     首先登录MySQL,使用mysql自带的那个客户端连接上mysql
  2.     格式:mysql> set password for 用户名@localhost = password('新密码');
  3.     例子:mysql> set password for root@localhost = password('');

方法3:用UPDATE直接编辑那个自动的mysql库中的user表

  1. 首先登录MySQL,连接上mysql服务端。
    跳过密码验证 : mysqld --skip-grant-tables 跳过之后,在另开一个DOS窗口,mysql进入就行
  2. mysql> use mysql; use mysql的意思是切换到mysql这个库,这个库是所有的用户表和权限相关的表都在这个库里面,我们进入到这个库才能修改这个库里面的表。
  3. mysql> update user set password=password('') where user='root' and host='localhost'; 其中password=password('') 前面的password是变量,后面的passwordmysql提供的给密码加密用的,我们最好不要明文的存密码,对吧,其中user是一个表,存着所有的mysql用户的信息。
  4.  
  5. mysql> flush privileges; 刷新权限,让其生效,否则不生效,修改不成功。

4.修改字符集编码

在我们创建表的时候,如果我们不指定字符集编码,mysql系统或默认给我们指定一个字符集编码 latin 1,拉丁文

show create database crm\G  查看数据库的字符集编码

解决方案:

  1. 1, set names latins; 设置name的语言为latin1 ,但是这里的代码不是永久生效的
  2.  
  3. 2.在配置文件中修改客户端和服务端参数,可以实现set names latin1; 的效果,并且永久生效

如果命令输错了,可以通过\c来结束

5. 初识sql语句

sql语句主要针对的是数据库里面的三个角色进行操作, 库 表 行 ,操作包括: 增删改查.

1、库(data文件夹中的文件夹,每创建一个库,这个库的名称就是文件夹的名称,文件夹里面保存着一些这个库相关的初始信息)

  1.   增:create database db1 charset utf8; #创建一个库,可以指定字符集       
  2.  
  3.   查:show databases; #查看数据库中所有的库
  4.     show create database db1; #查看单独某个库db1的信息       
  5.  
  6.   改:alter database db1 charset latin1; #修改库的字符集,注意语句的格式(其他语句也是这么个格式),alter(修改) database(修改数据库) db1(哪个数据库) charset(字符集) latin1(改成哪个字符集)       
  7.  
  8.   删: drop database db1; #删除数据库

2、表(操作文件,表是上面库文件夹里面的文件)

  1.   先切换库:use db1 #要操作表文件,要先切换到对应的库下才能操作表
  2.  
  3.      查看当前所在的是哪个库:select database();
  4.  
  5.   增:create table t1(id int,name char(10) ); #创建表的时候,和excel一样,需要有字段啊,每个字段还需要只能一下这个字段数据的格式,这里指定的是两个字段列,id和name列,id和name是列名(字段名),id 后面的int的意思说id这一列中的数据只能是int类型的,name后面的char的意思是,name这一列中的数据只能是char类型的(char表示定长字符串类型),char里面的10是说这个字段的长度最长为10个字符,如果不指定这个长度,默认长度是1,注意是字符而不是字节,
  6.  
  7.   查:show tables #查看当前库中所有的表
  8.  
  9.     show create table t1; #查看单表的创建信息
  10.  
  11.     #还可以通过下面两句来查看表信息,以表格的形式展示结果:
  12.  
  13.     desc t1
  14.  
  15.     describe t1;#上下这两句是一样的结果
  16.  
  17.   改:alter table t1 modify name char(3); #修改字段属性的,将name字段的char长度改为3,改完之后我们在用上面的show create table t1;desc t1;describe t1;来查看一下修改结果。
  18.  
  19.     alter table t1 change name name1 char(2);
  20.  
  21.   删:drop table t1;
  22.  
  23. 3. 行(操作文件(表)中的内容/记录)(*****将来的重中之重)
  24.  
  25.   增:insert into t1 values(1,'dsb1'),(2,'dsb2'),(3,'dsb3'); #往t1表中插入三行数据,注意你插入的每行内容都要和你创建表的时候的字段个数和字段属性对应好,注意每行数据以逗号分隔。
  26.  
  27. insert后面的into可以不用写。
  28.  
  29.   查:select * from t1; #查看t1表中所有字段的数据,select 字段 from 表。
  30.  
  31.     select id,name from t1;#查看t1表中的idname列的数据,其他的不看,注意格式,每个字段逗号分隔,在cmd窗口下只是展示给我们看,将来我们通过程序获取查询数据的时候,就可以这么获取,查询字段的顺序也是可以颠倒的,name,id这样也是可以的。
  32.  
  33. 注意还有一个问题:当你写sql语句的时候,可能会出现下面这种情况,由于少写了一个引号,导致怎么也结束不了
  34.  
  35. 改:update t1 set name='sb' where id=2; #把id为2的行(记录)中的name字段的数据改为sb;id>1;id<=1;等等都可以。后面会细讲的~~~
  36.  
  37.     update t1 set name='sb',id=88 where id>2; #对两个字段进行修改
  38.  
  39.     update t1 set name='sb';#如果不指定where,那么会name字段的所有数据都改成sb
  40.  
  41.   删:delete from t1 where id=1; #删除id为1的行
  42.  
  43.   清空表:
  44.  
  45.     delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
  46.  
  47.     truncate table t1;数据量大,删除速度比上一条快,且直接从零开始,
  48.  
  49.     auto_increment 表示:自增
  50.  
  51.     primary key 表示:约束(不能重复且不能为空);加速查找

day35 数据库介绍和初识sql的更多相关文章

  1. {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句

    MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...

  2. 数据库(二):初识sql语句

    进击のpython ***** 数据库--初识sql语句 前面提到了说,数据库管理系统就像我们曾经做过的输入命令返回结果的socket通信差不多 那既然提到了命令,在MySQL中,有一些基本的语句,就 ...

  3. 数据库---初识sql语句

    初识sql语句 SQL语言主要用于存取数据.查询数据.更新数据和管理关系数据库系统,SQL语言由IBM开发.SQL语言分为3种类型: DDL语句     数据库定义语言: 数据库.表.视图.索引.存储 ...

  4. 3 MySQL数据库--初识sql语句

    1.初识sql语句 服务端软件 mysqld SQL语句:后面的分号mysql -uroot -p123 操作文件夹(库) 增 create database db1 charset utf8; 查 ...

  5. Mysql初识数据库《五》初识sql语句

    初识sql语句 有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写 mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要 ...

  6. MySQL数据库(一)-- 数据库介绍、MySQL安装、基础SQL语句

    一.数据库介绍 1.什么是数据库 数据库即存储数据的仓库 2.为什么要用数据库 (1)用文件存储是和硬盘打交道,是IO操作,所以有效率问题 (2)管理不方便 (3)一个程序不太可能仅运行在同一台电脑上 ...

  7. MySQL数据库(一)—— 数据库介绍、MySQL安装、基础SQL语句

    数据库介绍.MySQL安装.基础SQL语句 一.数据库介绍 1.什么是数据库 数据库即存储数据的仓库 2.为什么要用数据库 (1)用文件存储是和硬盘打交道,是IO操作,所以有效率问题 (2)管理不方便 ...

  8. [翻译]初识SQL Server 2005 Reporting Services Part 4

    原文:[翻译]初识SQL Server 2005 Reporting Services Part 4 这一篇是关于SQL Server 2005 Reporting Services四篇文章中最后一篇 ...

  9. [翻译]初识SQL Server 2005 Reporting Services Part 1

    原文:[翻译]初识SQL Server 2005 Reporting Services Part 1 构建和部署基本报表 如果曾经存在一项工作使得“真正的”开发者给他的上司泡蘑菇,那就是构建报表.毕竟 ...

随机推荐

  1. Codeforces 551 E - GukiZ and GukiZiana

    E - GukiZ and GukiZiana 思路:分块, 块内二分 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC ...

  2. Netty实现简易http_server

    Netty可以通过一些handler实现简单的http服务器.具体有三个类,分别是HttpServer.java.ServerHandlerInit.java.BusiHandler.java. 具体 ...

  3. C#读取text内容并且于testbox中展现 保留换行实现方法

    直接上代码 //新建一个储存的list List<string> listLines = new List<string>(); StreamReader sr = new S ...

  4. C# 获取当前服务器运行程序的根目录

    C# 获取当前服务器运行程序的根目录,获取当前运行程序物理路径 string tmpRootDir = AppDomain.CurrentDomain.BaseDirectory;//获得当前服务器程 ...

  5. 雷林鹏分享:C# 方法

    C# 方法 一个方法是把一些相关的语句组织在一起,用来执行一个任务的语句块.每一个 C# 程序至少有一个带有 Main 方法的类. 要使用一个方法,您需要: 定义方法 调用方法 C# 中定义方法 当定 ...

  6. 有序广播和标准广播 --Android开发

    一.标准广播和有序广播也很容易理解的. 标准广播: (1)通过sendBroadcast()方法发送 (2)通过异步方式发送,广播接收者的执行顺序是不明确的 有序广播: (1)通过sendOrderB ...

  7. TCP/UDP协议简要梳理

    TCP/UDP协议简要梳理 TCP TCP,Transmission Control Protocol,传输控制协议是一种面向连接的.可靠的.基于字节流的传输层通信协议.在因特网协议族中,TCP所在的 ...

  8. dijkstra优化

    1, 桶优化最短路, 时间复杂度$O(m+n)$, 空间$O(C)$, $C$为最短路长度 const int N = 1e6+10; int n, m; struct _ {int to,w;}; ...

  9. Ugly Number leetcode java

    问题描述: Write a program to check whether a given number is an ugly number. Ugly numbers are positive n ...

  10. js正则、js全选、反选、全不选、ajax批删

    <button onclick="fun1()">全选</button><button onclick="fun2()">全 ...