数据库mysql基础(python)

疯狂老司机 2020-05-16

E-R模型

  • 当前物理的数据库都是按照E-R模型进行设计的
  • E表示entry,实体
  • R表示relationship,关系
  • 一个实体转换为数据库中的一个表
  • 关系描述两个实体之间的对应规则,包括
    • 一对一
    • 一对多
    • 多对多
  • 关系转换为数据库表中的一个列 *在关系型数据库中一行就是一个对象

三范式

  • 经过研究和对使用中问题的总结,对于设计数据库提出了一些规范,这些规范被称为范式
  • 第一范式(1NF):列不可拆分
  • 第二范式(2NF):唯一标识(可以通过一个属性唯一的找到一个对象)
  • 第三范式(3NF):引用主键 (一般第二范式中的唯一标识就叫主键)
  • 说明:后一个范式,都是在前一个范式的基础上建立的

数据完整性

  • 一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中
  • 在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束

字段类型

  • 在mysql中包含的数据类型很多,这里主要列出来常用的几种
  • 数字:int,decimal:小数如decimal(5,2)一共包含有5位数,小数占两位
  • 字符串:char:固定长度,varchar:不固定,可变,text:很多字符串,一个文本         如char(8):如果不够8个字符,会自动在右边补空格;varchar(8):就算不够8个字符,也不会自动补,超过8个,就直接截断了或者报错
  • 日期:datetime
  • 布尔:bit:后边什么都不写就默认存一个位,bit(8):存8个二进制的位

约束

  • 主键primary key   作用:1不会重复,唯一标识 2根据主键找数据速度快
  • 非空not null
  • 惟一unique:这个值不能重复,和主键的不同是唯一标识可以建多个
  • 默认default
  • 外键foreign key

使用图形窗口连接(windows上用navicat远程连接)

点击左上角连接,,连接名Mysql57,密码自己设的,应该是开机密码,连不上的话可能是mysql没有启动,(解决:右击计算机选管理,双击服务和应用程序,双击服务,找到mysql启动即可)鼠标右键新建数据库,数据库名字随便起,字符集合选utf8,排序规则选通用general即可(在数据库上右击,选择“删除数据库”可以完成删除操作)。

表操作

选中自己的数据库,新建表(一个表就是一个实体):

点击“新建表”,弹出窗口,按提示填写信息

  • 主键的名称一般为id,设置为int型,无符号数,自动增长(表示由mysql系统负责维护这个字段的值,不需要手动维护,所以不用关心这个字段的具体值),非空
  • 数据库mysql基础(python) 数据库mysql基础(python)
  • 点击“添加栏位”,(栏位名尽量用英文)可以添加一个新的字段(新的属性
  • 字符串varchar类型需要设置长度,即最多包含多少个字符
  • 数据库mysql基础(python)
  • 点击“保存”,为表定义名称(如students)
  • 修改这个表:右键这个表名选设计表,尽量不要增加或删除表的栏位,这样的话就把表的结构改了,所以设计表时可以预留(多设)5个栏位左右
  • 向表中添加数据:表创建完了就可以添加数据了:数据库mysql基础(python)打√确认你添加的这条数据数据库mysql基础(python)点+号,再添加一条数据,删除选中要删的一行数据,delete(或右击选删除记录)这样删这条数据就真的没了,所以要用逻辑删除即在表中添加一个isDelete栏位,默认值为0,表示不删除数据库mysql基础(python)想删哪条数据isDelete写1即可数据库mysql基础(python)
  • ,将来找数据时只显示isDelete为0的数据就好啦 

命令脚本操作(无需远程,直接在Ubantu里连接即可)

ubantu16.04安装mysql步骤:https://blog.csdn.net/weixin_42209572/article/details/98983741

其他平台上安装客户端,让ubantu中的msql允许远程连接即可

1.打开终端输入命令<span>mysql -uroot -p (</span>连接数据库服务器)回车后输入密码,当前设置的密码为mysql<img src="http://image.mamicode.com/info/202005/20200516202801432690.png" title="数据库mysql基础(python)" alt="数据库mysql基础(python)">想看更多命令<img src="http://image.mamicode.com/info/202005/20200516202801508857.png" title="数据库mysql基础(python)" alt="数据库mysql基础(python)">

  • 登录成功后,输入如下命令查看效果查看版本:<span>select version();</span>显示当前时间:<span>select now();<span>注</span></span><span>意</span>:在语句结尾要使用分号;

2.退出:<span>quit或exit</span> 

3.<span>创建数据库</span>:

 先连接上<img src="http://image.mamicode.com/info/202005/20200516202801563541.png" title="数据库mysql基础(python)" alt="数据库mysql基础(python)">,显示当前所有的数据库:<img src="http://image.mamicode.com/info/202005/20200516202801668027.png" title="数据库mysql基础(python)" alt="数据库mysql基础(python)"> 查看当前用的是哪个数据库:<span>select database();</span>

 删掉名字叫做python3的数据库:<img src="http://image.mamicode.com/info/202005/20200516202801724664.png" title="数据库mysql基础(python)" alt="数据库mysql基础(python)"> 创建一个新的数据库(名字叫python3,指定字符集charset=utf8):<img src="http://image.mamicode.com/info/202005/20200516202801956094.png" title="数据库mysql基础(python)" alt="数据库mysql基础(python)"> 使用名叫python3的数据库: <img src="http://image.mamicode.com/info/202005/20200516202802136747.png" title="数据库mysql基础(python)" alt="数据库mysql基础(python)">(这条命令就是切到了python3这个数据库了),看一下这个数据库里有哪些表:<img src="http://image.mamicode.com/info/202005/20200516202802240256.png" title="数据库mysql基础(python)" alt="数据库mysql基础(python)">

  • 创建表(比如在python3这个数据库里创建一个名叫students的表):
  • create table 表名(列及类型);(注:最后要以分号结尾)
    注意:这里有个错误,default 1,没有括号
  • 分析:id int auto_increment primary key not null,第一个栏位,名字叫id,int类型,设置为auto_increment自动增长,设置成主键 ,非空

     查看表

           数据库mysql基础(python)

 修改表(表已经有数据的情况下不建议修改,可能会报错):增加栏位..数据库mysql基础(python)在students这个表中增加一个栏位:名叫isDelete。bit类型,默认值为0

  •   删除表<code><span>drop table</span> 表名; 更改表名称<span>rename table</span> 原表名 to 新表名;

 查看students这张表的数据数据库mysql基础(python)

 往表中添加数据: 

   全列插入:insert into 表名 values(...)   要和表的顺序一致:

数据库mysql基础(python)

(id是自动生成的这里写个0表示以下,然后写名字,性别,出生日期,是否逻辑删除这条数据)
   缺省插入:insert into 表名(列1,...) values(值1,...)只需要和括号里指定的字段对应即可再如
   同时插入多条数据:insert into 表名 values(...),(...)...;或insert into 表名(列1,...) values(值1,...),(值1,...)...;

      修改数据update 表名 set 列1=值1,... where 条件,对满足where条件的数据进行更改<img src="http://image.mamicode.com/info/202005/20200516202803071257.png" title="数据库mysql基础(python)" alt="数据库mysql基础(python)">(修改id=2的出生日期)

        也可以改多个字段:数据库mysql基础(python)注:不写where就是所有行都要改

    物理删除delete from 表名 where 条件 数据库mysql基础(python) 逻辑删除数据库mysql基础(python)

4.数据库备份和恢复:

备份:先退出mysql.    <span>sudo -s</span>:进入超级管理员   <span>cd /var/lib/mysql</span>:进入mysql库目录   <span>mysqldump –uroot –p 数据库名 > ~/Desktop/备份文件.sql;</span> (运行mysqldump命令)

数据库mysql基础(python)

数据库mysql基础(python)

 恢复:连接mysql,创建数据库数据库mysql基础(python)

            接着退出连接,执行mysql -uroot –p 数据库名 < ~/Desktop/备份文件.sql数据库mysql基础(python),这样新建的数据库py31中的内容就和数据库python3中的一样了

相关推荐