mysql让相同的挨着_MySQL拓展2

1、多表联合查询

查询没有被购买过的商品

select goods.name from goods left join user on goods.gid=user.gid where user.id is NULL;

查询哪类商品是销量冠军

select category, count(*) as c from user join goods on user.gid=goods.gid group by category order by c desc limit 1;

查询哪个商品是销量冠军

select goods.name, goods.price, count(*) as c from user join goods on user.gid=goods.gid group by goods.name order by c desc limit 1;

分组只能写分组字段和统计字段,写其它字段报错

进入mysql执行如下指令

SET @@GLOBAL.sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";

清空表

truncate table 表名 清空表,id会从1开始

delete from table 清空表,id从上次记录的值开始

创建用户

mysql -h ip地址 -u用户名 -p

create user 'test'@'ip' identified by '密码'

2、索引

索引是什么?索引就是个东西,类似是目录的东西

数据库在查询的时候,是一条一条挨着查呢。查询效率太低了。

如何提高查询效率?索引

如果在查询的时候,经常通过某个字段查询,那就要考虑给这个字段添加索引。

索引的缺点:在插入的时候效率就比较低

索引有

普通索引

唯一索引 要确保唯一性

主键索引 是特殊的唯一索引,但是不能为空

全文索引

3、数据库导入导出

数据库里面的表可以导出来,导出来一般都是sql脚本的东西, data.sql

【注】版本,通过指令导出和通过不同的可视化工具导出,格式也不一样。

mysql自带的指令:

正常终端模式下

导出:mysqldump -uroot -p 数据库名>c:\data.sql

导入:mysql -uroot -p 数据库名

注意,导入之前首先创建一个新的数据库

Navicat导出和导入:

右键==》转储sql文件

右键==》运行sql文件

4、python操作数据库

需要使用到第三方库:pymysql,在python交互界面输入 import pymysql 看有没有报错,报错了就是没有它,没报错就是有它

安装之:pip install pymysql

代码操作之

port只能是整型

5、redis安装和学习

什么是redis?是一个基于内存的数据库,计算机里面,有内存,有硬盘

文件都在硬盘中存放,代码在运行的时候,有一个变量a

内存:读写快,但是断电消失,不大

硬盘:读写慢,但是可以持久化保存,大,随便存

什么是NoSQL? not only sql 非关系型数据库

键值对,根据键立马就可以得到值

redis、MongoDB

redis官网:redis.io redis.cn

###5种数据类型:字符串(string)、列表(list)、集合(set)、哈希(hash)、有序集合(zset)

redis官网只有linux版本的,不支持windows

学习方式:指令交互,可视化,代码操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值