02>>>配置文件、SQL基本语句

配置文件、SQL基本语句

  在学习之后的内容之前还需补充一个小点:在MySQL中SQL语句的结束符是分号(;)。

 

修改密码与破解密码

修改密码

  在学会如何登陆管理员账号之后便迎来了一个问题:该怎么给账号换个更安全的密码呢?

方法1:

  首先,先用cmd登陆管理员账号。

  随后输入:

set password=password('111');  # 引号中的内容就是新密码。

 

  当然了,用该命令修改的是当前登录用户的密码。

方式2:

  接下来尝试一下极客版的修改方法

mysqladmin -u用户名 -p原密码 password 新密码 

忘记密码如何解决?(仅限本地)

  有时候时间一长,忘记了密码该怎么办?难道只能坐以待毙吗?当然不是,如果是忘记了公司账户的密码,可以直接向管理员申请更改密码。而安装在本地的MySQL还有另一种方法可以解决问题。

1.先停止MySQL服务(以管理员身份运行)

net stop mysql

2.以取消校验授权表的形式启动服务端

mysqld --skip-grant-tables

3.另起一个管理员cmd,登录管理员账号

mysql -uroot -p

4.修改对应用户的密码(去存储用户数据表中修改密码数据)

update mysql.user set password=password(123) where user="root" and host="localhost";

  如显示下图红框中的字样便成功。

5.停止服务并正常启动

  上述步骤完成之后,先要按Ctrl+C或者在cmd中输入"net stop mysql"命令停止MySQL,停止之后再输入"net start mysql"启动。

  当然也可以在服务对话框里找到MySQL服务,右键点击重新启动。

  这时候密码已被替换了,输入旧密码无效,新密码可用。

       这番操作的实质就是绕过校验用户名密码的步骤,直接强行登录。

  需要强调的是,这种方法只有本地可用,若客户端和服务端分离,就没法用这招了。

 

字符编码与配置文件

查看基本信息

  在讲正事之前先缓一下,如果想要查看当前MySQL服务端基本信息应该输入什么命令?

\s

  接下来就会反馈服务器的基本命令,现在需要注意到一个问题

  服务端和数据库用的是latin1编码,而客户端用的却是gbk编码。两端不一样,如果贸然存储数据势必会引发乱码现象。

  所以需要统一使用一种编码,就选用现在通行的utf8码好了。

配置文件

  打开mysql文件的根目录,可以看到那个叫my-defalut.ini的默认配置文件。

  .ini就是就是典型的配置文件后缀,另外还有.xml等后缀。

  通过修改.ini文件,我们就可以设置MySQL的许多属性,包括统一字符编码。

  双击打开它,能看见一行全大写的警告语

  MySQL默认的配置文件不要去修改,贸贸然改动可能会引发杯具性后果。如果想修改配置,可以拷贝一份再做修改。

  之后打开用来修改的配置,在里面写入几行配置命令。

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

  写好后保存退出,完事后记得一定要重启服务端

  然后调出基本信息来看看:

  全部统一成了utf8码,妈妈再也不用担心文件会乱码了!

 

基本SQL语句

  接下来终于可以讲到基本语句了。

  首先,先了解一个概念,CURD增删改查

  CURD就是四个英语单词的缩写:创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)

  打开淘宝,它会给你推荐很多商品,这便是查询数据,也就是读取(Retrieve)。

  挑中了想要的商品便下单购买,于是支付宝中的用户余额就减去了相应的金额,这就是修改数据,即更新(Update)。

  不想剁手,并且以后也不想用淘宝了,删号删端还我六根清净,这就是删除数据,字面意义的删除(Delete)。

  没几天又后悔了,把淘宝应用下载回来又注册一个新账号,注册账号就是创建数据,即创建(Create)。

  不光是淘宝,所有软件的底层运作逻辑都是这样,程序员的工作也是围绕着这四个基础功能展开。

  了解了CURD,现在就可以从外到里来学习一下有哪些语句。

针对库

1.查

show databases;  # 查看所有的数据库名称

  显示出五个库,也就是五个文件夹,打开data文件夹对照着看一下:

       五比四,少了information_schema,因为他保存在内存中,所以data目录里没有。

  如果想要查看指定的库,可以下面这条语句:

show create database db1;  # 查看指定的数据库

2.增

  若想要创建新的库,可以用下面的语句:

create database joe;  #创建新数据库(joe)

3.改

  想要修改库使用的字符编码,可以:

alter database joe charset='gbk';  # 修改指定的数据库(joe)编码为gbk

       之后再查看一下数据库joe:

4.删

  如果想删掉某个数据库,使用该语句:

drop database joe;  #删除指定的数据库(joe)

 

 

  注意:不要删除系统自带的库!!!

针对表

如何查看当前在哪个库下?

  在操作表之前,首先要知道自己现在在那个库下。

select database();

  显示null表示目前在data目录。

如何切换数据库?

  知道了自己在哪,那么操作起来就方便了,不过应该怎么切换库呢?

  如果是直接打开文件,鼠标双击就可以了,在MySQL里就要稍微复杂点。

use 数据库名; # 切换至该数据库

  现在可以说表的语句了。

1.查

  概览库下的所有文件
show tables;  # 查看某个库下所有的表名(只显示名称,多个同名不同格式的文件只显示一个)

  可以看见,文件夹中显示的项目数量和MySQL中显示的对不上。

  这是因为该命令只显示名称不显示后缀名,表内如果有多个同名不同格式的文件,在"show tables"只显示一次。

查看指定的表信息

  这一段需要先了解创建表的语句,所以先看《2.增》

  可以查看一下t2的信息

show create table t2;  # 查看表t2信息

  显示出了文件名、id字段及其数据类型、name字段及其数据类型,还有默认的编码是latin1。

  不过这个命令使用频率不高,更常用的是下一个:

describe t2;  # 用于查看表结构(常用),也可简写为 desc t2;

  该命令会将参数分类排列好,字段都归在Field列,数据类型归在Type列,另外一些参数暂不介绍。

2.增
create table 新表(xx,xx);  # 创建表(必须要有字段名和类型)

  在创建表之前,一定要注意当前在哪个库中。

  来建一个表t2:

create table t2(id int,name char);  # 创建表t2;定义id字段,存储整数;定义name字段,存放char字符类型数据(类似python中的str)
show tabels;  # 查看joe库下所有的表名

  t2赫然在列~

  强调:MySQL是关系型数据库,所以创建表时一定要定义表的结构

3.改

  现在轮到修改表了,先来个简单的,如何修改表内某个字段的类型?

alter table t2 modify 字段名 数据类型;

  如果想要把表t2中name字段的数据类型改成varchar类型,则:

alter table t2 modify name varchar(16);  # 将表t2中name字段修改为varchar类型

  红框中的char(1)被替换成了varchar(16),替换成功。

4.删

  最后自然是删数据。

drop table t2;  # 删除表t2

  这时候去文件夹里寻找t2的话就会发现已经删除了。

  同样的,不要删除系统自带库中的表,不然可能会引发各种问题。

针对记录

  现在是数据化时代,最值钱最重要的资源是数据。而在数据库中,含金量最高的就是记录。

  首先需要明确一点,是先有库和表,随后才有数据

       在使用数据库时,最好使用自己创建的文件夹,默认自带的不要动。

1.查

  首先创建一个新的库db1,然后在里面创建新的表ti,最后在里面输入一些数据。

create database db1;  # 创建库db1
use db1;  # 切换至库db1
create table ti(id int,name varchar(16),pwd int)  # 创建表ti;定义id字段,整数类型;定义name字段,varchar类型;定义pwd字段,整数类型

  接下来就是查看表ti的代码:

select * from 表名;# 查看t1表中所有的数据(*表示所有的字段)

  带入到表中看一下:

  因为表中什么数据都没有,所以自然就反馈empty了。

  这种方式用的不多,更常见的是下面这种方式:

select id,name from ti;  # 查看表ti内指定字段id和name对应的数据

2.增

  既然表是空的,那么我们应该往里面填充些记录。

insert into ti values(1,'joe',123);  # 插入数据(表中有几个字段就需要插入几条数据)

  然后调取一下看看:

  成功加入数据了。

  需要注意的是,表中定义了多少个字段,添加时就要填写多少个值。

insert into ti values(2,'kevin',456),(3,'tony',789);  # 也可以多段连写

3.改

  现在我想把1号的名字joe改成victor,应该如何做?

update ti set name='victor' where id=1;  #将id为1的name字段改为victor

4.删

  现在又到了大快人心的删除时刻!

delete from ti where id=3;  #删除表ti中id为3的这条记录

  3号tony的资料被删除掉了!

  想要玩得更疯一点,还有一条指令:

delete from ti;  # 删除表ti中所有的记录

  正所谓删库跑路,深藏功与名是也!

  当然在岗位上这么玩,肯定是要赔光底裤,落得个刷卡时为零的下场……

posted @ 2021-09-03 00:13  veryjoe  阅读(196)  评论(0)    收藏  举报