澳门金沙vip 1

【澳门金沙vip】Mr.Li–python-mysql

一、增加(create add insert )
1,create操作库
create database 库名 新建库
create database 库名 character set 编码表

mysql数据库,是当前应用非常常见的一款关系型数据库

一、数据库的查询用法

1、 数据表记录的询问: 运算符、虑重、列运算、小名、排序、聚合函数、分组

2,create 操作表结构
新建表:
create table 表名(
id int primary key auto_increment,
name varchar(20),
………….
);
primary key 主键约束(该列独一值)
auto_increment 主键表自动增加
add 增加字段 alter table 表名 add 列名 数据类型 约束

此时此刻采取的数据库,首要分为两类

1.1数额希图

style=”font-size: 1.167rem;”>create table exam(

  id
int primary key auto_increment,

 
name varchar(20) not null,

 
chinese double,

 
math double,

 
english double

style=”font-size: 1.167rem;”>);

style=”font-size: 1.167rem;”>insert into exam
values(null,’关羽’,85,76,60);

style=”font-size: 1.167rem;”>insert into exam
values(null,’张飞’,70,75,70);

style=”font-size: 1.167rem;”>insert into exam
values(null,’赵云’,90,65,95);

style=”font-size: 1.167rem;”>insert into exam
values(null,’刘备’,97,50,50);

style=”font-size: 1.167rem;”>insert into exam
values(null,’曹操’,90,89,80);

style=”font-size: 1.167rem;”>insert into exam
values(null,’司马懿’,90,67,65);

style=”font-size: 1.167rem;”>insert into exam
values(null,’刘阿斗’);

3,insert 操作表数据内容
insert into 表名(列名1,列名2,列名3)values(值1,值2,值3)
insert into 表名 (列名) values (值)
insert into 表名 values (全列值)
insert into 表名 (列名1,列名,列名) values (值1,值2,值3),(值1,值2,值3)

1.文书档案型,如sqlite,就是四个文本,通过对文件的复制作而成功数据库的复制

1.2 数据查询

style=”font-size: 1.167rem;”>文件结构:

style=”font-size: 1.167rem;”>名字:    

style=”font-size: 1.167rem;”>语法:

█▓     查询全数音信

     
 select * from 表名

█▓    查询钦点列的新闻

       
select 列名,列名… from 表名;

█▓     条件查询

       
select * from表名 where 条件

 

█▓    运算符

        

 

 

正如运算符

>  <<=  >=  =<>

胜出、小于、大于/小于等于、不对等

between 1 and 10

体现某一区间的值:1—10里边

in(1,2,3)

展现在in列表中的值:1、2、3任意三个

Like ‘张_’

Like ‘张%’

指鹿为马查询:%表示零或随意几个字符,_意味着二个字符.

例子1:张三丰      like ‘张%’

例子2:张三        like ‘张_’

is null、is not null

是或不是为空

 

逻辑运算符

and&&

七个原则还要建设构造

or||

多少个规范化任性八个创立

not!

不成立,例如:where
not(age>18)

█▓     
 虑重

        查询排重:select distinct 列名 from 表名 where 条件;

 

█▓     
 外号以及列运算

        select 列名 as 别名, 列名 as 别名 … from 表名 where
条件;

 

█▓     order by 排序 

        select * from 表名 order by 列名 asc desc;

█▓     关于null 问题 

        通过 ifnull(values,default)解决 

 

█▓    SQL中聚合 / 集中函数

     
  集中函数:多少个数据开展览演出算,运算出几个结果。举个例子,求和,平均值,最大值,最小值。

澳门金沙vip 1

        语法:select avg(列名) from 表名;都以献身 select 后

 

█▓  █▓  █▓      group by 分组查询

            select  … from … group by 列名;

 

 

█▓  █▓  █▓ █▓  █▓  █▓ █▓  █▓  █▓ █▓  █▓ 重大计算 select
语句实施顺序
  █▓  █▓ █▓  █▓  █▓ █▓  █▓  █▓ █▓  █▓  █▓ 

 

select
…要展现的内容.. from …表名.. where 条件…. group by …分组的列 …having
…分组后的基准… order by …排序

 

select …4… from
…1.. where …2.. group by ..3…having ..5… order by …6.

 

 

二、删除(drop delete truncate)
1,操作库
drop database 数据库名

2.服务型,如mysql、postgre,数据存款和储蓄在一个物理文件中,可是必要采取终端以tcp/ip协议连接,实行数据库的读写操作

二、数据备份和回复

█▓  █▓  █▓    
 1.备份

    

语法:mysqldump -u 客户名 -p 数据库名 > 磁盘SQL文件路线

 █▓  █▓ █▓      
 2.恢复

        恢复生机措施1:

                1.创设数据库

                           
备份的时候,未有备份创设数据库的话语,当要求恢复有些具体数据的时候须求手动创造

                  2. 导入数据

                    source D://mydb.sql

          恢复生机措施2:

                1.成立数据库

                 2.语法:mysql -u 客户名 -p 导入库名 <
硬盘SQL文件相对路线

                

2,操作表结构
drop table 表名 (删除的是成套表)
alter table 表名 drop 列名 删除列
3,操作表数据
delete from 表名 where 条件
delete from 表名 (未有where条件,删的是表中颇具记录,逐行删除)
truncate table 表名 (先删除表,再次创下设表,等于删除全体表)

E-R模型

三、外键约束

 

充分外键必要小心的难点


倘使从表要去加多贰个外键约束。要求主表被引用的字段是主键大概独一的。日常使用主键。


若是要去除主表中的数据。须求在从表中这几个数据,要未有被引用,本领够去删除。


假若要向从表中去丰裕数量。要求在主表中,要有关照的多寡。才得以去充足。


假如要删除表。要先删除从表。然后去删除主表。


新建表的时候。须求先去创制主表,然后去创建从表。

 

功能:保持数据的完整性,和管事。

 

 

1.增添外键约束的语法

       
   
成立表之后加多外键

█▓  █▓        alter table 从表名称    add foreign key
(外键列的名称)references 主表名称(主键)

 

               
成立表的时候加多外键

/*创造单位表*/

create table dept(

       id int primary key auto_increment,

       name varchar(20)

);

/*创立职员和工人表*/

create table employee(

       id int primary key auto_increment,

       name varchar(20),

       age int ,

       salary double,

       dept_id int,

       foreign key (dept_id) references
dept(id)

);

 

总结:

库的操作

创建库:create database 库名 character
set 编码表;

删除库:drop database 库名;

查询库:show databases;

查看库的编码表:show create database 库名;

更改库:use 库名;

查看当前正值使用的库:select database();

修改库的编码表:alter database 库名 character
set 编码表;

 

表自己的操作

始建表:create table 表名(
列名 列的门类(长度) 
类的羁绊
,列名 列的项目(长度) 
类的约束…… );

删除表:drop table 表名;

查询表:show tables;

查看表的构造:desc 表名;

查看表的编码表:show create table 表名;

修改表:alter table 表名 增/删/改 列名 列的类型(长度)
约束;

add/drop/change/modify

修改表名:rename table 旧表名 to
新表名;

 

 

表中数据的操作

增:insert into 表名(列名)
values(值);

删:delete from 表名 where
条件;  truncate

改:update 表名 set
列名=值 ,列名=值
where 条件;

查:select 列名 as
别名 ,列名 as 别名… from
表名  where 条件 group by 列名 having 条件 order by 排序.

查询排重:select distinct 列名 from
表名 where 条件;

 

 

聚合函数:

count 计算个数、sum求和、avg 平均值、max、min

在接纳那多少个函数举办数量的总计深入分析时,不常必要对数据表中的列进行多少的分组处理。group by

 

分组
group by :

 

 

排序:order  by 列名  asc | desc;

 

 

 

 

 

 

 

 

 

<wiz_tmp_tag id=”wiz-table-range-border” contenteditable=”false”
style=”display: none;”>

 

 

 

 

源于为知笔记(Wiz)

start transaction 开启事务 试行delete删除,rollback 事务回滚可找回
start transaction 开启事务 实施truncate删除,rollback 事务回滚不可找回

最近物理的数据库都以遵照E-凯雷德模型实行统一筹算的

三、修改 (alter modify change rename
update)
1,操作库
use 库名:更改库

E表示entry,实体

2,alter 修改表的布局
modify 修改约束类型 alter table 表名 modify tel varchar(50)
change 修改列名 alter table 表名 change 旧列名 新列名 数据类型 约束
rename 修改表名 alter table 旧表名 to 新表名
alter database 数据库名称 character set 编码表

R表示relationship,关系

3,update 操作表格数据
update 表名 set 列1 = 值1, 列2 = 值2 where 条件
where 条件:
id=6
id<>6 id 不等于6
id<=6
&& || ! and、or、not
id in(1,3,4,5)
is null为空,is not null 不为空
ifnull(值1,0);若为空,设置值为0;

一个实体调换为数据库中的二个表

四、查询(select show )
1,操作库
show databases
show create database 库名: 查看库编码表
select database(); 查看正在使用的库

事关描述三个实体之间的应和法则,包罗

2,操作表结构
show tables; 查询表
desc 表名; 查看表结构
show create table 表名; 查看表的编码

1.一对一

3,操作表数据
select 列名1,列名2 from 表名 查询钦赐列的数目
select * from 表名 查询全部列的数额

2.一对多

关键字:
as:重命名
like: 模糊查询 like%、%like%、like__

3.多对多

格式:
select 列名 as 别名 ,列名 as 别名… from 表名 where 条件1 group by 列名
having 条件2 order by 排序
表明: 条件1 会先举行过滤 -> 举办分组 -> 条件2 进行过滤

涉嫌转移为数据库表中的二个列在关系型数据库中一行正是二个目的

逐一表明:select …要出示的内容.. from …表名.. where 条件…. group by
…分组的列 …having …分组后的尺码… order by …排序?
select …5… from …1.. where …2.. group by ..3…having ..4… order by
…6.

三范式

询问排重:
select distinct 列名 from 表名 where 条件

透过斟酌和对使用中难题的下结论,对于规划数据库提议了有些标准,这个标准被叫做范式

 

1.先是范式(1NF):列不可拆分

五、聚合函数:
count 计算个数、sum 求和、 avg 平均值、max、 min

2.次之范式(2NF):独一标记

分组管理:group by

3.第三范式(3NF):引用主键

排序: order by 列名 asc|desc

证实:后多个范式,都是在前三个范式的底蕴上创制的

六、多表设计
1、一对多
诸如 多少个机构有多人,一人独有多个单位
外键约束格式:
alter table 从表名称 add foreign key (外键列的称号) references
主表名称(主键)
创建表时候,间接创立主键约束
dept_id int,
foreign key (dept_id) references dept(id)
2、多对多
举个例子:二个类别被多少个程序猿写,一个工程师写多少个种类
3、一对一
比方说 一人只有一份个人档案,二个档案对应一个人

约束:

七、数据备份及回复:
1,备份
mysqldump -u 顾客名 -p 数据库名 > 磁盘SQL文件路线
mysqldump uroot -p zhangwu> G:\mybases2.sql
Enter password:123

1.主键primary key

2,恢复
办法一:成立数据库,导入数据
create database db1:
use db1;
source G://mybases2.sql

2.非空not null

艺术二:创设数据库,命令行中输入
create database db2:
脱离数据库,在dos下输入
mysql -uroot -p db2 < G://mybases2.sql
Enter password:123

3.惟一unique

八、范式:
先是范式:1NF:数据库表的每一列都以不可分割的原子数据项
第一范式每一列不可再拆分,称为原子性。

4.默认default

其次范式:2NF:第二范式就是在率先范式的基本功上存有列完全重视于主键列
其次范式的天性:
1) 一张表只描述一件业务。
2) 表中的每一列都统统依赖于主键

5.外键foreign key

其三范式:3NF:全体列不借助于于任何非主键列,约等于在满足2NF的基本功上,任何非主键列不得传递正视于主键。
所谓传递正视,指的是一旦存在”A → B →
C”的决定涉及,则C传递看重于A。由此,满意第三范式的数据库表应该空中楼阁如下信赖关系:主键列
→ 非主键列x → 非主键列y。

数据库操作

演示:学生消息表
学号 姓名 年龄 所在大学 大学地方

·创制数据库

满足第二范式,不满意第三范式
存在传递的决定涉及:
学号?所在大学 ? 高校地方

create database数据库名charset=utf8;

拆分成两张表
学号 姓名 年龄 所在高校的编号(外键)
高校编号 所在高校 大学地点

·删除数据库

三大范式小结:
范式 特点
1NF 原子性:表中每列不可再拆分。
2NF
不产生部分信赖,一张表只描述一件业务。白哦中的每一列是截然依赖于主键的。
3NF
不发出传递正视,表中每一列都间接依赖于主键。实际不是经过另外列直接注重于主键。

drop database数据库名;

·切换数据库

use数据库名;

·查看当前挑选的数据库

select database();