1 sql相关
1.1 mysql 数据库中常用的增删改查的方法
添加新字段:
alter table t_product(表名) add produce(添加新的字段名) int null;
1.2 mysql 添加外键
alter table student add constraint fk_student_gid foreign key(gid)
references grade(gid);
1.3 mysql 查看数据库版本
SELECT @@version;
1.4 mysql 横向查询(一对多)
新建数据库表并插值:
create table aaa(id varchar (32),name varchar(32),roleid varchar(32));
insert into aaa values('1','bobo','r1');
create table bbb(id varchar (32),name varchar(32));
insert into bbb values('r1','admin');
INSERT INTO comm_page_field_rel (serialno)
VALUES ("1");
横向查询:
SELECT roleid,
GROUP_CONCAT(distinct name order by name) S
FROM aaa
GROUP BY roleid
SELECT roleid,
GROUP_CONCAT(CONCAT_WS('-', id, name) SEPARATOR ';') S
FROM aaa
GROUP BY roleid
group_concat,主要作用是用来应付如一对多情况的变体的
1.5 mysql union和union all的区别
用四张图简单描述下它们的区别
图一: 图二:


图三: 图四:

结果集加起来,并且处理重复项 结果集加起来,并且不处理重复项
1.6 分片键相关
- 分片键的影响
添加了分片键的字段是无法更改该字段的数据,更改的话报错码11220
- 查看是否有分片键的方法
查看表结构,是否有 distribution key
- 有分片键如何变更该表的数据
在po上增加注解@DynamicUpdate(true) (据说也要和@SelectBeforeUpdate注解同时使用)
参考:https://blog.csdn.net/qq_45813281/article/details/107742682
- 分片键常用知识点
1 分布式数据库数据分片要先选择一个或多个字段(业务常用的字段且表大多可以根据分片键进行单元化)作为分片键
2 选择分片键后,就要选择分片算法,通常是Range或者Hash算法(海量OLTP推荐Hash算法,如双11,双12等单日内订单异常多的情况)
3 分片键完成后,需要进行分库分表设计,推荐不同库不同表设计
4 推荐一开始就把分片数量设置为不少于1000个(等待上线以后发现分片不够,重新进行逻辑分片是很麻烦的事,建议一开始就把分片数量设置大一些)
参考:https://www.zhihu.com/question/34597867
2 Mysql客户端登录
2.1 mysql 客户端如何登录
1、到服务bai面板里面启动mysql服务
2、在dudos窗口下,通过命令net start mysql(你的服务名) 启动
启动后,可到mysql的安装目录的bin目录下,打开dos窗口,然后命令mysql -u用户名 -p密码
即可进入mysql客户端
mysql -hlocalhost -uscott -ptiger
2.2 mysql 安装路径如何确认
cmd-->services.msc-->找到mysql服务,右键--》属性--》常规--》可执行文件的路径
2.3 mysql 客户端常用命令
\q 退出客户端
select version(); 查看mysql版本
show variables like '%time_zone%'; 查看时区(正常情况下为system)
set global time_zone = '+8:00'; 设置mysql时区为东8区
3 sql报错
3.1 2003 Can't connect to MySQL server on 'localhost' (10061)
没有启动sql服务,以下是具体步骤:
右键-计算机-管理-服务和应用程序-服务-mysql-右键启动即可
3.2 mysql 1045
经查询我的mysql 1045代码问题的根本原因是:
问题原因:我导入的另一个库的时候,视图用的是原来库的视图。
解决方案:把视图重新建立到本地视图下即可。
解决步骤:navicat==》视图==》右键导出向导==》*.sql==》选中要导出的视图==》导出即可
3.3 could not execute statement;Sql [n/a] constraintviolati
①检查数据库的字段设置,看其设置是否允许为空。
②检查传递值的过程中,是不是没有传递,数据库中对应表不允许为空的字段。
参考:https://blog.csdn.net/suprezheng/article/details/84932279
浙公网安备 33010602011771号