邢台路桥建设总公司网站,四川建筑信息数据共享平台,做视频剪辑接私活的网站,电商品牌网站开发运营1.关系型数据库
关系型数据库是一种基于关系模型的数据库系统#xff0c;将数据组织成表格的形式#xff0c;表格由行和列组成#xff0c;每行代表一个记录#xff0c;每列代表一个属性。它使用结构化查询语言SQL进行数据管理和操作。
特点#xff1a;1.数据的组织…1.关系型数据库
关系型数据库是一种基于关系模型的数据库系统将数据组织成表格的形式表格由行和列组成每行代表一个记录每列代表一个属性。它使用结构化查询语言SQL进行数据管理和操作。
特点1.数据的组织数据以表格的形式进行组织每个表格具有固定的列和数据类型。 2.数据的关联通过定义主键和外键来建立不同表格之间的关联关系实现数据的一致性和完整性。 3.数据的一致性关系型数据库支持事务处理可以确保数据的一致性和可靠性。 4.数据的查询使用SQL语言进行数据的查询、插入、更新和删除具有较高的灵活性。 5.数据的安全性关系型数据库提供了权限控制和数据加密等功能保障数据的安全性。
常见的关系型数据库MySQL、Oracle、Microsoft SQL Sever、PostagreSQL等。
2.数据库相关SQL语句
显示所有的数据库show databases;查看当前使用的数据库select database();使用一个数据库use 数据库名;创建一个数据库create database 数据库名;删除一个数据库drop database 数据库名;
3.表相关SQL语句
查看当前所有的表show tables;查看表信息desc 表名;创建一个表create table 表名(列名 类型 约束信息);添加列alter table 表名 add 列名 类型 约束信息;修改列的信息alter table 表名 change 原始列名 新列名 类型 约束信息;删除表drop table 表名;删除列alter table 表名 drop 列名修改表名rename table 原始表名 to 新表名;
4.数据相关SQL语句
查询表的数据select * from 表名;插入数据 全部插入insert into 表名 values(); insert into 表名 values(),(),()...; 缺省插入insert into 表名(列1列2) values(),(),()...; insert into 表名 set 列1值1列2值2....; 修改数据update 表名 set 列值,... where 条件;删除数据deLete from 表名 where 条件;
5.Mysql列的约束
主键约束primary key非空not null自增长auto_increment唯一约束unique外键foreign key
6.Mysql的数据类型
整数类型tinyint1个字节smallint2个字节int4个字节bigint8个字节浮点数float单精度浮点数double双精度浮点数decimal高精度浮点数字符串char 固定长度的字符串最大长度为255个字符。varchar可变长度字符串最大长度为65535个字符。blob 用于存储二进制数据的类型包括TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。日期时间date日期格式为YYYY-MM-DDtime时间格式为HH:MM:SSdatetime日期时间格式为YYYY-MM-DD HH:MM:SStimestamp时间戳自动记录插入或更新的时间。枚举enum
7.外键
外键是用于连接表与表之间关联关系的一种约束
创建create table 表名(列...... constraint 外键名 foreign key(列名) references 主表(主键) on update cascade on delete cascade);添加alter table 表名 add constraint 外键名 foreign key(列名) references 主表(主键) on update cascade on delete cascade;删除alter table 表名 drop foreign key 外键名;
8.查询
别名别名是为了方便多表查询时区分不同表的相同列名 格式select 列名 as 别名,列名 as 别名 from 表名; 例子select student.name as 学生名,teacher.name as 教师名 from student inner join teacher on student.t_idteacher.id;
查询指定列select 列1列2 from 表名;
条件查询select * from 表名 where 条件;
where后的条件
比较运算符、!/ select name,age from student where id5;多个条件and并且or或者 select name,age from student where age20 and id5; select name,age from student where age20 or id5; 成员in其中一个 not in不在其中 in 类似or,满足在其中就显示出来:select name,age from student where id in (1,2,3); select name,age from student where id not in (1,2,3); 模糊查询like _ 一个下划线代表一个字符 select * from 表名 where 列名 like 黄_; % 代表多个字符查找名字中带有星的select * from 表名 where name like %星% 判空is null是空 is not null不是空 空字符串不是空 查询地址为空的内容 select * from teacher where address is null; 查询地址不为空的内容 select * from teacher where address is not null; 嵌套查询一个查询结果作为另外一个查询的条件
内连接 取两边都有的 inner join on 条件 如select student.name as 学生名,teacher.name as 教师名 from student inner join teacher on student.t_idteacher.id; 左外连接 内连接结果左表内容(右侧补Null) 以左表的内容为主左表内容全部写上右表没有结果则补Null select student.name,teacher.name from student left join teacher on student.id*3teacher.id;右外连接 内连接结果右表内容左侧补Null 以右边的表的内容为主,右表内容全部写上左表没有结果则补Null select student.name,teacher.name from student right join teacher on student.id*3teacher.id;全连接左外连接 union 右外连接select student.name,teacher.name from student left join teacher on student.id*3teacher.id union select student.name,teacher.name from student right join teacher on student.id*3teacher.id;
9.函数
系统函数
database()查看当前数据库user()当前用户version()当前数据库版本current_date当期日期current_time当前时间current_timestamp当前日期时间
聚合函数
max(列名)最大值min(列名)最小值avg(列名)平均值sum(列名)求和count(列名)统计行数
10.常用技术
排序order by 排序方式desc降序asc升序。默认是升序 例子 select * from teacher order by age desc;
分页分页是为了将数据量大的表分开方便查看 limit n显示前n行 limit n,m从索引n开始显示m个。第page页每页显示个数为sizelimit (page-1)*size,size;
分组将查询到的结果进行分组方便统计结果 如统计男女数量 select count(*),sex from teacher group by sex order by sex;
去重distinct,去除重复的行如去除重复的名字
11.用户
查看当前用户select user();创建用户create user 用户名% identified by 密码;用户授权grant 权限 on 数据库名 to 用户名%;刷新权限flush privileges;删除用户drop user ‘用户名%;
12.视图
视图是一个虚拟表但是操作视图等同于操作真实表
作用简化复杂的查询操作
使用可以直接将教师对应的学生放在一个视图中直接查看视图就可以查看对应关系不需要使用嵌套查询简化了查询操作。
13.函数与存储过程
函数接受参数并且有返回值。格式select 函数名(参数)
可以将常用的计算操作封装成一个函数如常用的求和、求均值、最大值、最小值、统计行数等都封装成了函数随时可以调用。
存储过程是一套SQL操作没有返回值。将一套复杂的查询语句放入存储过程使用时直接调用简化程序代码。格式call 过程名(参数)
14.索引
索引是一种优化查询技术
索引类型主键索引主键自带的 唯一索引unique唯一约束 普通索引适用于任何字段
索引方法BTREE适用于大数据量查询适合范围比较 HASH适用于小数据量适合精确的等值比较
使用适用于表查询频率高几乎不修改数据的表
15.事务
事务是一组SQL操作这些操作要么全部执行成功要么全部失败回滚。、
开启事务start transaction
提交commit
作用保证数据的安全性。
事务的acid特性
1.原子性事务不可再分要么全部成功要么全部失败回滚不会出现部分操作成功部分操作失败的情况。
2.一致性执行前和执行后的数据保持一致。
3.隔离性事务之间互不影响。
4.永久性事务一旦提交成功对数据库的修改是永久的。
16.存储引擎
存储引擎是数据存储的实现方式
常用的存储引擎
InnoDBmysql默认的存储引擎。特点支持事务支持外键支持行级别锁定、阻塞综合能力强适用于大多数场景。
MyISAM查询、排序速度快但是不支持外键。
Memory读写速度最快但是不能持久化数据不能在本地保存。数据库连接断开数据就会消失。
CSV适合使用逗号分隔的文件适合导入导出。
17.数据备份与恢复
数据备份将数据库信息转储为SQL文件
恢复当数据丢失时可以将备份好的SQL文件运行将数据库恢复到原来的状态。
18.Mysql与python基础交互
导入模块pymsqlimport pymsql
构建连接pymysql.connect()
创建游标实例cursor() 游标使用
Fetchone获取一行fetchall获取所有fetchmany获取多行size参数设置获取的大小scroll游标偏移execute执行一个sql语句executemany一次执行多个sql语句