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

 

posted on 2015-08-10 11:58  菜鸟乙  阅读(165)  评论(0)    收藏  举报