mysql服务的基本操作_MySQL基本操作

本文详细介绍了MySQL服务的启动与关闭、图形化与命令行登录方法,包括常见命令如查看版本和数据库操作。还涵盖了SQL语句分类及开发规范,如数据定义、查询、操纵和控制。特别强调了数据库设计的最佳实践与SQL优化技巧。
摘要由CSDN通过智能技术生成

1.1 MySQL 服务1.1.1 启动 / 关闭

图形化操作

在命令行中执行services.msc,打开服务,在服务中找到 MySQL 服务,在左侧或者右击选项中对 MySQl服务进行操作

77d38a76adcedb9a9b46fd13df029b1a.png

b7b3651c84e8ea5a9d8f3b9356e7ac73.png

c725de62c67d35f19a50ff77c00e0c9c.png

命令行操作

打开命令行执行net stop mysql就可以停止 MySQL 服务,但是我这里提示服务名无效,这是因为我的服务名是 MySQL57 不是 MySQL。我就需要执行net stop mysql57

4cafefe35a5db7988be99099726b8624.png

哈?又出错了!这次提示发生系统错误5,这是因为命令行不是以管理员身份打开的,我们已管理员身份打开命令行就 OK 了。

4d7071e323c5e8a279b97a79b12ba434.png

7bc7f9c056ec650caa92b331cd581a7a.png

然后执行net start mysql,就可以启动 MySQL 服务,同理此处的服务名也要和自己的对应,我就执行net start mysql57。perfect,启动成功!

db7659749c3c531b2182da34e7bd9b4b.png1.1.2 登录

? 本地登录

打开命令行执行mysql -u用户名 -p,然后输入密码就可以登录都本地 MySQL 了。

20b48fbbc91c47bc35db86deabceab25.png

? 远程登录

打开命令行执行mysql -h 主机地址 -P 端口 -u用户名 -p,然后输入密码,就可以远程登录 MySQL。-h是 host 指MySQL 所在的 IP 或域名;-P是 port 指 MySQL 服务端口号,注意是大写的 P;-u是 username 指登录 MySQL 服务的用户名;-p是 password 指登录 MySQL 服务的密码,注意是小写的 p。

6af355192fb16b306e99f939325890e0.png

哎!怎么报了个不允许连接ERROR 1130 (HY000): Host '113.97.59.243' is not allowed to connect to this MySQL server。赶紧爬到服务器上,果然没有远程权限。

f528356841d0d04523aea757d0f65061.png

好吧!给他安排上登录 MySQL 服务后执行GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;我执行的是GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;意思就是允许任何 ip 远程登录并且是开放所有权限。再来远程登录一下看看,OK 远程登录成功。

9a7eca7dfa61927534fc30addc52a88c.png

42565764b1295dce42d03dd77338b6b3.png1.2 常见命令1.2.1 查看版本号

打开命令行执行mysql --version,就可以查看当前安装 MySQL 数据库的版本号

cc31a528d311f4d26c4d8fddcaf7e539.png

登录 MySQL 后可以执行select version();来查看当前使用数据库版本号

586d133f4cdaec84466223815dc82af6.png1.2.2 数据库操作

? 查询所有数据库

登录 MySQL 后执行show databases;就可以查询出该数据库中所有的库。注意:MySQL 语句后要加;否则认为该语句未完结。

eede5a1d70956c616ff290125bb79ae0.png

? 使用数据库

登录 MySQL 后执行use 数据库名就可以使用该数据库。

0373d76050923b7e952c0afc425c57af.png

查看数据库中所有的表

使用某个数据库后,执行show tables;就可以查看当前使用的数据库中所有的表。

1021b234633ca3b2fd7e6f19bc6f0067.png1.3 MySQL 规范1.3.1 语法规范

① 不区分大小写,但建议关键字大写,表名、列名小写

② 每条命令要用英文分号结尾

③ 每条命令根据需要,可以进行缩进或换行

④ 单行注释:# 注释文字或者-- 注释文字;多行注释:/* 注释文字 */

1.3.2 开发规范

? 建表规约

① 表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint(1 表示是,0 表示否)。

② 表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。(MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。因此,数据库名、表名、字段名,都不允许出现任何大写字母,避免节外生枝)

③ 表名不使用复数名词。表名应该仅仅表示表里面的实体内容,不应该表示实体数量,对应于 DO 类名也是单数形式,符合表达习惯。

④ 禁用保留字,如 desc、range、match、delayed 等,请参考 MySQL 官方保留字。

⑤ 小数类型为 decimal,禁止使用 float 和 double。

⑥ 如果存储的字符串长度几乎相等,使用 char 定长字符串类型。

⑦ varchar 是可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长度大于此值,定义字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索引效率。

⑧ 单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。

? SQL语句规约

① 不要使用 count(列名)或 count(常量)来替代 count(*),count(*)是 SQL92 定义的标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。count(distinct col) 计算该列除 NULL 之外的不重复行数,注意 count(distinct col1, col2) 如果其中一列全为 NULL,那么即使另一列有不同的值,也返回为 0。

② 当某一列的值全是 NULL 时,count(col)的返回结果为 0,但 sum(col)的返回结果为NULL,因此使用 sum()时需注意 NPE 问题。

③ 使用 ISNULL()来判断是否为 NULL 值。

④ 代码中写分页查询逻辑时,若 count 为 0 应直接返回,避免执行后面的分页语句。

⑤ 不得使用外键与级联,一切外键概念必须在应用层解决。

⑥ 禁止使用存储过程,存储过程难以调试和扩展,更没有移植性。

⑦ 数据订正(特别是删除或修改记录操作)时,要先 select,避免出现误删除,确认无误才能执行更新语句。

⑧ in 操作能避免则避免,若实在避免不了,需要仔细评估 in 后边的集合元素数量,控制在 1000 个之内。

1.4 SQL 语句分类

分类

说明

DDL

数据定义语言(Data Definition Language),用来操作数据库、表

DQL

数据查询语言(Data Query Language),用来查询表中数据

DML

数据操纵语言(Data Manipulation Language),用来增删改表中数据

DCL

数据控制语言(Data Control Language),用来控制数据库的访问权限以及创建用户

TCL

事务控制语言(Transaction Control Language),用作事务控制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值