博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql distince,MySQL学习(未完待续)
阅读量:5299 次
发布时间:2019-06-14

本文共 2371 字,大约阅读时间需要 7 分钟。

MySQL学习

环境:MacBook Pro

数据库版本:5.7.18

[TOC]

数据库部分

建立和断开数据库服务器连接

建立连接:mysql -h host_name -p -u user_name

-h host_name:待连接的服务器主机名,如果主机就是localhost/127.0.0.1,那么该选项可以省略。(当MySQL服务器运行在另一台机器上,就必须通过-h选贤来指定那台机器的主机名)

-u user_name:MySQL用户名,在Unix系统上,如果MySQL用户名同登陆名完全一样,就可以省略该选项,MySQL会自动把登陆名用作MySQL用户名。

-p:提示输入MySQL密码。

断开连接:quit

其它断开连接的方式:exit、\q。

创建数据库

MySQL数据库使用分号;来表示语句的结束,另一个种表示结束的方式是使用\g。

取消命令执行:\c。

查看当前存在的数据库:show databases;

创建数据库:create database database_name;

查询当前使用的数据库:select database();

使用指定数据库:use database_name;

另一种不常用但比较快速的指定数据库的方法:在与服务器建立连接的过程中指定数据库名

mysql -h host_name -p -u user_name database_name

设置字符集

修改数据库字符集:alter database database_name character set character_setting;

修改数据库字符集后,需要重启数据库才可以生效。

指定客户端连接字符集:set names character_setting;

等价于:

SET character_set_client = character_setting;

SET character_set_results = character_setting;

SET character_set_connection = character_setting;

数据表部分

创建

创建数据表:create table table_name (

col1_name type1 not null primary key auto_increment,

col2_name type2,

col3_name type3);

not null:必须填有数据,不得为空。

primary key:对col1_name列创建索引以加快查找速度,同时也要求该列的每一个数据都必须唯一。

auto_increment:插入记录时,如果没有指定col1_name的数据值,或者指定为null,则系统自动根据当前id自增一个值赋给当前列。

查看表结构

查看表结构:desc table_name;

等价于:description table_name;

show columns from table_name;

查询

查询:select col_name1,col_name2 as other_name...

from table_name

join other_table_name on join_condition

where conditions

group by ...

having ...

order by col_name1 ASC/DESC,col_name2 ASC/DESC

字符串的比较操作通常不区分大小写。

null是一个特殊值,它的含义是“无数据”或“未知数据”,不能用它与有数据的值进行运算和比较。在按序排列中,null是最小的。

查找null,使用is null或is not null来判断。

order by:默认排序是升序排列。

limit:limit关键字用来限定查询结果的返回个数,limit(n)表示显示前n行数据。limit(m,n)显示从第m+1行数据开始,到第m+n行数据。

as name:将查询后的结果列重命名

模式匹配:关键字like、not like+通配字符_、%。

下划线_:只能匹配一个字符。

%:可以匹配任何一个字符序列。(包含空序列)

distinct:消除重复列。

消除重复列:select distinct col_name from table_name where conditions;

在查询结果中,将重复的col_name字段的行只保留一行。

count():统计选取了多少行。

count(*):统计查询结果总共有多少行。

count(col_name):统计col_name字段有多少不为null的。

count(distince col_name):查询col_name列总共有多少个不同的非null值。

group by:对查询的数据记录进行分类。默认情况下,MySQL会按照group by的字段进行排序,但我们也可以在order by字段中指定排序列和排序规则。

group by+order by:select state, count(*) as count from president

group by state

order by count desc;

先分组后排序

当需要排序的列是某个汇总函数的计算结果时,不能直接在order by子句中引用函数,而是应该先给该输出列起一个别名,然后在order by子句中使用这个别名。

having:与where子句类似,均是用来设定查询条件;但不同的是,having允许汇总函数出现在该子句中。

查询子句的执行顺序:group by、having、order by。

查询

插入

删除

更新

转载地址:http://iodqv.baihongyu.com/

你可能感兴趣的文章
mysql忘记密码的解决办法
查看>>
全面分析Java的垃圾回收机制2
查看>>
ssh中文乱码解决
查看>>
Day1:初识Python
查看>>
[Code Festival 2017 qual A] C: Palindromic Matrix
查看>>
[Python设计模式] 第11章 迪米特法则——最少知识原则
查看>>
社交网站怎么利用好等级制度
查看>>
修改博客园css样式
查看>>
YUI3中panel基于Visibility属性引发的一个bug
查看>>
[BZOJ3771] Triple
查看>>
封装继承多态性
查看>>
搭建rtmp直播流服务之2:使用java实现ffmpeg命令接口化调用(用java执行ffmpeg命令)...
查看>>
centOs-安装java
查看>>
计算机
查看>>
斐波拉契数列的快速求法
查看>>
2017级网络与信息安全专业第一周助教总结
查看>>
1-4 Sass的基本特性-基础
查看>>
非常喜欢的两段小代码
查看>>
C#事件-支持发布者/订阅者模式
查看>>
C#非泛型集合类-ArrayList遍历元素
查看>>