mysql总复习
数据库操作
库操作
create database 库名 charset utf8; //创建表
show databases; //查看所有库
show create database 库名; // 查看创建库的语句
select database(); //查看当前的数据库
use 库名; //使用数据库
drop database 库名; //删除库
alter database 库名 charset utf8; //更改库字符编码
表操作
// 创建表
create table t1 (
id int primary key,
name varchar(32)
) charset utf8;
// 修改表名
alter table t1 rename t11;
// 添加字段
alter table 表名 add 字段名 列类型 ;
alter table 表名 add 字段名 列类型 first;
alter table 表名 add 字段名 列类型 after 字段;
// 修改字段名
alter table 表名 change 旧字段名 新字段名 数据类型;
//修改字段属性
alter table 表名 modify 字段名 新数据类型;
// 删除字段
alter table 表名 drop 字段名;
// 删除表
drop table 表名;
// 查看所有表
show tables;
// 查看字段
desc 表名;
// 查看创建表的语句
show create table 表名
// 复制表结构
create table 表名 like 旧表名;
数据行操作
// 增加数据行
insert into 表名(列1,列2) values (值1,值2);
// 查询表的数据
select * from 表名;
// 指定列修改值
update 表名 set 列1 = 新值1,列2=新值2,where 条件;
// 根据条件删除列
delete from 表名 where 条件;
//全选删除
truncate 表名;
表关系操作
单表操作
1.// 分组 group by
将所有记录按照某个相同的字段分类
select count(1),字段名 from 表名 group by 字段名;
2.// 二次筛选 having
可以在分组的基础上进行二次筛选
select id avg(age) from 表名 group by id having avg(age)>30;
3.// 排序 order by
将所有记录按照某一字段(id)进行排序 desc降序,asc升序
select * from 表名 order by id;
select * from 表名 order by id desc ; //降序
select * from 表名 order by id desc,age asc;//id降序 age升序
4.//限制,分页 limit
可以限制取数据的行数 limit m,s; // m代表第一行索引(0开始),s取几行
select * from 表名 limit 5; //取5行数据
select * from 表名 limit 1,5; //从第二行取5条数据
外键创建
constraint 外键名 foreign key (想要约束的字段) references 引用表(字段);
约束 外键名 外键 参考 参考的表中字段
constraint 外键名 foreign key (外键) references 引用表(字段)
constraint 外键名 foreign key (外键的约束) references 引用表(字段)
多表联查
left join on
select * from 表a left join 表b on 表a.字段= 表b.字段;
right join on
select * from 表a right join 表b on 表a.字段 = 表b.字段
inner join on
select * from 表a inner join 表b on 表a.字段 = 表b.字段
pymysql模块
安装模块 pip install pymysql
1.导入模块
import mysql
2.连接数据库参数
conn = pymysql.connect(host='localhost',user='root',password='',database='test',charset='utf8')
3.设置游标(返回的是字典类型)
cursor = conn.cursor(cursor = pymysql.cursor.DictCursor)
4.执行sql语句
sql = 'select * from userinfo'
cursor.execute(sql) // 执行一个
cursor.executemany() // 执行多个
5.获取数据
res = cursor.fetchall() // 取出所有
res = cursor.fetchone() // 取出一个
res = cursor.fetchmany(size) // 取出size个数据
6.关闭游标与连接
conn.close()
cursor.close()
索引
主键索引
primary key //主键索引
加速查找 + 不能重复 + 不能为空
// 增加主键索引
1.// 创建表时
create table t1(id int primary key)charset utf8;
2.// 添加
alter table 表名 add primary key(字段名);
alter table 表名 change 旧字段 新字段 列类型 primary key;
alter table 表名 modify 字段名 新类型 primary key;
// 删除主键索引
alter table 表名 drop primary key;
唯一索引
unique()
加速查找 + 不能重复
// 增加唯一索引
1.创建表时设置
create table 表名( id int , unique 索引名(id) );
2.添加
alter table 表名 add unique index 索引名(字段名);
create unique index 索引名 on 表名 (字段名)
//删除唯一索引
alter table 表名 drop index 索引名;
普通索引
index()
加速查找
// 增加普通索引
1.//创建时添加
create table 表名(id int ,index 索引名(id))
2.//添加
alter table 表名 add index 索引名(字段名);
create index 索引名 on 表名(字段名);
// 删除普通索引
alter table 表名 drop index 索引名;
mysql总复习的更多相关文章
- EF6 在原有数据库中使用 CodeFirst 总复习(三、重建迁移)
本来原来学的时候,挺顺利的,没想到再次使用,还是遇到很多问题,导致更新失败,所以,只能重建迁移,免得看着乱乱的. 一.删除迁移,将数据恢复到(一)结束状态 1.删除文件夹 2.删除表 3.删除列 4. ...
- EF6 在原有数据库中使用 CodeFirst 总复习(五、生成发帖页面)
有点与在原有数据库中使用 CodeFirst 远了,不过是总复习吗,总得全面点. 一.在用户表(Users)中插入两个用户 二.生成发帖界面 MVC生成的界面很多,也没使用Ajax,实际开发中很少会使 ...
- DAY25、面向对象总复习
面向对象总复习:面向过程编程思想: 核心是 过程 二字, 过程指的是解决问题的步骤是,即先干什么再干什么. 基于该编程思想编写程序,相当于一条流水线,一种机械式的思维方式. 面向对象编程思想: 核心是 ...
- 11.7 NOIP总复习总结
好像要1A模板题.完败 下面主要是一波SB错误总结 最小生成树(忘了sort(QwQ)) // It is made by XZZ // Fei Fan Ya Xi Lie~~~ #include&l ...
- python 学习第二周总复习
目录 数据类型内置方法 数字类型内置方法 整型 浮点型 字符串类型内置方法 列表类型内置方法 元祖类型内置方法 字典类型内置方法 集合类型内置方法 布尔类型 数据类型总结 拷贝 浅拷贝 深拷贝 053 ...
- Mysql 索引复习笔记
之前学习索引后由于一直没怎么用,所以也只是粗略看了一下,最近发现索引的用处很大,并且也很多知识点,在此做复习记录. 什么是索引? 百度百科是这样描述的: 索引是为来加速对表中数据行中的检索而创建的一种 ...
- mysql基础复习(SQL语句的四个分类),
( ...
- EF6 在原有数据库中使用 CodeFirst 总复习(一、搭建基础环境)
本来以为已经会了,可动手时发现许多问题还是模糊不清,正所谓眼高手低.只能重新查资料,再复习一遍. vs.net2013 ef6 mvc5 sqlserver2008 一.建立数据库 Bloggi ...
- Java面向对象总复习-QuickHit
1.创建玩家级别类Level.java package com.bdqn; /** * 1.玩家级别类 * @author pc * */ public class Level { /** * 级别号 ...
随机推荐
- MyBatis框架总结
一. MyBatis简介 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索.MyBati ...
- Chocolate Eating【二分】
题目链接:https://ac.nowcoder.com/acm/contest/1577/K 题目大意: 给出n块巧克力,m天吃完.每块巧克力有a[i]快乐值,每天可以选择吃任意块或者不吃巧克力(按 ...
- [转帖]分享Oracle的四道经典面试题,值得收藏
分享Oracle的四道经典面试题,值得收藏 原创 波波说运维 2019-07-20 00:02:00 https://www.toutiao.com/i6713901660919300621/ 概述 ...
- [转帖]PostgreSQL 昨天,今天和明天
PostgreSQL 昨天,今天和明天 http://www.postgres.cn/v2/news/viewone/1/52 原作者:何伟平(laser) 创作时间:2005-01-15 11:44 ...
- SecureCRT SSH 失败 Key exchange failed 解决方法
背景:SecureCRT 的SSH正常使用过程中,突然出现: Key exchange failed. No compatible hostkey.The server supports these ...
- 调整统计信息JOB采样时间
一.需求说明 Oracle数据库中存在定时JOB,自动执行收集统计信息的程序.但是对于7*24小时系统来说,Oracle配置的定时收集时间不太合理,需要人为调整.本篇博客就是基于这种需求,调整JOB采 ...
- 不遮挡人物弹幕是怎么实现的——图片蒙版效果-webkit-mask
这是一个实验中的功能,用于设置元素上遮罩层的图像. 一.Values none:默认值,透明的黑色图像层,也就是没有遮罩层. <mask-source>:<mask>或CSS图 ...
- 查找-------(HashCode)哈希表的原理
这段时间 在 准备软件设计师考试 目的是想复习一下 自己以前没怎么学的知识 在这个过程中 有了很大的收获 对以前不太懂得东西 在复习的过程中 有了很大程度的提高 比如在复习 程序 ...
- CCF 201803-1 跳一跳
题目: 问题描述 近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱. 简化后的跳一跳规则如下:玩家每次从当前方块跳到下一个方块,如果没有跳到下一个方块上则游戏结束. 如果跳到了方块上,但没有跳到方块 ...
- Linux Jetbrains Datagrip 图标找不到
问题 系统版本:Ubuntu 18.04,Datagrip版本:2019.2 从官网下载的 tar.gz 解压之后,找到 datagrip.sh 就可以使用了.但是有个问题,它没有自动创建快捷方式,所 ...