mysql: 基本操作

表相关

DESC 表名 :查看表结构

SELECT * FROM 表名; 查看表内容

SELECT userid as ‘id’ FROM users; 使用as 起别名

SELECT userid * 12 as ‘id’ FROM users; 使用运算符操作列

show create table 表名:查看建表语句;

distinct 去重。

条件查询

条件查询包括常用的<,>,=,>=,<=等基本操作。注意不等于操作可以用<>,!=。这两个都是可以的。

除此之外还有一些字符串:
And,Or,Not,就是与或非操作。

特殊条件:
between a and b; 区间判断
in(a,b);
a is NULL ; 空值判断 is not null; 非空判断
Like : 模糊查询 (% 代表多个字符,_代表一个字符,\ 转义)

链接:

这里推荐leetcode 问题:组合两个表
在数据库中 链接分为6种:
交叉连接(笛卡尔链接):

SELECT * FROM A,B(,C)或者SELECT * FROM A CROSS JOIN B (CROSS JOIN C)没有任何关联条件,结果是笛卡尔积

内连接(常见的链接):

SELECT * SROM A,B WHERE A.id=B.id
SELECT * FROM A INNER JOIN B ON A.id=B.id

就是常见的判断链接两个表中符合条件的行的合并

外连接(分为左连接和右链接):

SELECT FirstName,LastName,City,State 
FROM Person
LEFT JOIN Address
On Person.PersonId = Address.PersonId

left 左侧的表不符合条件的行也会出现在结果集中。
right 则是右侧。(这是上面leetcode题的答案)

全连接(相当于左链接和右链接的统合):
mysql不支持全连接,但是可以通过左连接和右连接的联合查询实现。

SELECT * FROM A LEFT JOIN B ON A.id=B.id UNION SELECT * FROM A RIGHT JOIN B ON A.id=B.id

联合查询(把结果集合并,只要求结果集列数相同):

上面全连接已经展示了一个联合查询的实例,UNION 后面可以添加all ,表示允许相同的结果出现,union 相当于 union unique。

leetcode 题目:第二高的薪水

排序

排序使用Order By :

Order by 列名 [asc|desc]

当有多个列名时,先执行,前面的列名排序,当相同时,再使用后面的列名进行排序。

分页查询

mysql 中使用limit 进行分页查询。limit 时mysql 特有的。

SELECT * FROM table LIMIT 5,10; // 检索记录

这里检索的时从第6条开始的十条记录,limit 接受两个参数,第一个参数是偏移量,第二个参数是检索的数目,注意,偏移量是从0开始,所以这里的5代表第6条。

特殊情况:设置第二个参数为-1,代表检索从偏移开始到结尾的所有参数。
只保留一个参数则是默认从0开始。

SELECT * FROM articles WHERE category_id = 123 ORDER BY id LIMIT 10000, 10

SELECT * FROM articles WHERE id >= (SELECT id FROM articles WHERE category_id = 123 ORDER BY id LIMIT 10000, 1) LIMIT 10
这里介绍一下,这种结合子查询进行的分页。从效果上来看,语句一比语句二更加简洁且,效果相同,但是当偏移量到达一定程度时,建议使用第二种,因为第二种是先用子查询缩小查找范围,再用limit,分页。因为子查询是使用的索引,所以效率会快很多。而偏移值太大,则会严重降低速率。
建议分界点为100.

分组函数

Count,sum,avg,max,min.
如同字面意思,总数,综合,平均值,最大值,最小值.
这里不一一举例。

分组函数的注意事项:

  • 分组函数自动忽略NULL,
    对于单行处理函数,当运算式中出现NULL时,运算结果为NULL。可用ifnull来处理,ifnull(col,target).就是出现null,就用target替代。

  • 分组函数不能再where中使用

  • count(*) 是统计总记录条数,count(col)是统计某个字段不为NULL的元素总数。

  • group by
    group by 是根据某些条件进行分组, group by发生在where之后,group by 才能进行分组查询,这就是为什么不能在where中使用分组查询,当没有使用group by时,把整个表当成一个分组。
    当分组函数结合group by 使用时只能Select与group by相关的列。
    group by 后面可以跟多个字段。

  • having
    having 的功能类似与where,但是他是在group by 之后运行的,所以可以处理一些where 无法处理的情况,但是where 效率更高,所以能够使用where 就尽量使用Where.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是MySQL基本操作的步骤: 1. 安装MySQL:首先需要在计算机上安装MySQL数据库。可以从官网下载MySQL安装程序,并根据安装向导进行安装。 2. 启动MySQL服务:安装完成后,启动MySQL服务。如果是在Windows系统上安装的MySQL,可以在服务中查找到MySQL服务,并手动启动。 3. 登录MySQL:启动MySQL服务后,可以使用命令行工具或者MySQL客户端登录MySQL数据库。如果使用命令行工具,可以使用以下命令登录: ``` mysql -u用户名 -p密码 ``` 如果使用MySQL客户端,可以在界面中输入用户名和密码登录MySQL。 4. 创建数据库:登录MySQL后,可以使用以下命令创建数据库: ``` create database 数据库名; ``` 5. 创建表:在创建好数据库后,可以使用以下命令在数据库中创建表: ``` create table 表名( 字段1 数据类型, 字段2 数据类型, ... ); ``` 6. 插入数据:创建好表后,可以使用以下命令向表中插入数据: ``` insert into 表名(字段1, 字段2, ...) values (值1, 值2, ...); ``` 7. 查询数据:使用以下命令可以查询表中的数据: ``` select * from 表名; ``` 可以根据需要添加查询条件和排序规则,例如: ``` select * from 表名 where 条件 order by 排序规则; ``` 8. 更新数据:使用以下命令可以更新表中的数据: ``` update 表名 set 字段1=值1, 字段2=值2 where 条件; ``` 9. 删除数据:使用以下命令可以删除表中的数据: ``` delete from 表名 where 条件; ``` 10. 关闭MySQL:使用以下命令可以关闭MySQL服务: ``` quit; ``` 以上就是MySQL基本操作的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值