内容概要:

1.数据库介绍

2.mysql数据库安装使用

3.mysql数据类型

4.mysql命令语句

5.事务

6.一对多、多对多

7.其他

一、数据库介绍

什么是数据库?

数据库(Database)就是按照数据结构来组织、存储和管理数据的仓库。由于数据保存在文件中访问速度较慢,所以一般使用数据库存储数据。

数据库的分类?

数据库分为关系数据库和非关系型数据库。关系型数据库(RDMS relationship databse management system)通过外键建立两张表之间的关系。

Mysql数据库

mysql是现在最流行的关系型数据库,他是开源的,支持大型的数据库,使用标准的SQL语句。

二、Mysql数据库安装

三、Mysql数据类型

Mysql中定义数据字段的类型对数据库的优化非常重要。

Mysql支持多种类型,大致可以分为三类:数值、字符串和日期/时间类型。

数值类型

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 字节 (-128,127) (0,255) 小整数值
SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 字节 (-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度 浮点数值
DOUBLE 8 字节 (1.797 693 134 862 315 7 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度 浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

字符串类型

类型 大小 用途
CHAR 0-255字节 定长字符串
VARCHAR 0-65535 字节 变长字符串
TINYBLOB 0-255字节 不超过 255 个字符的二进制字符串
TINYTEXT 0-255字节 短文本字符串
BLOB 0-65 535字节 二进制形式的长文本数据
TEXT 0-65 535字节 长文本数据
MEDIUMBLOB 0-16 777 215字节 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215字节 中等长度文本数据
LONGBLOB 0-4 294 967 295字节 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295字节 极大文本数据

CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。CHAR是定长,如果数据长度不够则会自动补充空格;VARCHAR只是规定了最大长度。

日期/时间类型

类型 大小 (字节) 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

四、Mysql基础语法

管理Mysql的命令:

  • use 数据库名; #进入某个数据库,之后的操作只对这个数据库生效
  • show databases; #展示所有数据库
  • show tables; #展示当前数据库的所有表
  • show columns from 表名; #显示表的属性,如主键信息、是否为NULL,默认值等
  • show index from 表名; #显示表的详细索引信息
  • create database 库名; #创建数据库
  • drop database 库名; #删除数据库

表操作命令:

Mysql创建数据表

 1 #创建表
 2 create table table_name(column name, column type)
 3
 4 #创建一张学生表
 5 create table students(
 6     'sid' INT AUTO_INCREMENT PRIMARY KEY,
 7     'name' VARCHAR(50) NOT NULL,
 8     'age' INT NOT NULL,
 9 )engine=InnorDB DEFAULT charset=utf8
10
11 #查看表信息
12 desc student;

增删改查:

 1 增 语法:
 2 INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );
 3
 4 查 语法:
 5 SELECT column_name,column_name FROM table_name [WHERE Clause] [OFFSET M ][LIMIT N]
 6
 7 改 语法:
 8 UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]
 9
10 删 语法:
11 DELETE FROM table_name [WHERE Clause] #delete from student where stu_id=5;

alter命令

alter table table_name drop column_name; #删除字段
alter table table_name add column_name type NOT NULL; #添加字段
alter table table_name change old_column_name new_column_name type;  #修改字段名和类型

alert table table_name add foreign key(column_name) references table_name(column_name);  #添加外键

alert table table_name add index column_name;  #添加索引 

alter table old_table_name rename to new_table_name; #修改表名

排序

select * from student order by age;  #默认升序
select * from student order by age asc; #升序
select * from student order by age desc;  #降序

聚合&分组  group by

五、事务

MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务.

只有使用InnorDB引擎时才支持事务,事务可以维持数据库的完整性,保证一批语句要么全部执行,要么全部不执行。

1 begin;  #开始一个事务
2 insert into students (name) values(1);
3 commit;  #如果没出错则commit提交
4 rollback;  #如果出错就回滚,这样相当于没有执行过命令

六、外键和多对多关系

创建外键关系:

1 create table classroom(
2     'cid' INT AUTO_INCREMENT PRIMARY KEY
3 );
4
5 create table student(
6     'name' VARCHAR(24) NOT NULL,
7     'class_id' INT NOT NULL,
8     foreign key(class_id) references classroom(id)
9 );

如果在创建表时没有创建外键,也可以通过alert建立联系:

1 alert table student add foreign key(class_id) references classroom(id);

删除外键:

1 alert table student drop foreign key class_id;

多对多可以通过创建第三张表,分别创建两张表的外键来实现。

七、其他

like模糊查询

select * from student where name like '%abc';  #表示查询以abc结尾的数据
select * from student where name like '_abc_';  #表示查询中间有abc的数据 

where用于分组前的条件筛选

having用于分组后的条件筛选

limit n; 表示查询前n行数据

转载于:https://www.cnblogs.com/yinwenjie/p/10847518.html

Python 10 MySQL数据库(一)相关推荐

  1. Python与MySQL数据库的交互实战

    作者 | Huang supreme 编辑 | 郭芮 图源 | 视觉中国 安装PyMySQL库 如果你想要使用python操作MySQL数据库,就必须先要安装pymysql库,这个库的安装很简单,直接 ...

  2. Python使用MySQL数据库(新)

    一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...

  3. python接口自动化测试书籍_skPython接口自动化测试 自动化测试教程书籍 用Python实现UI自动化测试 轻松入门Python语法 MySQL数据库 Python基础教程书籍...

    1 本书整体设计思想 . 1 1.1 为什么要做懂技术的测试人员 . 2 1.2 为什么选择这本书. 4 1.3 为什么选择Python 5 1.4 本书能给你带来什么 . 6 1.5 自动化代码的设 ...

  4. python 数据库 实战_干货!python与MySQL数据库的交互实战

    鼠年大吉 HAPPY 2020'S NEW YEAR 1 安装pymysql库 如果你想要使用python操作MySQL数据库,就必须先要安装pymysql库,这个 库的安装很简单,直接使用pip i ...

  5. Python——Python连接MySQL数据库

    基本概念 PyMySQL:PyMySQL是封装了MySQL驱动的Python驱动,一个能使Python连接到MySQL的库. mysql-connector-python(MySQL Connecto ...

  6. Python操作MySQL数据库的三种方法

    1. MySQLdb 的使用 (1) 什么是MySQLdb?   MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 M ...

  7. python连接MySQL数据库搭建简易博客

    实现功能大概 将python和MySQL数据库交互进行 封装 --->>utils.py 文件程序 ---->blog.py # -*- coding: utf-8 -*- # @T ...

  8. mysql中括号_干货!Python与MySQL数据库的交互实战

    作者 | Huang supreme,责编 | 郭芮 头图 | CSDN 下载自视觉中国 安装PyMySQL库如果你想要使用python操作MySQL数据库,就必须先要安装pymysql库,这个库的安 ...

  9. python操作mysql数据库(增、删、改、查)_python对 MySQL 数据库进行增删改查的脚本...

    # -*- coding: utf-8 -*- import pymysql import xlrd # import codecs #连接数据库 conn = pymysql.connect(hos ...

最新文章

  1. 朴素贝叶斯 半朴素贝叶斯_使用朴素贝叶斯和N-Gram的Twitter情绪分析
  2. 只能输入正整数 以及常用的正则表达式
  3. ASP.NET Core管道深度剖析(4):管道是如何建立起来的?
  4. 格雷码基础和生成的几种方法
  5. Strust2 Mysql数据库,sql语句分页,JSP显示
  6. (3)JavaScript 的注释
  7. java excel导入前台_java后台生成了一个表格,用流传到前台,请问怎么接收呀?在线等...
  8. 【Java编程】建立一个简单的JDBC连接-Drivers, Connection, Statement and PreparedStatement
  9. 阿里云前端周刊 - 第 37 期
  10. php mysql 会员,PHP+MYSQL会员系统的登陆即权限判断实现代码
  11. Kvaser—灵活多变的CAN总线接口方案
  12. glide 设置宽高_glide如何设置图片大小
  13. vim安装使用pathogen
  14. 写一段有趣的科普文来介绍鲫鱼
  15. 常用搜索引擎链接及参数
  16. 操作系统 第五章虚拟器存储器(自我总结式)
  17. [转清华]清华,曾经是多少莘莘学子梦想中的学府……张琳
  18. 软件体系结构的第二次实验(解释器风格与管道过滤器风格)
  19. VmWare虚拟机断电报错各种修复方案
  20. [XCTF-pwn] 8-monkey 9-warmup 20_csaw-ctf-2016-quals-aul

热门文章

  1. 让textarea完全显示文章并且不滚动、不可拖拽、不可编辑
  2. 【分享】博客美化(6)为你的博文自动添加目录
  3. Ubuntu13.04下使用dnw
  4. 关于PPP Multilink协议的配置
  5. php acl控制,用PHP怎么实现一个ACL系统?
  6. python平稳性检验_时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python)...
  7. 【python教程入门学习】机器学习使用Python编程是因为什么?
  8. Python批量下载XKCD漫画只需20行命令
  9. wind mysql日志_Windows下的Mysql日志操作
  10. mybatis mapper.xml dtd_全栈开发踩坑之路4-用MyBatis实现服务