2018-08-23-Python全栈开发day46-mysql

1.数据库

  数据库是存储在计算机上,具有组织、共享数据的功能,数据按照一定的数学模型进行组织,也是存储数据的仓库

2.数据库管理系统软件

  oracle,mysql,db2,sql server,access

3.数据库系统

  通常由软件,数据库和数据管理员组成

4.sql规范

  是一种结构化的查询语言

5.sql语句

  sql语句不区分大小写,但是习惯上以大写来作为语干,变量小写,在sql中默认以分号;作为结束符,每个语句都必须有结束符

  在sql代码使用过程中,可以换行,但是不支持单个单词进行换行

 二、数据库操作

数据库中的数据是存在于类似于 Excel的表中的。

首先mysql中有多个数据库,数据库中有多个表。

创建数据库

  

create database s4;创建s4数据库

查看数据库

show databases;查看所有的数据库,其实一个数据库就是一个文件夹

判断数据库是否存在并创建,且设置数据库字符编码

create database if not exists s4 character set utf8;
判断s4数据库是否存在,如果存在则不创建,不存在的话创建,并且设定字符编码为utf8

修改数据库信息

alter database s4 character set gbk;
alter是对数据库使用的,
这里是设置数据库的字符编码

删除数据库

drop database if exists s4;
如果有s4数据库的话则删除s4数据库

选择数据库

use s4;

三、mysql中的数据类型

1、整型

MySQL数据类型    含义(有符号)
tinyint(m)    1个字节  范围(-128~127)
smallint(m)    2个字节  范围(-32768~32767)
mediumint(m)    3个字节  范围(-8388608~8388607)
int(m)    4个字节  范围(-2147483648~2147483647)
bigint(m)    8个字节  范围(+-9.22*10的18次方)
2、浮点型(float和double)

MySQL数据类型    含义
float(m,d)    单精度浮点型    8位精度(4字节)     m总个数,d小数位
double(m,d)    双精度浮点型    16位精度(8字节)    m总个数,d小数位
4、字符串(char,varchar,_text)

MySQL数据类型    含义
char(n)    固定长度,最多255个字符
varchar(n)    固定长度,最多65535个字符
tinytext    可变长度,最多255个字符
text    可变长度,最多65535个字符
mediumtext    可变长度,最多2的24次方-1个字符
longtext    可变长度,最多2的32次方-1个字符
6.日期时间类型

MySQL数据类型    含义
date    日期 '2008-12-2'
time    时间 '12:25:36'
datetime    日期时间 '2008-12-2 22:06:44'
timestamp    自动存储记录修改时间

四、表格table

创建表格

create  table empl(
id tinyint(2) primary key,
name varchar(20),
gender tinyint(2)
);

在数据库中创建一个表格,目前创建的都是表格的字段,也就是标题,要给标题加上属性,之后加入表格的所有数据要和标题的数据类型一样。
并且在这次中,直接创建了一个主键,主键的特点:唯一且不为空

操作表格

修改表结构

增加字段
alter table empl add marry int(1) not null;
和数据库的设置相同,对于表的创建同样是使用alter,
如果是增加标题的话是使用add,后面加上标题名称和类型,并且可以加上约束性条件,约束性条件属于可加可不加,在这里加入了不能为空条件,还可以使用unique唯一等
如果增加多个标题,则以逗号来隔开

删除字段

alter table empl drop marry;
同样是使用alter来选择表,然后使用drop方法,在删除的时候不需要加上属性,直接通过名字就可以进行删除

修改字段类型

alter table empl modify name tinyint(2) unique first;
通过modify来修改字段的类型,并且可以在此时加入约束条件,
并且还可以将这个字段放到行中的某个位置,
first就是第一个位置

修改表标题的名称

alter table empl change name names varchar(2) ;
前面放需要修改的标题名,后面放对应名字和类型,同样可以加约束条件

修改表的名字

rename table empl to emp;

五、表记录管理

数据库中添加好表,然后表中添加好标题之后,就可以对应的想表内添加数据,根据已经设置好的标题,添加记录

 

添加记录

insert into emp (id,names,gender) values(1,'ax',1);
添加一条记录
insert into emp (id,names,gender) values(6,'ax5',1),
(2,'ax1',1),
(3,'ax2',1),
(4,'ax3',0),
(5,'ax4',0);
同时插入多条记录

修改记录

update emp set names=ax4 where id =5;
选择emp表,并且set相应属性,但是如何选择这个记录呢 ?通过where来进行筛选---选择id等于5的那个记录并且进行修改

删除记录

delete from emp where id=4;
从emp表中删除id=4的那个
删除所有
delete from emp;这个是删除表内的所有记录,可以配合where
truncate table emp;将整个表删除,并且重新建一张新的空白的表

 表记录查询

select id from emp;
从emp表中显示标题为id的所有数据

处理记录

select id+10 from emp;对数据进行处理
select id as number from emp;对标题设置别名,只是在显示的时候显示,对表本身没有更改
如果设置了表明,在筛选的时候只能用having

根据特定条件过滤数据

select id  from emp where gender = 4;
从emp表单中查找gender=4的那条数据,并且只显示id,除了=号运算符,还可以使用<>等

数据排序

select id,gender  from emp order by gender;
在emp表中,根据gender的大小进行排序,默认是从小到大,并且显示id和gender的数据,并且可以加上筛选条件

对数据运算进行排序

 

sql语句执行顺序

from
where
select
group by
having
order by

表查询,聚合函数

select id sum(gender) from emp group by id;如果id出现重复的话,则作为一条显示出来,并且有sum函数,计算组内特定标题的和,因为where的优先级高于sum,所以使用where进行筛选的时候会出现错误,此时使用having
其他聚合函数
count计数
avg 计算平均值
ifnull判断
where (ifnull(django,0)+ifnull(js,0)) > 10;

对django和js的值进行判断,如果两者都不为空且大于10的话
max/min
select max(id) from emp;
选出最大或者最小的值

 

posted @ 2018-08-23 22:59  brownbearye  阅读(163)  评论(0)    收藏  举报