python自动化学习笔记之DAY11

一、MYSQL简介

1、 数据库和 SQL 概念

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它的产生距今已有六十多年。随着信息技术和市场的发展,数据库变得无处不在:它在电子商务、银行系统等众多领域都被广泛使用,且成为其系统的重要组成部分。

数据库用于记录数据,使用数据库记录数据可以表现出各种数据间的联系,也可以很方便地对所记录的数据进行增、删、改、查等操作。

结构化查询语言(Structured Query Language)简称 SQL,是上世纪 70 年代由 IBM 公司开发,用于对数据库进行操作的语言。更详细地说,SQL 是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。

 

2、MySQL 介绍

MySQL 是一个 DBMS(数据库管理系统),由瑞典 MySQLAB 公司开发,目前属于 Oracle 公司,MySQL 是最流行的关系型数据库管理系统(关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发者都选择 MySQL 作为网站数据库。MySQL 使用 SQL 语言进行操作。

 

二、MySQL简单命令

1、数据库操作:

show databases;  显示所有数据库名称

create database database_name [character set utf8];  创建一个数据库

show create database database_name;    查看数据库的创建信息

use database_name;  切换数据库

alter database db_name [character set xxx] ;  修改数据库的字符

drop database [if exists] db_name;    删除数据库

 

2、数据表操作:

创建表:

create table table_name (
filed 字段类型 [完整性约束],
filed 字段类型 [完整性约束],
filed 字段类型 [完整性约束],
);

 查看表

desc table_name; 查看表结构
show tables; 是该数据库下所有的表名
show create table table_name ; 查看数据库的表创建信息

 修改表:

alter table table_name add field type 完整性约束
alter table table_name modify field type 完整性约束
alter table table_name change field type 完整性约束
alter table table_name drop field type 完整性约束

 删除表

drop table tab_name;

 

 

3、表记录操作:

增加记录:

insert [into] tab_name (field1,field2....) values (values1,values2....) ,
(values1,values2....),
... ;

insert tab_name set field=value, field=value,..... ;


 修改记录

update tab_name set field=value where 子句


删除表记录

delete from tab_name where 子句

清空表记录

delete from tab_name
 truncate tab_name (数据量大时推荐使用)

 

 

4 查询表记录

select * from tab_name : 显示所有的记录的所有字段信息
select [distinct] filed,filed2,..... from tab_name
where 子句
group by 分组 key : 分组条件
having 子句 : 过滤
order by
limit

查询 每一个省份的平均工资
select city,avg(salary) from emp group by city;

查询 平均工资大于8000的省份的名称
select city,avg(salary) from emp group by city having avg(salary) > 8000


多表查询:

内连接查询:
select * from emp inner join dep on emp.dep_id=dep.id;

左外连接查询:
select * from emp left join dep on emp.dep_id=dep.id;

 

三、表关系

完整性约束:

主键约束:

primary key : 非空(not null )且 唯一 (unique)

外键约束(关联字段):

表关系:

表与表的关系(两张表)

一对多

将关联字段设置在多的表中

CREATE TABLE emp(
id INT PRIMARY KEY ,
name VARCHAR (20),
dep_id INT ,

FOREIGN KEY (dep_id) REFERENCES dep(id)

)


多对多

借助第三张表实现的

CREATE TABLE STUDENT2TEACHER(

id INT PRIMARY KEY auto_increment,

studnet_id INT ,
teacher_id INT ,

FOREIGN KEY (studnet_id) REFERENCES student(id),
FOREIGN KEY (teacher_id) REFERENCES teacher(id),

)


一对一

将关联字段设为Unique

CREATE TABLE author(
id INT PRIMARY KEY ,
name VARCHAR (20),
authorDetial_id INT unique,

FOREIGN KEY (dep_id) REFERENCES dep(id)

)

posted @ 2017-09-14 22:16  糖果的海角sky  阅读(83)  评论(0)    收藏  举报