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)
)
浙公网安备 33010602011771号