ca88手机版登录mysql使用详解,18的详细步骤

Mac下安装mysql5.7.18的详细步骤,macmysql5.7.18

一、工具

  我们需要现在两个工具:MySQL 服务器(mysql-5.7.18)、MySQL GUI(mysql-workbench)

  MySQL 服务器包含了MySQL 的整个运行环境,安装了它就能通过命令行让 MySQL 运行的很好了。

  当然如果你不喜欢命令行,可以下载一个 GUI工具来管理 MySQL。GUI的功能很丰富,包括权限设置,创建数据库、创建表格等等。

二、安装

  1.MySQL 服务器

  下载地址: 。我下载的是 mysql-5.7.18-macos10.12-x86_64.dmg

  下载完直接安装,一路无话。

  值得注意的是:安装完后会提示 弹窗root账号密码,请把他它记录下来后面我们会用到

ca88手机版登录 1

  安装完后在终端并不能识别 mysql 命令,需要配置一下

$ cd /usr/local/bin/
$ sudo ln -fs /usr/local/mysql/bin/mysql mysql
$ mysql --version 

#能显示 mysql 版本说明 mysql 安装成功

ca88手机版登录 2

  修改 root账号的密码:

$ sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
$ mysql -u root
#会进入 mysql 命令模式,逐行输入下面命令

UPDATE mysql.user SET authentication_string=PASSWORD('*****') WHERE User='root';
FLUSH PRIVILEGES;
q

#修改完后验证密码

# mysql -u root -p

  2.安装GUI

  下载地址: 。我下载的是mysql-workbench-community-6.3.9-osx-x86_64.dmg

  下载安装,一路无话。

  安装完后打开,Workbench,界面如下:

ca88手机版登录 3

  点击进入

  root

  localhost:3306

  第一次进入会提示修改密码,那就修改好了。

  进入Workbench

ca88手机版登录 4

至此安装完毕!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持帮客之家。

一、工具 我们需要现在两个工具:MySQL 服务器(mysql-5.7.18)、MySQL GUI(mysql-workbench) MySQL 服务器包含...

mysql中count(), group by, order by使用详解,mysql使用详解

最近做IM的时候遇到一个问题,同时用到了这三个关键字。就是查询一个人的离线消息详情,我们服务端返回给客户端显示的这个详情包括了三个内容,第一个要求列出离线这段时间哪些人或者群给你发了消息,第二个这其中的某个人或者群发了多少条离线消息,第三个拿出最新的一条显示出来。很明显,group by分组哪些人或者群给你发了离线消息,count()得到离线消息数量,order by时间来排序拿出最新的消息。

select count(1) as cnt, msg_data from t_im_chat_offline_msg where to_company_id = ? and to_user_id = ? order by create_time desc group by from_company_id, from_user_id;

然后果不其然group by和order by一起检索就报错了,我们可以用嵌套子查询。

select count(1) as cnt, msg_data from (select * from t_im_chat_offline_msg where to_company_id = ? and to_user_id = ? order by create_time desc) as temp_table group by from_company_id, from_user_id;

我们可以对已经排序的结果集,再来分组并计算数量。这里还有一个暗坑,我自己不小心给躲过去了,其实count()会造成order by排序无效,举个例子:

select count(1) as cnt, msg_data from t_im_chat_offline_msg where to_company_id = ? and to_user_id = ? order by create_time desc;

这个语句最后得到的一条记录,其中的msg_data其实是根本没有排序的结果,也就是数据库原顺序,应该是先插入的一条消息,就是说时间旧的消息。为了避免这个问题,所以嵌套子查询在这里先排序,再让它去count()就规避了。自己无意躲过去了,还好反复改语句测试了一番才发现。

), group by, order by使用详解,mysql使用详解 最近做IM的时候遇到一个问题,同时用到了这三个关键字。就是查询一个人的离线消息详...

MySQL 消除重复行的一些方法,mysql消除重复行

sql语句

/*
MySQL 消除重复行的一些方法
---Chu Minfei
---2010-08-12 22:49:44.660
--引用转载请注明出处:http://blog.csdn.NET/feixianxxx
*/
----------------全部字段重复------------------------
 --1使用表替换来删除重复项
 create table test_1(id int,value int);
 insert test_1 select 1,2 union all select 1,2 union all select 2,3;
 --建立一个和源表结构一样的空的临时表
 create table tmp like test_1;
 --向临时表插入不重复的记录
 insert tmp select distinct * from test_1;
 --删除原表
 drop table test_1;
 --更改临时表名为目标表
 rename table tmp to test_1;
 --显示
 mysql> select * from test_1;
 ------ ------- 
| id  | value |
 ------ ------- 
|  1 |   2 |
|  2 |   3 |
 ------ ------- 
 --2.添加auto_increment属性列(这个方法只能用于MyISAM或者BDB引擎的表)
 create table test_1(id int,value int) engine=MyISAM;
 insert test_1 select 1,2 union all select 1,2 union all select 2,3;
 alter table test_1 add id2 int not null auto_increment,
 add primary key(id,value,id2);
 select * from test_1;
 ---- ------- ----- 
| id | value | id2 |
 ---- ------- ----- 
| 1 |   2 |  1 |
| 1 |   2 |  2 |
| 2 |   3 |  1 |
 ---- ------- ----- 
  delete from test_1 where id2<>1;
  alter table test_1 drop id2;
  select * from test_1;
   ---- ------- 
| id | value |
 ---- ------- 
| 1 |   2 |
| 2 |   3 |
 ---- ------- 
-------------------部分字段重复---------------------
--1.加索引的方式
 create table test_2(id int,value int);
 insert test_2 select 1,2 union all select 1,3 union all select 2,3;
 Alter IGNORE table test_2 add primary key(id);
 select * from test_2;
  ---- ------- 
| id | value |
 ---- ------- 
| 1 |   2 |
| 2 |   3 |
 ---- ------- 
 我们可以看到 1 3 这条记录消失了 
 我们这里也可以使用Unique约束 因为有可能列中有NULL值,但是这里NULL就可以多个了..
 --2.联合表删除
 create table test_2(id int,value int);
 insert test_2 select 1,2 union all select 1,3 union all select 2,3;
 delete A from test_2 a join (select MAX(value) as v ,ID from test_2 group by id) b
 on a.id=b.id and a.value<>b.v;
 select * from test_2;
  ------ ------- 
| id  | value |
 ------ ------- 
|  1 |   3 |
|  2 |   3 |
 ------ ------- 
--3.使用Increment_auto也可以就是上面全部字段去重的第二个方法
--4.容易错误的方法
--有些朋友可能会想到子查询的方法,我们来试验一下
 create table test_2(id int,value int);
 insert test_2 select 1,2 union all select 1,3 union all select 2,3;
 delete a from test_2 a where exists(select * from test_2 where a.id=id and a.value<value);
 /*ERROR 1093 (HY000): You can't specify target table 'a' for update in FROM clause*/

 目前,您不能从一个表中删除,同时又在子查询中从同一个表中选择。


 ------------------删除特定重复行--------------
 --主要通过order by  limit 或者直接limit 
 create table test_3(id int,value int);
 insert test_3 select 1,2 union all select 1,3 union all select 1,4 union all select 2,3;
 --这是要保留ID=1 value最小的那个记录,删除其他id为的记录
 delete from test_3 where id=1 order by value desc limit 2;
 select * from test_3;
 ------ ------- 
| id  | value |
 ------ ------- 
|  1 |   2 |
|  2 |   3 |
 ------ ------- 
 如果你只想删除任意的记录 保留一条 就可以去掉order by 

消除重复行的一些方法,mysql消除重复行 sql语句 /*MySQL 消除重复行的一些方法---Chu Minfei---2010-08-12 22:49:44.660--引用转载请注明出处:htt...

本文由ca88手机版登录发布于亚洲城ca88手机版官网,转载请注明出处:ca88手机版登录mysql使用详解,18的详细步骤

TAG标签: ca88手机版登录
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。