Python学习日志0310 MySQL数据库定义、概念总结

一、MySQL数据库

MySQL是一个小型关系型数据库管理系统

1.特征:①性能快捷、优化SQL语言 ②容易使用 ③多线程和可靠性 ④多用户支持 ⑤可移植性和开放源代码 ⑥遵循国际标准和国际化支持 ⑦为多种编程语言提供API

2.优点:快捷、可靠 开源、免费、与PHP组成经典的LAMP组合

3.缺点:①不能直接处理XML数据 ②一些功能上支持的不够完善和成熟 ③不能提供任何OLAP(实时分析系统)功能

4.MySQL常用命令:选定默认数据库:use dbname;

                                 显示所有数据库:show databases;

                                 显示默认数据库中所有表:show tables;

                                 放弃正在输入的命令:\c

                                 显示命令清单:\h 退出mysql程序:\q

                                 查看MySQL服务器状态信息:\s

mysqladmin命令:完成许多系统管理任务,如创建或删除一个数据库、修改密码等

-- 1.建数据库
mysqladmin –u root –p create newdb
-- 2.删除数据库
mysqladmin –u root –p drop newdb
-- 3.更改密码
mysqladmin –u root –p password “newpasswd”

-- 注:u:登录MySQL的用户名  p:登录MySQL的密码

mysqldump命令:用于为数据库创建备份

                             mysqldump –u root –p tmpdb > backuptmp.sql 注:备份出来的是一个文本文件,默认为utf-8字符集,如果想使用另外一种字符集,必须使用  --default-character-set=gbk选项来设置 

 

二、数据库基础知识

1.数据库定义:由数据构成的有序集合,将数据分类并存放于不同的数据表中,数据表之间可以有交叉联系,所以数据库也成为关系型数据库。

2.数据完整性

数据完整性定义:保证输入的数据是完全正确的,能用数据反应实际的真实情况。为确保数据的完整性,需在创建表时为数据表建立约束,也可后期修改约束。

  ①数据实体完整性

  目的:防止准备输入的数据与数据表中的某条数据重复

  约束方法:唯一约束、主键约束、标识列

  ②字段完整性

  目的:防止准备输入的数据中,某个数据为空、该数据的类型或长度与该数据所在的列不匹配

  约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束

  ③引用完整性

  目的:在有引用关系的两张数据表中,维护不同数据表之间数据的一致性

  约束方法:外键约束

 

三、SQL语言

1.语法组成

①DML( Data Manipulation Language数据操作语言)

    作用:查询、插入、删除和修改数据库中的数据

    语句:SELECT、INSERT、DELETE 、UPDATE 等

②DCL( Data Control Language数据控制语言)

    作用:用来控制存取许可、存取权限等

    语句:GRANT、REVOKE 等

③DDL( Data Definition Language数据定义语言)

    作用:用来建立数据库、数据库对象和定义其列

    语句:CREATE TABLE 、DROP TABLE、ALTER TABLE 等

2.SQL语言注意事项

①SQL语言需用英文分号“;”结尾,否则认为语句未输入完成

②箭头(->)代表SQL语句没有输入完

③windows中SQL语句不区分大小写

④SQL语句中不限制空格,但在使用函数时,函数与括号之间不能有空格

 

三、MySQL数据类型

1.数值型:分为整型和浮点型

①整型:可由十进制或十六进制组成

    十六进制表示方法:0x后面加1~9或A~F的任意数字或字母,但0x中的x不能大写

②浮点型:由两个数字和一个小数点组成,两个数字不能同时为空

2.字符串:由单引号或双引号括起来的字母或数字

3.日期和时间值:存储“年-月-日”或“时:分:秒”

  例:“2005 -1-1”    “12:00:00”

4.数值列类型

①列类型:通过设置列类型来描述这一列可以包含什么类型的数据

②数值列类型包括整型和浮点型:

Python学习日志0310 MySQL数据库定义、概念总结_第1张图片

Python学习日志0310 MySQL数据库定义、概念总结_第2张图片

例:INT(3)代表定义一个三个字节的INT列,如果没有明确该数值列的长度,则默认为该类型的最大长度

③对于每种浮点型,可指定一个最大的显示尺寸M和小数位数D

④数值列的完整性约束:设置“自动标识列”,这样的列数据表中仅能有一个,并且此列应该设置为not null,并定义为PRIMARY KEY 或者UNIQUE键

⑤NULL和NOT  NULL:建立数值列时默认为null,即如果没有在此列中插入数据,则默认插入null;如果设置not null,则输入的数据不能为空。

⑥DEFAULT:可以在此属性后添加一个数值(缺省值),如果没有在此列中插入数据,则默认将缺省值插入该列。

5.字符串列类型

Python学习日志0310 MySQL数据库定义、概念总结_第3张图片

Python学习日志0310 MySQL数据库定义、概念总结_第4张图片

注:对于可变长度的字符串列类型,长度取决于实际存放数据的长度,此长度在表中用L表示。附加若干额外字节,用来记录字符串长度,也就是说总长度等于L+n(n=1、2、3、4、8)

①CHAR和VARCHAR类型:两者的存储长度都为0~255,区别在于MySQL的存储方式:

   CHAR类型:存储大小固定位255,如果存储字符串较短则用空格填充

   VARCHAR类型:存储大小为字符串固定大小,不会用空格填充

②BLOB和TEXT类型:BLOB和TEXT是存储二进制的最佳选择,但BLOB按照二进制编码顺序(区分大小写),TEXT按照字符文本编码顺序(不区分大小写)

6.日期和时间列类型

Python学习日志0310 MySQL数据库定义、概念总结_第5张图片

Python学习日志0310 MySQL数据库定义、概念总结_第6张图片

注:①时间和日期值都有一个零值,当输入非法数据时用零值替代

       ②DATE代表日期,格式为“年-月-日”,TIME代表时间,格式为“时:分:秒”,DATETIME是日期和时间的结合,格式为“年-月-日 时:分:秒”

 总结:常用数据类型:

Python学习日志0310 MySQL数据库定义、概念总结_第7张图片

 

 

你可能感兴趣的:(Python学习日志0310 MySQL数据库定义、概念总结)