day35 数据库介绍和初识sql
今日内容:
1. 代码: 简易版socketsever
2.数据库(mysql)简单介绍和分类介绍
3.mysql root修改密码
4.修改字符集编码
5.初识sql语句
1.简易版socketsever
import socket
from threading import Thread class MySocket:
def __init__(self,sever_addr):
self.sever_addr=sever_addr
self.socket=socket.socket() #可以在init方法中实例化socket对象 # 绑定ip地址和端口号,监听,
#然后执行建立连接方法
def serve_forever(self):
self.socket.bind(self.sever_addr)
self.socket.listen() #建立连接
def build_connect(self):
while 1:
conn,addr=self.socket.accept()
t=Thread(target=self.handle,args=(conn,))
t.start() #与客户端进行沟通
def handle(self,conn):
while 1:
from_client_msg=conn.recv(1024)
print('来自客户端的消息>>>',from_client_msg.decode('utf-8'))
to_sever_msg=input('服务端说:')
conn.send(to_sever_msg.encode('utf-8')) if __name__=='__main__':
ip_port=('127.0.0.1',8001)
sever=MySocket(ip_port)
sever.serve_forever()
服务端
import socket client = socket.socket()
client.connect(('127.0.0.1',8001)) while 1:
to_server_msg = input('客户端说:')
client.send(to_server_msg.encode('utf-8')) from_server_msg = client.recv(1024)
print('来自服务端:',from_server_msg.decode('utf-8'))
客户端
2.数据库(mysql)简单介绍和分类
数据库:(简单说数据库就是储存数据的地方) 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。
所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理系统 : 英语(Database Management System,简称DBMS) 为管理数据库而设计的电脑软件系统,一般具有储存,截取,安全保障,备份等基础功能.数据库管理系统又可以分为,
关系型和非关系型 关系型:根据所支持的计算机类型作为分类,或依据所用查询语言来作为分类,或依据性能冲量重点来做为分类,亦或其他的分类方式.
常见的关系型数据库:oracle数据库,MySQL,MariaDB数据库,SQL Server数据库,Access数据库等
非关系型:指的是非关系型数据库,而不是“No SQL”的意思,因此,NoSQL的产生并不是要彻底地否定关系型数据库,而是作为传统关系型数据库的一个有效补充。NOSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。
NOSQL非关系型数据库小结:
1、NOSQL不是否定关系数据库,而是作为关系数据库的一个重要补充
2、NOSQL为了高性能、高并发而生,忽略影响高性能,高并发的功能
3、NOSQL典型产品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命令
首先登录MySQL,使用mysql自带的那个客户端连接上mysql。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('');
方法3:用UPDATE直接编辑那个自动的mysql库中的user表
首先登录MySQL,连接上mysql服务端。
跳过密码验证 : mysqld --skip-grant-tables 跳过之后,在另开一个DOS窗口,mysql进入就行
mysql> use mysql; use mysql的意思是切换到mysql这个库,这个库是所有的用户表和权限相关的表都在这个库里面,我们进入到这个库才能修改这个库里面的表。
mysql> update user set password=password('') where user='root' and host='localhost'; 其中password=password('') 前面的password是变量,后面的password是mysql提供的给密码加密用的,我们最好不要明文的存密码,对吧,其中user是一个表,存着所有的mysql用户的信息。 mysql> flush privileges; 刷新权限,让其生效,否则不生效,修改不成功。
4.修改字符集编码
在我们创建表的时候,如果我们不指定字符集编码,mysql系统或默认给我们指定一个字符集编码 latin 1,拉丁文
show create database crm\G 查看数据库的字符集编码
解决方案:
1, set names latins; 设置name的语言为latin1 ,但是这里的代码不是永久生效的 2.在配置文件中修改客户端和服务端参数,可以实现set names latin1; 的效果,并且永久生效
如果命令输错了,可以通过\c来结束
5. 初识sql语句
sql语句主要针对的是数据库里面的三个角色进行操作, 库 表 行 ,操作包括: 增删改查.
1、库(data文件夹中的文件夹,每创建一个库,这个库的名称就是文件夹的名称,文件夹里面保存着一些这个库相关的初始信息)
增:create database db1 charset utf8; #创建一个库,可以指定字符集 查:show databases; #查看数据库中所有的库
show create database db1; #查看单独某个库db1的信息 改:alter database db1 charset latin1; #修改库的字符集,注意语句的格式(其他语句也是这么个格式),alter(修改) database(修改数据库) db1(哪个数据库) charset(字符集) latin1(改成哪个字符集) 删: drop database db1; #删除数据库
2、表(操作文件,表是上面库文件夹里面的文件)
先切换库:use db1; #要操作表文件,要先切换到对应的库下才能操作表 查看当前所在的是哪个库:select database(); 增: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,注意是字符而不是字节, 查:show tables; #查看当前库中所有的表 show create table t1; #查看单表的创建信息 #还可以通过下面两句来查看表信息,以表格的形式展示结果: desc t1; describe t1;#上下这两句是一样的结果 改:alter table t1 modify name char(3); #修改字段属性的,将name字段的char长度改为3,改完之后我们在用上面的show create table t1;desc t1;describe t1;来查看一下修改结果。 alter table t1 change name name1 char(2); 删:drop table t1; 3. 行(操作文件(表)中的内容/记录)(*****将来的重中之重) 增:insert into t1 values(1,'dsb1'),(2,'dsb2'),(3,'dsb3'); #往t1表中插入三行数据,注意你插入的每行内容都要和你创建表的时候的字段个数和字段属性对应好,注意每行数据以逗号分隔。 insert后面的into可以不用写。 查:select * from t1; #查看t1表中所有字段的数据,select 字段 from 表。 select id,name from t1;#查看t1表中的id和name列的数据,其他的不看,注意格式,每个字段逗号分隔,在cmd窗口下只是展示给我们看,将来我们通过程序获取查询数据的时候,就可以这么获取,查询字段的顺序也是可以颠倒的,name,id这样也是可以的。 注意还有一个问题:当你写sql语句的时候,可能会出现下面这种情况,由于少写了一个引号,导致怎么也结束不了 改:update t1 set name='sb' where id=2; #把id为2的行(记录)中的name字段的数据改为sb;id>1;id<=1;等等都可以。后面会细讲的~~~ update t1 set name='sb',id=88 where id>2; #对两个字段进行修改 update t1 set name='sb';#如果不指定where,那么会name字段的所有数据都改成sb。 删:delete from t1 where id=1; #删除id为1的行 清空表: delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。 truncate table t1;数据量大,删除速度比上一条快,且直接从零开始, auto_increment 表示:自增 primary key 表示:约束(不能重复且不能为空);加速查找
day35 数据库介绍和初识sql的更多相关文章
- {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句
MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...
- 数据库(二):初识sql语句
进击のpython ***** 数据库--初识sql语句 前面提到了说,数据库管理系统就像我们曾经做过的输入命令返回结果的socket通信差不多 那既然提到了命令,在MySQL中,有一些基本的语句,就 ...
- 数据库---初识sql语句
初识sql语句 SQL语言主要用于存取数据.查询数据.更新数据和管理关系数据库系统,SQL语言由IBM开发.SQL语言分为3种类型: DDL语句 数据库定义语言: 数据库.表.视图.索引.存储 ...
- 3 MySQL数据库--初识sql语句
1.初识sql语句 服务端软件 mysqld SQL语句:后面的分号mysql -uroot -p123 操作文件夹(库) 增 create database db1 charset utf8; 查 ...
- Mysql初识数据库《五》初识sql语句
初识sql语句 有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写 mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要 ...
- MySQL数据库(一)-- 数据库介绍、MySQL安装、基础SQL语句
一.数据库介绍 1.什么是数据库 数据库即存储数据的仓库 2.为什么要用数据库 (1)用文件存储是和硬盘打交道,是IO操作,所以有效率问题 (2)管理不方便 (3)一个程序不太可能仅运行在同一台电脑上 ...
- MySQL数据库(一)—— 数据库介绍、MySQL安装、基础SQL语句
数据库介绍.MySQL安装.基础SQL语句 一.数据库介绍 1.什么是数据库 数据库即存储数据的仓库 2.为什么要用数据库 (1)用文件存储是和硬盘打交道,是IO操作,所以有效率问题 (2)管理不方便 ...
- [翻译]初识SQL Server 2005 Reporting Services Part 4
原文:[翻译]初识SQL Server 2005 Reporting Services Part 4 这一篇是关于SQL Server 2005 Reporting Services四篇文章中最后一篇 ...
- [翻译]初识SQL Server 2005 Reporting Services Part 1
原文:[翻译]初识SQL Server 2005 Reporting Services Part 1 构建和部署基本报表 如果曾经存在一项工作使得“真正的”开发者给他的上司泡蘑菇,那就是构建报表.毕竟 ...
随机推荐
- 了解java中垃圾回收机制
Java的垃圾回收机制是Java环境自带有的,它不像c语言的malloc申请空间后需要Free()函数来释放,而Java中的代码块中所申请的空间可在程序执行完成后自动释放,但是是有局限性的,代码块所占 ...
- Fiddler 简单介绍
fiddler 也已经使用了几年了,前面做免登录时就是用了fiddler,为了抓取cookie等信息.但是一直没有对他进行整理出一篇文章来介绍其使用. Fiddler的基本介绍 Fiddler的官方网 ...
- Django - Python3 配置 MySQL
在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装 具体安装使用方法,可参考 Python3 - MySQL适配器 PyMySQL Django 如何链接 MySQL 数据库, 需要在 ...
- js中use或者using方法
看Vue.use方法,想起了以前工作中别人用过的use方法. var YANMethod = { using:function() { var a = arguments, o = this, i = ...
- 关于ascii码的一些内容
1.通过C#程序输出tab(制表符)内容. 1.1常用方式我们可以是 //测试输出\t到文件 File.WriteAllText("test.txt", "a\tb\tc ...
- WPF——UI布局
1.规划整体布局(规划界面结构)——>这样就可以划分出若干区域(区域的控件通常是一些容器控件) 2.针对 上面的 “若干区域” ,制作每个区域的一级用户控件(然后,将该用户控件放入对应的区域中) ...
- Python自学:第二章 修改字符串的大小写 titile.()、upper()、lower()
title.():首字母大写 upper():全大写 lower():全小写 ada lovelace:人名,传控计算机创始人 name = "ada lovelace" prin ...
- 51Nod-1441 士兵的数字游戏
题目要求是求出a!/b!(a>=b)的结果,让其不断做除法,最多能做多少次.这个问题首先可以转化为求a!中所有质因子个数-b!中所有质因子个数.以前做过一道快速求某个阶乘对一个素数的因子个数的题 ...
- android--------自定义控件 之 基本流程篇
在我们平常的Android开发中经常和控件打交道,有时Android提供的控件未必能满足业务的需求,这个时候就需要我们实现自定义一些控件 自定义控件可以设计出很多你想要的功能和模块,在开发中是很重要的 ...
- Beautiful Paintings CodeForces - 651B (贪心)
大意: 给定序列$a$, 可以任意排序, 求最大下标i的个数, 满足$a_i<a_{i+1}$. 这个贪心挺好的, 答案就为n-所有数字出现次数最大值.