Mysql(Python相关) day01
目录:
- Mysql(Python相关) day01
- MySQL概述
- 什么是数据库
- 哪些公司在用数据库
- 提供数据库服务的软件
- MySQL特点
- 关系型数据库特点
- 示例
- 非关系型数据库存储
- 跨平台
- 支持多种编程语言
- 数据库软件、数据库、数据仓库
- MySQL安装
- Ubuntu安装MySQL
- Windows安装MySQL服务
- 启动和连接
- 表库基本操作
- 基本SQL命令
- 库的管理
- 表的管理
- 表记录的管理
- 如何更改库的默认字符集
- 客户端把数据存储到数据库服务器上的过程
- 数据类型
- 数值类型()
- 字符类型
- 枚举类型(字段值只能在列举的范围内选择)
- 日期时间类型
- 作业:
- MySQL概述
Mysql(Python相关) day01
MySQL概述
什么是数据库
数据库是存储数据的仓库
哪些公司在用数据库
金融机构、游戏网站、购物网站、论坛网站 … …
提供数据库服务的软件
- 软件分类
MySQL、SQL_Server、Oracle、DB2、MongoDB、Mariadb … … - 在生产环境中,如何选择使用哪个数据库软件
- 是否开源
开源软件:MySQL、MongoDB、Mariadb
商业软件:Oracle、DB2、SQL_Server - 是否跨平台
不跨平台:SQL_Server
跨平台:MySQL、MongoDB、Oracle、DB2、Mariadb - 公司的类型
商业软件:政府部门、金融机构
开源软件:游戏网站、购物网站、论坛网站 …
- 是否开源
MySQL特点
关系型数据库特点
1、数据是以行和列的形式去存储的
2、表中的每一行叫一条记录
3、表中的每一列叫一个字段
4、表和表之间的逻辑关联叫关系
示例
1. 关系型数据库存储1. 表1、学生信息表姓名 年龄 班级星矢 25 三班水冰月 26 六班2. 表2、班级信息表班级 班主任三班 大空翼六班 松人
非关系型数据库存储
{"姓名":"星矢","年龄":25,"班级":"三班"}{"姓名":"水冰月","年龄":26,"班级":"六班","班主任":"松人"}
跨平台
可以在Unix、Linux、Windows上运行数据库服务
支持多种编程语言
python、java、php …
数据库软件、数据库、数据仓库
- 数据库软件
是一种软件,可以看得见,可操作,用来实现数据库逻辑功能 - 数据库
是一种逻辑概念,用来存储数据的仓库,侧重存储 数据仓库
从数据量来说,数据仓库要比数据库庞大的多,主要用于数据挖掘和数据分析数据库:user表 验证
数据仓库:哪个时间段用户登录量最多,哪个用户一年购物最多,……
MySQL安装
Ubuntu安装MySQL
- 安装服务端
sudo apt-get install mysql-server - 安装客户端
sudo apt-get install mysql-client - Ubuntu安装软件
- sudo apt-get update
- sudo apt-get -f install
修复依赖关系
Windows安装MySQL服务
- 下载MySQL安装包
mysql-installer***5.7.*.msi - 双击、按照教程安装即可
启动和连接
- 服务端启动
1、sudo /etc/init.d/mysql start
2、sudo /etc/init.d/mysql status | stop | restart - 客户端连接
- 命令格式
mysql -h主机地址 -u用户名 -p密码
mysql -hlocalhost -uroot -p123456 - 本地登录可省略-h选项
mysql -uroot -p123456
- 命令格式
表库基本操作
基本SQL命令
- SQL命令的使用规则
- 每条命令必须以 ; 结尾
- SQL命令不区分字母大小写
- 使用 \c 终止当前命令的执行
库的管理
- 库的基本操作
- 查看已有的库
show databases; - 创建库(指定字符集)
create database 库名 [character set utf8]; - 查看创建库的语句
show create database 库名; - 查看当前所在库
select database(); - 切换库
use 库名; - 查看库中已有表
show tables; - 删除库
drop database 库名;
- 查看已有的库
- 练习
- 创建库testdb,指定字符集为utf8
create database testdb character set utf8; - 进入到库testdb
use testdb; - 查看当前所在库
select database(); - 创建库testdb2,指定字符集为latin1
create database testdb2 character set latin1; - 进入到库testdb2
use testdb2; - 查看testdb2的默认字符集
show create database testdb2; - 删除库testdb
drop database testdb; - 删除库testdb2
drop database testdb2;
- 创建库testdb,指定字符集为utf8
- 库名的命名规则
- 可以使用数字、字母、_,但是不能为纯数字
- 库名区分字母大小写
- 库名具有唯一性
- 不能使用特殊字符和mysql关键字
表的管理
- 表的基本操作
- 创建表
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型
); - 查看创建表的语句(字符集、存储引擎)
show create table 表名; - 查看表结构
desc 表名; - 删除表
drop table 表名;
- 创建表
- 练习
1、创建库python1
2、在 python1 库中创建表 pymysql并指定字符集为utf8,字段有三个:id name age 数据类型自己定义
3、查看表pymysql的默认字符集和存储引擎
4、查看表 pymysql 的表结构
5、删除表 pymysql
6、删除库 python1
7、创建库 python2
8、在库python2中创建表 t1 指定字符集utf8,字段有 id name score三个,数据类型自己定义
9、查看t1的表结构 - 注意
- 所有的数据都是以文件的形式存放在数据库目录下
- 数据库目录:/var/lib/mysql(默认安装路劲)
表记录的管理
- 在表中插入记录
- insert into 表名 values(值1),(值2),…;
- insert into 表名(字段名1,字段名2,…) values(值1),(值2),…;
- 查询表记录
1、select * from 表名 [where 条件];
2、select 字段名1,字段名2,… from 表名 [where 条件]; - 练习
- 查看所有库
- 创建一个新库 studb
- 在 studb 中创建一张表 tab1,指定字符集utf8,表中字段有 id name age score 四个
- 查看tab1的表结构
desc tab1; - 在 tab1 中随意插入2条记录
insert into tab1 values
(1,”Tom”,22,100),(2,”Lucy”,23,80); - 在 tab1 的name,age两个字段插入2条记录
insert into tab1(name,age) values
(“Bob”,30),(“Green”,33); - 查看 tab1 中的所有记录
select * from tab1; - 查看 tab1 中所有人的名字和成绩
select name,score from tab1;
如何更改库的默认字符集
- 方法
通过更改MySQL的配置文件实现 - 步骤
- 获取root权限
sudo -i - 备份mysql的配置文件
cd /etc/mysql/mysql.conf.d/
cp mysqld.cnf mysqld.cnf.bak - 修改配置文件
subl mysqld.cnf
在[mysqld]下面添加:
character_set_server = utf8 - 重启MySQL服务/重新加载配置文件(reload?????)
/etc/init.d/mysql restart | reload????? - 创建库验证默认字符集是否为utf8
- 获取root权限
客户端把数据存储到数据库服务器上的过程
- 连接到数据库服务器 mysql -h … -u … -p …
- 选择库 use 库名
- 创建表/修改表
- 断开与数据库服务器的连接 exit | quit | \q
数据类型
数值类型()
- 整型
- int 大整型(4个字节)
取值范围:0 ~ 2**32 -1(42亿多) - tinyint 微小整型(1个字节)
1、有符号(signed默认) :-128 ~ 127
2、无符号(unsigned) : 0 ~ 255 - smallint 小整型(2个字节)
4、bigint 极大整型(8个字节) 0 ~ 2**64 -1
- int 大整型(4个字节)
浮点型
- float(4个字节,最多显示7个有效位)
- 用法
字段名 float(m,n) m:总位数 n:小数位位数
float(5,2) 取值范围? -999.99 ~ 999.99 - 注意
1、浮点型插入整数时会自动补全小数位
2、小数位如果多于指定的位数,会对下一位四舍五入
- 用法
- double(8个字节,最多显示15个有效位)
decimal(最多显示28个有效位)
- 字段名 decimal(m,n)
存储空间(整数部分和小数部分分开存储)
规则:将9位数字的倍数包装成4个字节
即:对于每个部分,需要4个字节来存储9位数的每个倍数,剩余数字所需的存储空间如下表:剩余数字 字节
0 0
1-2 1
3-4 2
5-6 3
7-9 4
示例:decimal(19,9) —>9字节
整数部分:10/9=商1余1 4字节+1字节=5字节
小数部分:9/9=商1余0 4字节+0字节=4字节
- float(4个字节,最多显示7个有效位)
字符类型
- char(定长)
- 宽度取值范围:1~255
- 不给定宽度默认为1
- varchar(变长)
- 取值范围:1~65535
- char 和 varchar 的特点
- char:浪费存储空间,但是性能高
- varchar:节省存储空间,但是性能低
- text / longtext(4G) / blob / longblob(4G)
- 字符类型的宽度和数值类型的宽度的区别
- 数值类型的宽度为显示宽度,仅仅用于select查询时显示,和占用的存储空间大小无关,可用zerofill查看效果
- 字符类型的宽度超过则无法存储
- 练习
- 创建一个库studb2,在studb2库中创建表tab,字段如下:
学号:id 要求显示宽度为2,位数不够用0填充
姓名:name 变长,宽度20
年龄:age 微小整型,不能输入负数
身高:height 浮点型,小数位为2位
工资:salary 浮点型,最大为 9999 9999 . 99
create table tab(
-> id int(2) zerofill,
-> name varchar(20),
-> age tinyint unsigned,
-> height float(5,2),
-> salary decimal(10,2)
-> ); - 查看 tab 的表结构
- 在表中插入 1 条记录
- 查询所有学生的 id 、name 、height 和 salary
- 创建一个库studb2,在studb2库中创建表tab,字段如下:
枚举类型(字段值只能在列举的范围内选择)
- 单选(最多65535个不同值)
字段名 enum(值1,值2,…,值N) - 多选(最多64个不同值)
字段名 set(值1,值2,…,值N)
插入记录时 “girl,python,mysql”
日期时间类型
- year : 年 YYYY
- date : 日期 YYYYMMDD
- time : 时间 HHMMSS
- datetime
timestamp : 日期时间 YYYYMMDDHHMMSS
## 插入记录时datetime不给值默认返回NULL,而timestamp字段默认返回系统当前时间 - 示例
mysql> create table t11(
-> id int,
-> name char(15),
-> birth_year year,
-> birthday date,
-> class time,
-> meeting datetime
-> )character set utf8;
作业:
- 面试题
- MySQL中的数据类型有:_ _ _ _
- 关系型数据库的核心内容是 关系 即 二维表
- 简述客户端把数据存储到数据库服务器上的过程
- char和varchar的区别,各自的特点
- 创建一个学校的库 school
- 在库中创建一个表 students 存储学生信息,字段如下
学号(显示宽度为3,不够用0填充)、姓名、年龄(不能为负数)、手机号、成绩(浮点型)、性别(单选)、爱好(多选)、入学时间(年月日) - 查看students的表结构
- 在表中随意插入1条记录
- 在表中的 姓名、手机号、成绩 三个字段插入3条记录
- 查看所有学生的姓名、手机号和成绩
Mysql(Python相关) day01相关推荐
- 如何写一个完整的django网站:配置环境啥的不讲(python+mysql+html相关) 肆
虽然好像到现在为止只有几个人看了,但是心塞的作者还是给大家放一下网站的目录伐, 其中两个文件夹中可以忽略,存放css和js样式的,但是实践证明必须导入外部文件中的内容,额,js和css存放在图片2所示 ...
- 大厂面试 Mysql数据库相关面试题总结
1.列举常见的关系型数据库和非关系型都有那些? 关系型数据库:Oracle.DB2.Microsoft SQL Server.Microsoft Access.MySQL 非关系型数据库:NoSql. ...
- (B站动力节点老杜MySQL教程)MySQL课堂笔记-day01.txt
文章目录 文件来源/资料下载: MySQL课堂笔记-day01.txt 1.sql.DB.DBMS分别是什么,他们之间的关系? 2.什么是表? 3.学习MySQL主要还是学习通用的SQL语句,那么SQ ...
- 爬取实习吧与python相关的招聘信息及分析与数据可视化
大数据时代,计算机行业蓬勃发展,越来越多的人投身计算机事业养家糊口.所以该如何选择工作,现在社会需要怎么样的计算机人才,我们该如何对应的提升自己的本领都是尤为重要的.这篇文章就是对实习吧招聘网站有关p ...
- boost::parameter::python相关的测试程序
boost::parameter::python相关的测试程序 实现功能 C++实现代码 实现功能 boost::parameter::python相关的测试程序 C++实现代码 #include & ...
- 共享一PYTHON 相关应用领域的介绍资料
无意思 搜索到[PYTHON 相关应用领域的介绍资料]资料列表 ,感觉非常好,这里共享: http://woodpecker4org.b0.upaiyun.com/pyconcn/pycon2012c ...
- Mysql数据库(四)——mysql索引相关知识
Mysql数据库(四)--mysql索引相关知识 一.索引的概念 二.索引的优缺点 1.优点 2.缺点 三.创建索引的原则 四.索引的分类和创建方法 1.普通索引 ①.直接创建索引 ②.修改表方式创建 ...
- mysql子查询sysdate_Oracle向MySQL 迁移相关事项
Oracle向MySQL 迁移相关事项 从Oracle移植到MySQL主要有六个方面的内容需要移植,一是表Table,包括表结构和数据,二是触发器Trigger,三是存储过程Procedure,函数f ...
- python下载包管理器_Python包管理整理:setuptool管理python相关的包
setuptool管理python相关的包 一.介绍 setuptool管理python相关的包的工具.这些包是zip格式发布,但是后缀一般都是.egg setuptool能解决python包的依赖关 ...
最新文章
- java编程50实例_java编程实例大全及详解谜底(50例).doc
- react: menuService
- 关于uint8_t/uint16_t/uint32_t/uint_fast16_t
- Jsoup 抓取和数据页 认识HTTP头
- php 文字超出画布,input实现文字超出省略号(代码示例)
- leetcode-深度优先搜索
- 2017.3.22 小z的袜子 思考记录
- 鼠标悬浮标签显示提示内容
- MemCache详细介绍
- 并发编程学习之写时复制CopyOnWriteArrayList
- ARC098E Range Minimum Queries
- C# 判断字符串中文汉字
- 计算器算贝塞尔公式_我不是灯光设计师,但是我会算空间的平均照度
- 数据库连接池实现原理
- mysql联合主键及用法
- 台湾成功大学起诉苹果Siri专利侵权 库克哥凌乱了
- spy++是可以获取浏览器当前页面的标题的,并且可以根据“窗口标题”和“类名”实现对浏览器的显示和隐藏,
- 黑暗爆炸 #1059. [ZJOI2007]矩阵游戏
- su vs sudo的区别
- 2022年计算机四级考试冲刺试题及答案(多选题)