MYSQL操作指令

本文详细介绍了如何使用MySQL进行数据库连接、选择、查询、过滤、排序、聚合、分组等基本操作,包括使用WHERE子句、LIKE和正则表达式进行数据过滤,以及运用各种函数处理数据。此外,还涵盖了日期和时间处理、联结表等内容,是MySQL初学者的实用教程。
摘要由CSDN通过智能技术生成

1. 使用MYSQL

1.1 连接数据库

mysql -u用户名 -p密码

1.2 选择数据库

use 数据库名称;

1.3 了解数据库和表

show databases; – 查看所有数据库
show tables; – 查看所有表
show columns from 表名; – 查看表的列信息
show status; – 查看服务器状态信息
show create database 数据库名称; – 查看创建数据库语句
show create table 表名称; – 查看创建表语句
show grants; – 用来显示授予用户的安全权限

2. 检索数据

select 要查看的列名 from 表名称; – 从表中检索要查看的数据
多个列用逗号隔开即可,如果要查看所有列,用*表示

2.1 检索后,查看指定数据

select DISTINCT 要查看的列名 from 表名称; – 检索出不同的行
distinct关键句作用在所有行,而不只是前置它的行

select 要查看的列名 from 表名称 limit m; – 仅查看小于等于行数的数据
select 要查看的列名 from 表名称 limit m,n; – 仅查看要求行数,从m行开始,共n行数据,注意,mysql行数从0开始

2.2 检索后,排序数据

select 要查看的列名 from 表名称 order by 列名;
注意:如果是按多个列排序,首先按第一列排序,当该列的两行内容相同时,再按第二列进行排序,以此类推

select 要查看的列名 from 表名称 order by 列名 DESC; – 降序,默认是升序

3. 过滤数据

通过where子句携带过滤条件,过滤select出的数据

3.1 WHERE子句操作符

操作符说明
=等于
<>不等于
!=不等于
<=小于等于
<小于
>=大于等于
>大于
between在指定的两个值之间 (包括开始和结束值)
is NULL空值检测

3.2 组合WHERE子句

AND 操作符 OR 操作符 的计算次序:
优先处理AND操作符

IN操作符:枚举值
NOT操作符:可以搭配其他操作符使用,如NOT IN()

3.3 通配符进行过滤

通过LIKE关键字进行模糊查找

% 适配任何字符出现任意次数,但%不可以匹配NULL
_ 只能匹配一个任意字符

3.4 用正则表达式过滤

正则表达式用于匹配文本
where 列名 REGEXP ‘要匹配的字符串’ – 包含字符串的所有行
where 列名 REGEXP ‘字符串1|字符串2’ – 匹配其中任意一个字符串即可

其他规则:
匹配几个字符之一:[字符1字符2字符3],字符之间是或的关系
不匹配其中任意字符:[^字符1字符2字符3]
匹配范围中的字符之一:[1-5] [a-z]
匹配任意字符:. ,如果想匹配本身,前面加\
匹配多个实例:

	\*    -- 0或者多个匹配
	+     -- 1或者多个匹配
	?    -- 0或者1个匹配
	{n}   -- 指定数目的匹配
	{n,}  -- 不少于指定数据的匹配
	{n,m}  -- 匹配数据的范围,m不超过255

定位符:

^    -- 文本的开始
$   -- 文本的结尾
[[:<:]]   -- 词的开始
[[:>:]]   -- 次的结尾

3.5 字段处理

  1. 字段的拼接
    concat (字段与字符串之间用逗号隔开)
    eg> select concat(v,’(’,m,’)’) from table where w = ‘1002’;

可以给拼接后的字段起一个别名:
eg> select concat(v,’(’,m,’)’) as alts from table where w = ‘1002’;

  1. 字段的计算
    select a * b as c from table;

4. 数据处理函数

4.1 文本处理函数

函数说明函数说明
Left()返回串左边的字符Right()返回串右边的字符
Length()返回串的长度Locate()找出串的一个子串
Lower()将串转为小写Upper()将串转为大写
LTrim()去掉串左边的空格RTrim()去掉串右边的空格
Soundex()返回串的Soundex值SubString()返回子串的字符

4.2 日期和时间处理函数

函数说明函数说明
AddDate()增加一个日期AddTime()增加一个时间
CurDate()返回当前日期CurTime()返回当前时间
Date()返回当前日期和时间DateDiff()计算两个时间之差
Date_Add()高度灵活的日期运算函数Date_Format()返回一个格式化的日期或时间串
Day()返回日期的天数部分DateOfWeek()返回日期对应的星期几
Hour()返回一个日期的小时部分Minute()返回一个日期的分钟部分
Month()返回一个日期的月份部分Now()返回当前日期和时间
Second()返回一个时间的秒部分Time()返回一个日期的时间部分
Year()返回一个日期的年份部分

eg> select a from t where Date(d) = ‘2015-09-11’;
eg> select a from t where Year(d) = 2005 AND Month(d) = 9;
获取2005年9月1日到9月30日的数据

4.3 数值处理函数

Abs()    -- 返回一个数的绝对值
Cos()    -- 返回cos值
Sin()     -- 返回sin值
Exp()    -- 返回指数值
Mod()   -- 返回除操作的余数
Pi()       -- 返回圆周率
Rand()    -- 返回一个随机数
Sqrt()     -- 返回一个数的平方根
Tan()     -- 返回一个数的正切值

5. 汇总数据

聚合函数:运行在行组上,计算和返回单个值的函数

AVG()   -- 返回某列的平均值
	只用于单个列,忽略值为NULL的行
COUNT()   -- 返回某列的行数
	count(*)   计算所有行数,算NULL行
	count(列名)   计算指定列的行数,不算NULL行
MAX()       -- 返回某列的最大值
MIN()        -- 返回某列的最小值
SUM()      -- 返回某列值之和

6. 分组数据

GROUP BY 创建分组:
1. 可以包含任意数目的列,使得能对分组进行嵌套
2. group by中每个列必须是检索列或者是有效的表达式(聚集函数除外),如果是表达式,要跟select中的表达式相同,不能使用别名
3. 如果分组中有NULL值,则NULL将作为一个分组返回

6.1 过滤分组

where过滤的是行,having过滤的是分组;having支持所有where操作符。

6.2 select子句顺序

select -> from -> where -> group by -> having -> order by -> limit

7. 联结表

多个表之间的关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值