![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL8.0
不服输的南瓜
这个作者很懒,什么都没留下…
展开
-
MySQL数据库常用语法(8.0.13)
创建数据库:CREATE DATABASE xxx; # xxx为所要创建的数据库名字查看已存在的数据库:SHOW DATABASES;选择已知存在的数据库:USE xxx; # xxx为要选择的数据库名字注意: 使用之后不能对其他数据库以及其他的数据中的数据表操作,只能对自身数据库操作。但可以使用 SHOW DATABASES 返回到根目录下进行对其他数据库的操作...原创 2019-07-03 11:32:53 · 7076 阅读 · 0 评论 -
mysql设置字段为自动增加(mysql8.0)
今天尝试想把一个字段设为自动增加时出现以下错误,具体为什么不知道,但是原因很明显:因为一般设为自动增加的字段都会作为主键,所以就根据提示做以下修改:然后做了一系列测试:结论:如果想让该字段数据从1开始一直递增,那就不要传入值或者传入NULL,否则传入的值会影响它,使其当前值变为设置的值。即使删除其中一条记录,自增字段的其他记录也不会受影响。...原创 2019-07-05 20:01:27 · 7327 阅读 · 0 评论 -
mysql之PK和UK
mysql中PK和UK分别是unique key 和primary key,两种有些区别:主键值必须是唯一且非空的;唯一键必须唯一但是可以为空。在以下情况中会出现假主键的情况:...原创 2019-07-18 13:37:45 · 6467 阅读 · 0 评论 -
目录
mysql之PK和UK原创 2019-07-18 19:39:26 · 143 阅读 · 0 评论 -
回溯统计
先建立一个表并且插入一些数据分组group by:返回每个分组中的随机一条记录,一般用于统计数据。单字段统计用group_concat()来显示每个分组中所指定的字段值至于到底男的排在前面还是女的排在前面,我认为是根据原表格出现顺序排的。多字段统计回溯统计with rollup根据某字段分组后会有不同小组,不同小组需要向上级分组根据当前分组汇报统计,回溯统计时会将最上级的...原创 2019-07-18 20:46:12 · 995 阅读 · 0 评论 -
MySQL存储过程和函数
使用数据库对象存储过程比一条一条执行语句要快得多,所谓数据库对象存储过程和函数就是把一组关于表操作的SQL语句当作一个整体来执行。简单说就是事先经过编译并存储在数据库中的一段SQL语句集合。存储过程和函数的区别在于存储函数有返回值,存储过程没有返回值;存储过程的参数类型远远多于函数参数类型。创建创建存储过程:DELIMITER $$CREATE PROCEDURE proce_emplo...原创 2019-01-18 17:19:09 · 267 阅读 · 0 评论 -
MySQL事务的四个特性
MySQL中支持事务的存储引擎仅有InnoDB和DBD。事务的四个特性:原子性:事务中所有操作视为一个原子单元,要不全部提交,要不全部回滚。MySQL中的语句是默认提交的,因此想要满足原子性,MySQL中使用begin开始事务,当然用start transaction也是可以的(只不过我觉得begin好记),用commit结束事务,用rollback回滚事务。当结束事务或回滚事务后MySQ...原创 2019-01-15 15:12:54 · 962 阅读 · 0 评论 -
数据库命名规则
规则:由字母、数字、下划线、@、#、和 $ 组成,但是首字母不能是数字和$标识符不能是mysql保留字。但是对于以上不符合规则的命名只要加上标识限定符(反引号)就是合法的。【注意】如果进行以下操作,则在data下得到的文件夹名字是中文编码的内容。只要加限定符就能成功。...原创 2019-07-20 12:47:48 · 785 阅读 · 0 评论 -
字符集校对规则
每个字符集都提供一个或多个校对规则,通常的命名规则是:字符集_语言_cli/cs/bin。cs: 区分大小写bin:区分大小写ci:不区分大小写-- 查字符集show variables LIKE '%character%';-- 查看校对规则show collation like 'utf8%';默认情况下,基本都不区分大小写。在设置字符集时,可以设置校对规则,如果不设置就用默...原创 2019-07-20 14:40:39 · 413 阅读 · 0 评论 -
mysql实现自动生成学号
-- 创建班级信息表:create table xidian_class ( id int primary key auto_increment, class varchar(10), room int);-- 插入数据 insert into xidian_class values (NULL,'xd0115',207), (NULL,'xd0...原创 2019-07-17 23:39:51 · 3208 阅读 · 0 评论 -
三大范式
范式范式(Nomal Format):是离散数学中的知识,是为了解决数据的存储与优化问题,保证数据存储之后,凡是能够通过关系寻找出来的数据,坚决不再重复存储,终极目标是为了减少数据的冗余。范式是一种分层结构的规范,分为6层。每一层都比上一层更加严格;若要满足下一层范式,前提是满足上一层范式。六层范式:1NF,2NF…6NF,1NF是最底层,要求最低,6NF最高层,最严格。mysql属于关系...原创 2019-07-21 12:34:19 · 271 阅读 · 0 评论 -
mysql读入文件到数据库
语句:load data infile ‘文件地址+文件名’ into table 表名;举例:【注意】如果表存在自动增加的主键,那在导入时数据增加,需要考虑是否冲突的情况。通常在导出时将主键导出成null,利用自动增长的特性,可以形成新的主键。...原创 2019-07-12 22:02:19 · 306 阅读 · 0 评论 -
mysql导出数据到文件
图示语法跟普通的select查询语句基本一致,只不过是指定了输出地址用于备份文件内容。select * into outfile '文件保存地址/文件名' from 表名;实际操作在操作时可能会出现The MySQL server is running with the --secure-file-priv option so it cannot execute this state...原创 2019-07-12 20:12:55 · 1455 阅读 · 0 评论 -
Mysql实现同时交换两个表的表名
表重命名有两种方式,所以交换两表名也有两种方式:1 .lock tables t1 write ,t2 write;alter table t1 rename to t3;alter table t2 rename to t1;alter table t3 rename to t2;unlock tables;2 .rename table t1 to t3,t2 to t1,t...原创 2019-07-03 09:17:20 · 2855 阅读 · 1 评论 -
MySQL数据查询大小写问题
MySQL 查询默认是不区分大小写的,如果需要区分大小写,就要在查询条件前加binary:PS:还可以在建表时加以标识:CREATE TABLE t_dept( loc VARCHAR(20) BINARY;)...原创 2018-12-28 10:59:42 · 1599 阅读 · 0 评论 -
MySOL中查询库中所有表
SELECT table_name FROM information_schema.tables WHERE table_schema = '当前数据库';原创 2019-01-05 20:23:24 · 499 阅读 · 0 评论 -
MySQL中的ON和WHERE
ON是建立关联关系WHERE是对关联关系的筛选原创 2019-01-02 12:43:05 · 1039 阅读 · 0 评论 -
牛客网数据库之获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
题目:思路一:在小于最高salary的数据集中找最高salarySELECT emp_no,MAX(salary) FROM salaries WHERE to_date = '9999-01-01' AND salary <( SELECT MAX(salary) FROM salaries);思路二:在除去最高salary的数据集...原创 2019-01-02 15:32:05 · 358 阅读 · 0 评论 -
MySQL中case和if
IF 语法形式:IF 条件 THEN 执行语句ELSEIF 条件 THEN 执行语句ELSE 执行语句ENDCASE 语法形式:CASE 条件判断的变量WHEN 条件判断的变量的值 THEN 执行语句WHEN 条件判断的变量的值 THEN 执行语句ELSE 执行语句END举例如下:# CASECASE eb.btype WHEN 1 THEN s.salary...原创 2019-01-07 17:18:15 · 1699 阅读 · 0 评论 -
MySQL服务器重新启动
原创 2019-01-12 20:51:35 · 1163 阅读 · 0 评论 -
Unknown system variable 'query_cache_size'
本来想学习一下mysql的查询缓存,但是在关闭缓存时却出现以下问题:后来才发现自己的mysql版本是8.0.13,而MySQL 8.0以后就彻底没有查询缓存这个功能了。【补充】之前的版本MySQL拿到一个查询请求后,会先到查询缓存看看之前是不是执行过这条语句。如果查询缓存打开了的话之前执行过的语句及其结果会以key-value对的形式,被直接缓存在内存中。key是查询的语句,value是查...原创 2019-05-18 23:10:50 · 2735 阅读 · 0 评论 -
Mysql存储引擎的对比
MyISAM: 不支持事务、也不支持外键,所以访问速度比较快,适用于对事务完整性没有要求并以访问为主的应用场合。锁机制:表锁。InnoDB:支持事务安全,所以比MyISAM存储引擎占用更多的磁盘空间,适用于频繁进行更新、删除操作,同时还对事务完整性要求高,需要实现并发控制的应用场合。锁机制:行锁。MEMORY:用内存存储数据,因此数据访问数据快,但是安全没有保障,适用于涉及数据比较少,需要进行...原创 2019-06-12 19:53:40 · 135 阅读 · 0 评论 -
redo log和binlog两种日志的不同点
redo log是InnoDB引擎特有的;binlog是MySQL的Server层实现的,所有引擎都可以使用。redo log是物理日志,记录的是“在某个数据页上做了什么修改”;binlog是逻辑日志,记录的是这个语句的原始逻辑,比如“给ID=2这一行的c字段加1 ”。redo log是循环写的,空间固定会用完;binlog是可以追加写入的。“追加写”是指binlog文件写到一定大小后会切换...原创 2019-06-14 21:06:03 · 941 阅读 · 0 评论 -
MySQL8.0修改数据库名的方法
首先:不管存储引擎是InnoDB还是MyISAM直接去修改data下的文件夹名称都是不可行的。RENAME database oldname TO newname;也是不可行的。可采取的方法:方法一:新建数据库,导出旧库数据,删除旧数据库,具体如下:1.创建需要改成新名的数据库。2.mysqldum 导出要改名的数据库。3.删除原来的旧库。该方法在数据量大时会比较慢。方法二...原创 2019-07-02 22:07:23 · 13194 阅读 · 0 评论 -
索引会在什么情况下失效?(InnoDB,mysql8.0)
条件中有or如果条件中有or,其中一个字段是索引字段,另一个是非索引字段,此时索引不会被使用,全表扫描。如果条件中有or,左右是两个不同的独立索引字段,此时两个索引字段都会用。但其实完全可以用union来代替: select * from xd_student where id = 2 union select * from xd_studen...原创 2019-07-21 13:54:53 · 1282 阅读 · 0 评论