一:学习内容

  • 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.内连接、左连接、右连接区别

内连接:
表A inner join 表B on,组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)部分

左连接:
表A left join 表B on,是left outer join的简写,它的全称是左外连接,是外连接中的一种
左(外)连接,左表(表A)的记录将会全部表示出来,而右表(表B)只会显示符合搜索条件的记录。右表(表B)记录不足的地方均为NULL

右连接

表A right join 表B on,是right outer join的简写,它的全称是右外连接,是外连接中的一种
右(外)连接,右表(表B)的记录将会全部表示出来,而左表(表A)只会显示符合搜索条件的记录。左表(表A)记录不足的地方均为NULL

python3笔记二十四:Mysql数据库操作命令的更多相关文章

  1. Java基础学习笔记二十四 MySQL安装图解

    .MYSQL的安装 1.打开下载的mysql安装文件mysql-5.5.27-win32.zip,双击解压缩,运行“setup.exe”. 2.选择安装类型,有“Typical(默认)”.“Compl ...

  2. python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法

    python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...

  3. (C/C++学习笔记) 二十四. 知识补充

    二十四. 知识补充 ● 子类调用父类构造函数 ※ 为什么子类要调用父类的构造函数? 因为子类继承父类,会继承到父类中的数据,所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程. ...

  4. Python学习日记(三十四) Mysql数据库篇 二

    外键(Foreign Key) 如果今天有一张表上面有很多职务的信息 我们可以通过使用外键的方式去将两张表产生关联 这样的好处能够节省空间,比方说你今天的职务名称很长,在一张表中就要重复的去写这个职务 ...

  5. Java基础学习笔记二十五 MySQL

    MySQL 在dos中操作mysql 连接mysql命令: mysql -uroot -p密码 ,连接OK,会出现mysql> 对数据库的操作 创建一个库 create database 库名 ...

  6. Android笔记二十四.Android基于回调的事件处理机制

        假设说事件监听机制是一种托付式的事件处理,那么回调机制则与之相反,对于基于回调的事件处理模型来说,事件源和事件监听器是统一的,或者说事件监听器全然消失了,当用户在GUI控件上激发某个事件时,控 ...

  7. python3笔记二十二:正则表达式之函数

    一:学习内容 re.match函数 re.search函数 re.findall函数 二:re.match函数 需要导入包:import re 1.格式:match(pattern,string,fl ...

  8. JDK源码阅读-------自学笔记(二十四)(java.util.LinkedList 再探 自定义讲解)

    一.实现get方法 1.一般思维实现思路 1).将对象的值放入一个中间变量中. 2).遍历索引值,将中间量的下一个元素赋值给中间量. 3).返回中间量中的元素值. 4).示意图 get(2),传入角标 ...

  9. 论文阅读笔记二十四:Rich feature hierarchies for accurate object detection and semantic segmentation Tech report(R-CNN CVPR2014)

    论文源址:http://www.cs.berkeley.edu/~rbg/#girshick2014rcnn 摘要 在PASCAL VOC数据集上,最好的方法的思路是将低级信息与较高层次的上下文信息进 ...

随机推荐

  1. O043、计算节点宕机了怎么办

    参考https://www.cnblogs.com/CloudMan6/p/5562131.html   Rebuild 可以恢复损坏的instance .那如果是宿主机坏了怎么办呢?比如硬件故障或者 ...

  2. Typora入门:全网最全教程

    目录 简介 Markdown介绍 常用快捷键 块元素 换行符 标题级别 引用文字 无序列表 有序列表 任务列表 代码块 数学表达式 插入表格 脚注 分割线 目录(TOC) 跨度元素 链接 网址 图片 ...

  3. Java ArrayList常用接口介绍及示例

    Java List 常用类型 类型 特征 ArrayList 随机访问元素快:中间插入与删除元素较慢:操作不是线程安全的 LinkedList 中间插入与删除操作代价较低,提供优化的顺序访问:随机访问 ...

  4. mysql sleep 死锁例子

    表结构 CREATE TABLE `orders` ( `order_id` int(11) NOT NULL, `order_addr` varchar(255) DEFAULT NULL ) EN ...

  5. fastadmin 相同的查询条件在不同的控制器里where条件为什么会不一样

    第一个图片在id前面加了模型名是因为第一个控制器 //当前是否为关联查询 $this->relationSearch = true;

  6. Linux下源码编译安装MySql,centeros7

    1. 安cmake工具 # yum install -y cmake 2. 创建mysql用户  #useradd -s /sbin/nologin mysql  //设置为非登陆用户(安全) 3. ...

  7. 【NOIP2012】同余方程

    原题: 求关于xx的同余方程ax≡1(mod b)的最小正整数解. 裸题 当年被这题劝退,现在老子终于学会exgcd了哈哈哈哈哈哈哈哈 ax≡1(mod b) => ax=1+by => ...

  8. unbutu apt-get update失败及解决办法

    今天在用apt-get update更新时一直失败,报的错误为”Failed to fetch 404 Not Found”,因为我的镜像改为了mirrors.aliyun.com 我试着ping了一 ...

  9. 安装tensorflow遇到:Your CPU supports instructions that this TensorFlow binary was not compiled to use

    为了提升CPU计算速度的.若你有支持cuda的GPU,则可以忽略这个问题,因为安装SSE4.1, SSE4.2, AVX, AVX2, FMA, 仅仅提升CPU的运算速度(大概有3倍). 解决方法: ...

  10. canvas制作圆形动态加载进度实例

    window.onload=function(){ var loading=document.getElementById('loading'); var context=loading.getCon ...