首页 > 数据库 >#### Mysql 基础

#### Mysql 基础

时间:2023-04-18 14:11:06浏览次数:42  
标签:语句 SHOW 数据库 MySQL 基础 #### sql mysql Mysql

MySQL 数据库知识

  • 基本概念

  • MySQL 搭建

  • SQL 语句编写

  • 约束

  • 索引

  • 事务

  • 锁机制

  • 设计数据库表

  • 性能优化

    学习建议

    其中,SQL 语句编写设计数据库表 这两个能力一定要有!

    比如让你做一个学生管理系统,你要能想到需要哪些表,比如学生表、班级表;每个表需要哪些字段、字段类型。

    这就要求大家多写 SQL、多根据实际的业务场景去练习设计能力。

    经典面试题

    1. MySQL 索引的最左原则
    2. InnoDB 和 MyIsam 引擎的区别?
    3. 有哪些优化数据库性能的方法?
    4. 如何定位慢查询?
    5. MySQL 支持行锁还是表锁?分别有哪些优缺点?

入门

mysql 入门随便找一个教程就可以了,我看的是《mysql必知必会》这本书,跟着书敲代码即可,感觉几天时间就可以快速刷完了,反正命令不用死记硬背,需要用的时候,翻开书本会用就行了。

后面去刷一刷 sql 的练习题,例如去 牛客网把 sql 相关的几十道练习题安排了,就大致都记住了(链接直达:https://www.nowcoder.com/ activity /oj?tab=1)。

入门阶段最重要的就是要大致知道 mysql 有哪些关键字,还有就是关键字之间的执行顺序,例如像 join,have, order by ,聚合函数等等。

使用的时候,得知道他们之间的知识顺序,对于功能,知道个大概就行,之后要多练习,否则很容易一问三不知,至于去那里练习,我上面已经跟大家说了对应的练习网站了。

不过面试的话,其实面试大部分问的都是「原理」相关,而《mysql必知必会》这本书,就真的只是让你来使用 sql 而已,原理讲的比较少,单单只会用 sql,是无法应付面试的,所以我们必须学习一些相关原理。

进阶

数据库⼀般主流的有 MySQL 和 Oracle,不过建议⼤家学习 MySQL 了,因为⼤部分公司都是使⽤ MySQL,也是 属于⾯试必问,⽽且⼯作中 MySQL 也是接触的最多的,毕竟⼯作 crud 才是常态。

下⾯这些是我认为⽐较重要的知识点:

1、⼀条 sql 语句是如何执⾏的?也就是说,从客户端执⾏了⼀条 sql 命令,服务端会进⾏哪些处理?(例如验证身 份,是否启⽤缓存啥的)。 2、索引相关:索引是如何实现的?多种引擎的实现区别?聚族索引,⾮聚族索引,⼆级索引,唯⼀索引、最左匹 配原则等等(⾮常重要)。

3、事务相关:例如事务的隔离是如何实现的?事务是如何保证原⼦性?不同的事务看到的数据怎么就不⼀样了? 难道每个事务都拷⻉⼀份视图?MVCC 的实现原理(重要)等等。

4、各种锁相关:例如表锁,⾏锁,间隙锁,共享锁,排他锁。这些锁的出现主要是⽤来解决哪些问题?(重要)

5、⽇志相关:redolog,binlog,undolog,这些⽇志的实现原理,为了解决怎么问题?⽇志也是⾮常᯿要的吧, ⾯试也问的挺多。

6、数据库的主从备份、如何保证数据不丢失、如何保证⾼可⽤等等。

7、⼀些故障排查的命令,例如慢查询,sql 的执⾏计划,索引统计的刷新等等。

对于 2-4 这四个相关知识,⾯试被问到的频率是最⾼的,有时候⾯试会让你说⼀说索引,如果你知道的多的话就可 以疯狂扯⼀波了,

书籍:《MySQL必知必会》和咱们星球⾥的 MySQL实战45讲:MySQL实战45讲

《MySQL技术内幕:InnoDB存储引擎》

连接

005查看MySQL服务

任务管理器的MySQL

006启动和关闭服务

net stop 服务名称

net start 服务名称

007登录mysql数据库服务器

1.mysql-h 主机名-P端口-u用户名-p密码
2.登录前,保证服务启动

p-》 3306

使用bin目录下的mysq1.exe命令来连接mysq1数据库服务器

mysql -u root -phsq

连接到Mysq服务(Mysq|数据库)的指令

mysql-h 主机IP -P 端口 -u 用户名 -p密码(p与密码没空格)

如果没写主机、端口,取默认值,在实际工作中,端口名往往会修改

mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

密码错误

选择数据库

USE关键字

use DATABASE_NAME;
输出:Database changed

了解数据库

  1. 显示可用数据库列表

SHOW DATABASES;

  1. 显示本数据库内的表的名称

SHOW TABLES;

也可以用来显示表列

SHOW COLUMNS FROM TABLE_NAME;
对每个字段返回一行,行中包含字段名/数据类型/是否允许null/键信息/默认值以及其他信息(如字段cusr_id的auto_increment)

DESXTIBE TABLE_NAME;
显示表列的快捷方式

  1. 其他SHOW语句
  • SHOW STATUS, 用于显示广泛的服务器状态信息
  • SHOW CREATE DATABASE和SHOW CREATE TABLE, 分别用来显示创建特定数据库或者表的MySQL语句;
  • SHOW GRANTS,用来显示授予用户(所有用户或特定用户)的安全权限
  • SHOW ERRORS 和SHOW WARNINGS,用来显示服务器错误或者警告信息
  • HELP SHOW,显示允许的SHOW语句
点击查看代码
For information about MySQL products and services, visit:
http://www.mysql.com/
For developer information, including the MySQL Reference Manual, visit:
http://dev.mysql.com/
To buy MySQL Enterprise support, training, or other products, visit:
https://shop.mysql.com/

List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
?         (\?) Synonym for `help'.
clear     (\c) Clear the current input statement.
connect   (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
ego       (\G) Send command to mysql server, display result vertically.
exit      (\q) Exit mysql. Same as quit.
go        (\g) Send command to mysql server.
help      (\h) Display this help.
notee     (\t) Don't write into outfile.
print     (\p) Print current command.
prompt    (\R) Change your mysql prompt.
quit      (\q) Quit mysql.
rehash    (\#) Rebuild completion hash.
source    (\.) Execute an SQL script file. Takes a file name as an argument.
status    (\s) Get status information from the server.
tee       (\T) Set outfile [to_outfile]. Append everything into given outfile.
use       (\u) Use another database. Takes database name as argument.
charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings  (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
resetconnection(\x) Clean session context.
点击查看代码
有关MySQL产品和服务的信息,请访问:
http://www.mysql.com/
有关开发人员信息,包括MySQL参考手册,请访问:
http://dev.mysql.com/
要购买MySQL Enterprise支持、培训或其他产品,请访问:
https://shop.mysql.com/
所有MySQL命令的列表:
请注意,所有文本命令都必须位于第一行,并以“;”结尾
?  	 	 (\?)“帮助”的同义词。
clear		(\c)清除当前输入语句。
connect		(\r)重新连接到服务器。可选参数为db和host。
delimiter 	(\d)设置语句分隔符。
ego			(\G)向mysql服务器发送命令,垂直显示结果。
exit			(\q)退出mysql。与退出相同。
go			(\g)将命令发送到mysql服务器。
help			(\h)显示此帮助。
notee			(\t)不要写入outfile。
print			(\p)打印当前命令。
prompt		(\R)更改您的mysql提示符。
quit		(\q)退出mysql。
rehash	(\#)重新生成完成哈希。
source		(\.)执行SQL脚本文件。将文件名作为参数。
status		(\s)从服务器获取状态信息。
tee		(\T)设置输出文件[to_outfile]。将所有内容附加到给定的外文件中。
use		(\u)使用另一个数据库。将数据库名称作为参数。
charset	(\C)切换到另一个字符集。可能需要处理具有多字节字符集的binlog。
warnings	(\W)在每条语句后显示警告。
nowarning	(\w)不要在每条语句后都显示警告。
resetconnection	(\x)清除会话上下文。

MySQL数据库-普通表的本质仍然是文件

表的一行称之为一条记录-》在java程序中,一行记录往往使用对象表示

创建数据库

CREATE DATABASE hsp_db01

创建一个使用utf8字符集的hsp db02数据库
CREATE DATABASE hsp_02 CHARACTER SET utf8
创建一个使用utf8字符集,并带校对规则的hsp db03数据库
CREATE DATABASE hsp_db03 CHARACTER SET utf8 COLLATE utf8_bin

校对规则 utf8_bin 区分大小写 默认uft8_general_ci 不区分大小写

查看删除数据库

显示数据库语句:

SHOW DATABASES
显示数据库创建语句:
SHOW CREATE DATABASE db name
数据库删除语句:
DROP DATABASE [IF EXISTS] db name
练习:database02.sql
1.查看当前数据库服务器中的所有数据库
2.查看前面创建的hsp_db01数据库的定义信息
3.删除前面创建的hsp_db01数据库

备份数据库

  • 练习 : database03.sql 备份 hsp_db02 和 hsp_db03 库中的数据,并恢复
  • 备份, 要在 Dos 下执行 mysqldump 指令其实在 mysql 安装目录\bin
  • 这个备份的文件,就是对应的 sql 语句
    mysqldump -u root -p -B hsp_db02 hsp_db03 > d:\bak.sql
    DROP DATABASE ecshop;

错误

Unknown command '\'
当作sql语句在mysql中执行了,得退出到bin目录执行备份语句

恢复数据库(注意:进入 Mysql 命令行再执行)

source d:\bak.sql

  • 第二个恢复方法, 直接将 bak.sql 的内容放到查询编辑器中,执行

备份恢复数据库的表

标签:语句,SHOW,数据库,MySQL,基础,####,sql,mysql,Mysql
From: https://www.cnblogs.com/yimumengke/p/17329349.html

相关文章

  • 喜报!Coremail连续10次入选《中国网络安全行业全景图》
    近日,国内权威媒体安全牛第十版《中国网络安全行业全景图》(以下简称“全景图”)正式发布。全景图共收录456家国内网络安全企业和相关机构,共分为15个一级安全分类,107个二级细分领域。Coremail凭借自身卓越的技术实力,突出的市场表现,完善的服务能力,已经连续十次入选“邮件安全”领域。邮......
  • 万物皆可集成资源包!低代码集成系列一网打尽
    如何花最短的时间、用最少的成本解决客户的企业级应用定制问题?如何满足数据库集成、WebAPI集成、第三方软件集成等需求,在如今万物皆可盘的当下,低代码如何用积木大玩具的方式快速构建各种应用,实现“万物皆可集成”?如果你也面临以上两个问题,是时候体验低代码技术带给你的便捷与高效......
  • 直播预告 | 嵌入式BI如何将数据分析真正融入业务流程
    在信息化高速发展的今天,数据成为企业最有价值的资产之一。而数据本身很难直接传递有价值的信息,只有通过对数据进行挖掘、分析,才能让数据真正成为生产力。商业智能(BI)应运而生,可以帮助企业更好地从数据中提取信息和知识,通过可视化的方式,快速准确地进行报表展现与分析,为企业提供决策支......
  • 建议收藏!数据可视化大屏设计必备步骤
    相信对于从事大数据相关的人员来说,数据的可视化大屏是最能展现自己工作价值的一个途径。可视化大屏就是数据分析的最后成果的展示,而如果能设计出更直观、更酷炫、更具有科技感的大屏,更能获得客户的青睐。那么客户喜欢的究竟是怎样的可视化?类似下图这种的:还是这种的:那好看的,令客户......
  • 为什么负责任的技术始于数据治理
    每个组织都处理数据,但并非每个组织都将其数据用作业务资产。但是,随着数据继续呈指数级增长,将数据视为业务资产正在成为竞争优势。埃森哲的一项研究发现,只有33%的公司“足够信任他们的数据,能够有效地使用它并从中获得价值”。但是,如果您不信任数据的质量,那么就很难根据这些数据做......
  • Java环境与Eclipse SDK安装涉及的环境变量调试,java环境配置
    资源包请自己下载。文本太大,我传到百度了。https://pan.baidu.com/s/1p6aFDOeXWULnK8STdQkwmw  这是地址资源地址小白师从高中老班长祯淮大哥,偷师于网页中的他人经验,因此,先说声谢谢他人的经验分享,为了记录学习过程,方便整理知识,做了以下学习分享。有错请大神指出。 这是我装好的......
  • 【小白新手教程】Ubuntu中安装MongoDB
    本文由葡萄城技术团队于原创并首发转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 分享给小白的操作教程,希望给有需要的人一点帮助。虽然是一个简单的问题,老手可能已经得心应手了,但是作为新手却要研究很久,这里按步骤给大家分享一下如......
  • 活字格性能优化技巧(3):如何巧用CDN提升含页面的访问速度
    本文由葡萄城技术团队于原创并首发转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 上两篇中我们分享了如何利用数据库主键和表格设置默认不加载数据来提升应用系统访问的性能。在本篇中一起来看看如何在活字格中利用CDN技术来提升页面的......
  • 火山引擎 DataLeap 下 Notebook 系列文章一:技术选型之路
     更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群Notebook是一种支持REPL模式的开发环境。所谓「REPL」,即「读取-求值-输出」循环:输入一段代码,立刻得到相应的结果,并继续等待下一次输入。Notebook通常使得探索性的开发和调试更加便捷,在Note......
  • 如何在移动端数据可视化大屏实现分析?
    本文由葡萄城技术团队于原创并首发转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。项目想做数据可视化,想同时在PC端、手机端查看数据怎么办?业务主要关心的数据包括:销售数据、业绩达成、同比、环比,各产品销售情况及潜客商机、未来收入预测等......