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

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),用作事务控制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值