python3笔记二十四:Mysql数据库操作命令
一:学习内容
- Mysql操作命令:启动服务、停止服务、连接数据库、退出数据库、查看版本、显示当前时间、远程连接
- 数据库操作命令:创建数据库、删除数据库、切换数据库、查看当前选择的数据库
- 表操作命令:查看当前数据库中所有表、创建表、删除表、查看表结构、查看建表语句、重命名表名、修改表结构
- 数据操作命令:增加数据(全列插入、缺省插入、同时插入多条数据)、删除数据、修改数据
- 数据操作命令查:查询数据、消除重复行查询、条件查询、聚合查询、分组查询、排序查询、分页查询
- 数据关联命令:内连接、左连接、右连接
二:Mysql操作命令
- 启动服务
1.说明:以管理员身份运行cmd
2.格式:net start 服务名称
3.示例:net start mysql
4.示例:net start mysql57
- 停止服务
1.说明:以管理员身份运行cmd
2.格式:net stop 服务名称
3.示例:net stop mysql
4.示例:net stop mysql57
- 连接数据库
1.说明:可以使用管理员,也可以不使用管理员身份
2.格式:mysql -u 用户名 -p
3.示例:mysql -u root -p
输入密码(安装时设置的)
4.注意:如果连接不成功提示无权限,则可执行如下命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
- 退出数据库
1.示例:exit或quit
- 查看版本
1.说明:在连接数据库后执行
2.示例:select version();
- 显示当前时间
1.说明:在连接数据库后执行
2.示例:select now();
- 远程连接
1.说明:连接别人的数据库,非本地的
2.格式:mysql -h ip地址 -u root -p
输入对方的mysql密码
三:数据库操作命令
- 创建数据库
1.说明:执行示例后,出现OK,说明创建库成功
2.格式:create database 数据库名 charset=utf8;
3.示例:create database test charset=utf8;
- 删除数据库
1.说明:执行示例后,出现OK,说明删除库成功
2.格式:drop database 数据库名;
3.示例:drop database test;
- 切换数据库
1.说明:执行示例后,出现Database changed,说明切换库成功
2.格式:use 数据库名;
3.示例:use test;
- 查看当前选择的数据库
1.说明:执行示例后,出现当前选择的数据库名称
2.示例:select database();
四:表操作命令
- 查看当前数据库中所有表
1.说明:执行该命令必须要先在一个数据库中
2.示例:show tables;
- 创建表
1.说明:在已有的test数据库下创建表,auto_increment表明自增长,primary key表明主键,not null不为空,执行示例后,出现OK,说明创建表成功
2.格式:create table 表名(列及类型);
3.示例:
create table student(
id int auto_increment primary key,
name varchar(20) not null,
age int not null,
gender bit default(1),
address varchar(20),
isDelete bit default 0
);
- 删除表
1.说明:执行示例后,出现OK,说明删除表成功
2.格式:drop table 表名;
3.示例:drop table student;
- 查看表结构
1.说明:执行示例后,出现表字段结构
2.格式:desc 表名;
3.示例:desc student;
- 查看建表语句
1.说明:执行示例后,出现创建表的语句
2.格式:show create table 表名;
3.示例:show create table student;
- 重命名表名
1.说明:执行示例后,出现OK,说明表改名成功
2.格式:rename table 原表名 to 新表名;
3.示例:rename table car to newCar;
- 修改表结构--不建议操作
1.说明:执行示例后,出现OK,说明修改表结构成功,建议不要随意修改表结构。
2.格式:alter table 表名 add|change|drop 列名 类型;
3.示例:alter table newCar add isDelete bit default 0;
五:数据操作命令
- 增加数据-全列插入
1.说明:主键列是自动增长的,但是在全列插入时,"tom",19,1,"北京",0);
- 增加数据-缺省插入
1.说明:执行示例后,出现OK,说明插入数据成功
2.格式:insert into 表名(列1,列2,...) values(值1,值2,...);
3.示例:insert into student(name,age,address) values("lilei",19,"上海");
- 增加数据-同时插入多条数据
1.说明:执行示例后,出现OK,说明插入数据成功
2.格式:insert into 表名 values(...),(...),...;
3.示例:insert into student values(0,"test01",18,0,"北京",0),(0,"test02",22,1,"海南",0),(0,"test03",20,0,"石家庄",0);
- 删除数据
1.说明:执行示例后,出现OK,说明删除数据成功
2.格式:delete from 表名 where 条件;
3.示例:delete from student where id = 5;
4.注意:没有条件是全部删除,慎用
- 修改数据
1.说明:执行示例后,出现OK,说明修改数据成功
2.格式:update 表名 set 列1=值1.列2=值2,... where 条件;
3.示例:update student set age=16 where id = 2;
4.注意:没有条件是全部列都修改,慎用
六:数据操作命令查
- 查询数据-基本语法
1.说明:查询表中的全部数据;
from关键字后面是表名,表示数据来源于这张表;
select后面写表中的列名,如果是*表示在结果集中显示表中所有列;
在select后面的列名部分,可以使用as为列名起别名,这个别名显示在结果集中;
如果要查询多个列,之间使用逗号分隔
2.格式:select * from 表名;
3.示例:select * from student;
4.示例:select name,age from student;
5.示例:select name as n from student;
- 查询数据-消除重复行
1.说明:在select后面列的前面使用distinct可以消除重复的行
2.格式:select distinct 列名 from 表名;
3.示例:select distinct gender from student;
- 查询数据-条件查询
1.说明:查询表中的全部数据
2.格式:select * from 表名 where 条件;
3.比较运算符示例
等于:select * from student where id=1;
大于:select * from student where id>2;
小于:select * from student where id<4;
大于等于:select * from student where id>=2;
小于等于:select * from student where id<=4;
不等于:select * from student where id != 1;
不等于:select * from student where id <> 1;
4.逻辑运算符示例
and:select * from student where id>1 and gender=0;
or:select * from student where id>2 or id<6;
not:select * from student where not id=4;
5.模糊匹配示例
like:select * from student where name like 'test%';
select * from student where name like 'test_';
or:select * from student where id>2 or id<6;
not:select * from student where not id=4;
6.范围查询
in:表示在一个非连续的范围内,select * from student where id in (1,2,4);
between...and...:表示在一个非连续的范围内,select * from student where id between 2 and 4;
7.空判断
注意:null与""是不同
判断空:is null,select * from student where address is null;
判断非空:is not null,select * from student where address is not null;
8.优先级
由大到小:小括号,not,比较运算符,逻辑运算符
and比or优先级高,如果同时出现并希望先算or,需要结合括号()来使用
- 查询数据-聚合
1.说明:为了快速得到统计数据,提供了5个聚合函数
2.格式:select 聚合函数 from 表名 where 条件;
3.count(*),表示计算总行数,括号中可以写*和列名,select count(*) from student;
4.max(列),表示求此列的最大值,select max(id) from student where gender=0;
5.min(列),表示求此列的最小值,select min(id) from student where gender=0;
6.sum(列),表示求此列的和,select sum(age) from student where gender=0;
7.avg(列),表示求此列的平均值,select avg(age) from student where gender=0;
- 查询数据-分组
1.说明:按照字段分组,表示此字段相同的数据会被放到一个集合中。
分组后只能查询出相同的数据列,对于有差异的数据列无法显示在结果集中
可以对分组后的数据进行统计,做聚合运算
2.格式:select 列1,列2,聚合函数 from 表名 group by 列1,列2,列3,...;
3.示例:select gender,count(*) from student group by gender;
4.格式:select 列1,列2,聚合函数 from 表名 group by 列1,列2,列3,... having 列1,列2,...聚合函数;
5.示例:select gender,count(*) from student group by gender having gender=1;
6.where与having的区别:
where是对from后面指定的表进行筛选,属于对原始数据的筛选
having是对group by的结果进行筛选
- 查询数据-排序
1.说明:将数据按照列1进行排序,如果某些列1的值相同,则按照列2进行排序,以此类推
默认按照从小到大的顺序排序,asc升序,desc降序
2.格式:select * from 表名 order by 列1 asc|desc,列2 asc|desc,...;
3.示例:select * from student where isDelete=0 order by age desc;
4.示例:select * from student where isDelete=0 order by age asc,id desc;
- 查询数据-分页
1.说明:start索引从0开始,gender=1为男生0为女生
2.格式:select * from 表名 limit start,count;
3.示例:select * from student limit 1,3; #从第2条开始查询3条出来
3.示例:select * from student where gender=1 limit 1,3; #从第2条开始查询3条出来
七:数据关联命令
- 表关联
1.建表语句 1:n
--班级表 1
create table class(
id int auto_increment primary key,
name varchar(20) not null,
strNum int not null
);
--学生表 n
create table students(
id int auto_increment primary key,
name varchar(20) not null,
gender int default 1,
classid int not null,
foreign key(classid) references class(id)
);
2.插入数据
班级数据:insert into class values(0,"python01",55),(0,"python02",50),(0,"python03",60),(0,"python04",80);
学生数据:insert into students values(0,"tom",1,1);
insert into students values(0,"lilei",1,2);
3.查询分类
第一种:内连接:表A inner join 表B --说明:表A与表B匹配的行会出现在结果集中
示例:select students.name,class.name from class inner join students on class.id = students.classid;
第二种:左连接:表A left join 表B --说明:表A与表B匹配的行会出现在结果集中,外加表A中独有的数据,未对应的数据使用null填充
示例:select students.name,class.name from class left join students on class.id = students.classid;
第三种:右连接:表A right join 表B --说明:表A与表B匹配的行会出现在结果集中,外加表B中独有的数据,未对应的数据使用null填充
示例:select students.name,class.name from class right join students on class.id = students.classid;
4.内连接、左连接、右连接区别
右连接
python3笔记二十四:Mysql数据库操作命令的更多相关文章
- Java基础学习笔记二十四 MySQL安装图解
.MYSQL的安装 1.打开下载的mysql安装文件mysql-5.5.27-win32.zip,双击解压缩,运行“setup.exe”. 2.选择安装类型,有“Typical(默认)”.“Compl ...
- python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法
python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...
- (C/C++学习笔记) 二十四. 知识补充
二十四. 知识补充 ● 子类调用父类构造函数 ※ 为什么子类要调用父类的构造函数? 因为子类继承父类,会继承到父类中的数据,所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程. ...
- Python学习日记(三十四) Mysql数据库篇 二
外键(Foreign Key) 如果今天有一张表上面有很多职务的信息 我们可以通过使用外键的方式去将两张表产生关联 这样的好处能够节省空间,比方说你今天的职务名称很长,在一张表中就要重复的去写这个职务 ...
- Java基础学习笔记二十五 MySQL
MySQL 在dos中操作mysql 连接mysql命令: mysql -uroot -p密码 ,连接OK,会出现mysql> 对数据库的操作 创建一个库 create database 库名 ...
- Android笔记二十四.Android基于回调的事件处理机制
假设说事件监听机制是一种托付式的事件处理,那么回调机制则与之相反,对于基于回调的事件处理模型来说,事件源和事件监听器是统一的,或者说事件监听器全然消失了,当用户在GUI控件上激发某个事件时,控 ...
- python3笔记二十二:正则表达式之函数
一:学习内容 re.match函数 re.search函数 re.findall函数 二:re.match函数 需要导入包:import re 1.格式:match(pattern,string,fl ...
- JDK源码阅读-------自学笔记(二十四)(java.util.LinkedList 再探 自定义讲解)
一.实现get方法 1.一般思维实现思路 1).将对象的值放入一个中间变量中. 2).遍历索引值,将中间量的下一个元素赋值给中间量. 3).返回中间量中的元素值. 4).示意图 get(2),传入角标 ...
- 论文阅读笔记二十四:Rich feature hierarchies for accurate object detection and semantic segmentation Tech report(R-CNN CVPR2014)
论文源址:http://www.cs.berkeley.edu/~rbg/#girshick2014rcnn 摘要 在PASCAL VOC数据集上,最好的方法的思路是将低级信息与较高层次的上下文信息进 ...
随机推荐
- nginx 配置简单的静态页面
nginx 文件服务配置,MIME和 default_type https://blog.csdn.net/qq_26711103/article/details/81116900 nginx 静态页 ...
- List<int>转化为逗号链接的字符串
/// <summary> /// List<int>转化为逗号链接的字符串 /// </summary> /// <param name="lis ...
- mint-ui下拉加载(demo实例)
<template> <div class="share"> <div class="header"> <div cl ...
- VS2012中--查找定义后从未被使用的函数
操作步骤如下: 选择项目==>右键属性==>代码分析(选择Microsoft的所有规则) 注:默认为 托管建议规则 注:CA1804 CA1811规则 例如需要查看某个项目从未被使用的函数 ...
- 自学python:python学习笔记之Ubuntu 16.04网络的配置
Ubuntu 作为一个Linux的发行版,在桌面环境的易用性上做了很多改善,对推动Linux的推广做了很大的贡献.同时,它作为服务器的操作系统也越来越多的被使用.当然,服务器端可能更多的人在使用Red ...
- KMP算法查找字符串
假设长字符串为t,短字符串为p.为了进行KMP匹配,首先需要计算字符串p的next数组,后面实现了计算该数组的函数void KmpGenNext(char* p, int* next).对于”abca ...
- 22_6mybatis中的缓存
1.mybatis中的延时加载 问题:在一对多中,当我们有一个用户,它有100个账户. 在查询用户的时候,要不要把关联的账户查出来? 在查询账户的时候,要不要把关联的用户查出来? 在查询用户时,用户下 ...
- 从零开始学会GAN 0:第一部分 介绍生成式深度学习(连载中)
本书的前四章旨在介绍开始构建生成式深度学习模型所需的核心技术.在第1章中,我们将首先对生成式建模领域进行广泛的研究,并从概率的角度考虑我们试图解决的问题类型.然后,我们将探讨我们的基本概率生成模型的第 ...
- C/C++小课之数组名是什么
我们今天讨论数组名是什么东西,理解它有助于我们进一步理解和使用指针. 因为它涉及到了内存地址. 问题 数组名是什么?含义是什么? 思路 前提 一个值+1之后的变化可以反映出它的意义/含义. 前提的证明 ...
- p2456二进制方程 题解
题面描述:可以跳过 一个形如: X1X2…Xn=Y1Y2..Ym 的等式称为二进制方程. 在二进制方程的两边:Xi和Yj (1<=i<=n:1<=j<=m)是二进制数字(0.1 ...