数据库操作

库操作

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总复习的更多相关文章

  1. EF6 在原有数据库中使用 CodeFirst 总复习(三、重建迁移)

    本来原来学的时候,挺顺利的,没想到再次使用,还是遇到很多问题,导致更新失败,所以,只能重建迁移,免得看着乱乱的. 一.删除迁移,将数据恢复到(一)结束状态 1.删除文件夹 2.删除表 3.删除列 4. ...

  2. EF6 在原有数据库中使用 CodeFirst 总复习(五、生成发帖页面)

    有点与在原有数据库中使用 CodeFirst 远了,不过是总复习吗,总得全面点. 一.在用户表(Users)中插入两个用户 二.生成发帖界面 MVC生成的界面很多,也没使用Ajax,实际开发中很少会使 ...

  3. DAY25、面向对象总复习

    面向对象总复习:面向过程编程思想: 核心是 过程 二字, 过程指的是解决问题的步骤是,即先干什么再干什么. 基于该编程思想编写程序,相当于一条流水线,一种机械式的思维方式. 面向对象编程思想: 核心是 ...

  4. 11.7 NOIP总复习总结

    好像要1A模板题.完败 下面主要是一波SB错误总结 最小生成树(忘了sort(QwQ)) // It is made by XZZ // Fei Fan Ya Xi Lie~~~ #include&l ...

  5. python 学习第二周总复习

    目录 数据类型内置方法 数字类型内置方法 整型 浮点型 字符串类型内置方法 列表类型内置方法 元祖类型内置方法 字典类型内置方法 集合类型内置方法 布尔类型 数据类型总结 拷贝 浅拷贝 深拷贝 053 ...

  6. Mysql 索引复习笔记

    之前学习索引后由于一直没怎么用,所以也只是粗略看了一下,最近发现索引的用处很大,并且也很多知识点,在此做复习记录. 什么是索引? 百度百科是这样描述的: 索引是为来加速对表中数据行中的检索而创建的一种 ...

  7. mysql基础复习(SQL语句的四个分类),

                                                                                                       ( ...

  8. EF6 在原有数据库中使用 CodeFirst 总复习(一、搭建基础环境)

    本来以为已经会了,可动手时发现许多问题还是模糊不清,正所谓眼高手低.只能重新查资料,再复习一遍. vs.net2013 ef6 mvc5 sqlserver2008   一.建立数据库  Bloggi ...

  9. Java面向对象总复习-QuickHit

    1.创建玩家级别类Level.java package com.bdqn; /** * 1.玩家级别类 * @author pc * */ public class Level { /** * 级别号 ...

随机推荐

  1. 解决Windows7下virtualbox安装ubuntu出现的0x00000000指令引用0x00000000内存,该内存不能为written问题

    公司电脑只能用Windows7,不能用10,也没WSL用,最近想跑个Linux环境,因为之前装docker toolbox装了virtualbox,没道理再装vmware,遂用vbox开始折腾,没想到 ...

  2. v-bind 绑定属性

    与mustache相区别,他是对内容(content内部)进行修改的.v-bind的语法糖写法是   : v-bind 动态绑定class属性:v-bind:class="对象名" ...

  3. [CF369E]Valera and Queries_离线_树状数组

    Valera and Queries 题目链接:codeforces.com/problemset/problem/369/E 数据范围:略. 题解: 这种题,就单独考虑一次询问即可. 我们发现,包括 ...

  4. 利用Python进行数据分析_Pandas_汇总和计算描述统计

    申明:本系列文章是自己在学习<利用Python进行数据分析>这本书的过程中,为了方便后期自己巩固知识而整理. In [1]: import numpy as np In [2]: impo ...

  5. Python笔记day20-面向对象

    目录 面向对象 1 装饰器 1.1 装饰器是什么? 1.2 装饰器 2 面向对象 (Object Oriented) 简称OO 2.1 面向对象相关术语 2.2 类和对象 2.3 类和对象的实现和书写 ...

  6. 剑指offer(5)——从尾到头打印链表

    题目: 输入一个链表的头结点,从尾到头反过来打印出每个结点的值.结点定义如下: public class ListNode { int val; ListNode next = null; ListN ...

  7. 2019牛客多校四 E. triples II (容斥)

    大意: 给定$n,a$, 求$n$个$3$的倍数, $or$和为$a$的方案数. 简单容斥题 可以求出$f_{x,y}$表示所有$3$的倍数中, 奇数位不超过$x$个$1$, 偶数位不超过$y$个$1 ...

  8. ngix介绍

    ngix能做什么?  1 反向代理 2 负载均衡 3 正向代理 4 HTTP服务器(动静分离) 1 反向代理 Reverse Proxy 是指以代理服务器来接受来自internet或者是客户端的连接请 ...

  9. Manacher算法+注释

    Manacher算法是用来求一个字符串中最长回文串的算法. 考虑暴力求最长回文串的做法: 暴力枚举字符串中的所有字串判断是否回文,然后求最大值. 时间复杂度O(n^3),考虑优化. 我们从枚举所有字串 ...

  10. HTML 禁止复制文字

    因为本人平时喜欢看网络小说,但是喜欢看的文通过正经网站或者app都需要收费,让人很是不爽,所以...总之,百度网盘上资源很多.但是问题来了,这些资源肯定不会是作者自己流出的,也不应该是网站或app流出 ...