Mysql初学教程

这里跳过了Mysql的安装,如有需要点击下方链接学习哦!
菜鸟教程-Mysql

命令行操作数据库

对于刚刚安装完数据库,我们需要使用命令行登录或修改数据库密码等操作!

  • 连接数据库
[root@host]# mysql -u root -p
Enter password:******

  • 修改用户密码(对于Mysql安装完首次生成的初始密码,再登录后需要重新修改用户密码)
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;

  • 退出
mysql> exit

基本SQL使用

  • SELECT 查询语句
    SELECT 字段名 / * (代表查询所有字段) FROM 表名 (多个表用’,'隔开) WHERE (查询条件) 【GROUP BY 分组查询字段 】【ORDER BY 排序字段 ASC|DESC (默认ASC 升序)】【LIMIT 数量】
    事例:
select * from local_device where device_type = '主入口' group by sentryboxid order by localDeviceId asc limit 5;
  • UPDATE 修改语句
    UPDATE 【修改表名称】 SET 【字段名1 = 字段值1】,【字段名2 = 字段值2】… 【WHERE 【条件语句】】;
update lcoal_parking set name = '测试车场' where localParkingId = 1;
  • DELETE 删除语句
    DELETE FROM 【表名称】【WHERE 条件】;
    删除语句如果后面不加条件语句,就是清空整张表。
delete from local_parking where localParkingId = 1;
  • 模糊查询
    模糊查询的关键字是LIKE ,使用在where 后面作为查询条件。
	like 匹配/模糊匹配,会与 % 和 _ 结合使用。
	'%a'     //以a结尾的数据
	'a%'     //以a开头的数据
	'%a%'    //含有a的数据
	'_a_'    //三位且中间字母是a的
	'_a'     //两位且结尾字母是a的
	'a_'     //两位且开头字母是a的

查询以 java 字段开头的信息。

SELECT * FROM position WHERE name LIKE 'java%';

查询包含 java 字段的信息。

SELECT * FROM position WHERE name LIKE '%java%';

查询以 java 字段结尾的信息。

SELECT * FROM position WHERE name LIKE '%java';

Navicat 使用

Navicat 是我们经常使用的Mysql的图形化工具。

  • 创建连接
  • 创建数据库(常用的编码字符集utf8)

常见错误集

  • 找不到数据库表
    报错信息:Table 'cldcyf.local_parrr' doesn't exist;
    解析:cldcyf 代表数据库名 local_parrr 代表表名
    解决方法:创建表
    在这里插入图片描述

  • 找不到字段
    报错信息:Unknown column 'a' in 'where clause';
    解析:查询条件的a 找不到字段
    解决:查看from后面的表名,在对应表中添加字段

  • 字段太长
    报错信息:Data too long for column 'name' at row 1;
    解析:字段 name 的长度太长
    解决:修改from后面表明的name的字段长度
    在这里插入图片描述

  • 超出值的范围
    报错信息:Out of range value for column 'ifChargeFee' at row 1;
    解析:字段 ifChargeFee 超出值的范围,这种一般是数值太大导致。
    解决:修改该字段长度
    在这里插入图片描述

  • 查询多条数据异常
    报错信息:org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
    解析:需要查询一个或零个结果,但查询到两个,这个一般是代码抛出的异常错误,原因就是代码中需要查询单个结果,但数据库中符合条件的有两条及以上。
    解决:判断日志上下文,一般报错上方会有逻辑日志打印,例如下方错误解析:报错为查找到两条符合结果,上文中打印了是由于优惠券信息异常导致,是本地收到云端下发的优惠券信息,一般查找字段优惠券表的主键:merchantCouponId,对应到本地端为local_merchant_coupon的cloudId ,然后查询数据库该表的cloudId字段‘306188’,查询到两条结果。
    在这里插入图片描述

  • 不允许为空值
    报错信息:Field 'name' doesn't have a default value;
    解析:name字段没有一个默认值,一般是因为代码逻辑没有传值,或则该表的字段勾选不允许为空
    解决:1、代码修改 2、去掉字段不是null的勾选(依据实际情况)
    在这里插入图片描述

在这里插入图片描述

最后,本文章仅供个人基础学习使用,如果问题欢迎讨论!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值