python之路_初始mysql数据库

一、基本概念

  通常我们说的数据库是指数据库管理系统,通过数据库管理系统实现对数据的增、删、改、查等系列管理,常见的数据库管理系统有:mysql,orcale,db2,mariadb,sql server等,这些为关系型数据库,数据存在磁盘中;而非关系型数据库中数据是以key=value的形式存放,存放在内存之中。

1、记录

  多个字段组成的一条信息,相当于文件中的一行信息。

2、表

  包含多条记录,相当于一个文件。

3、数据库

  包含多个表,相当于一个文件夹。

4、数据库管理系统

  如mysql,用于数据库管理,是一个软件。

5、数据库服务器

  一台计算器(对内存要求很高)。

关系:

  数据库服务器运行数据库管理系统;数据库管理系统管理数据库;数据库组织表;表存放多条记录。

二、mysql的基本使用

1、mysql的安装

2、登录mysql

  'mysql -uroot -p'命令进行管理员身份登录,因为起始未设置密码,故不需要输出密码,直接回车即可登录成功。

3、添加密码

  无密码不安全,通过’mysqladmin -uroot password xxx‘命令进行添加密码操作,其中xxx为添加的密码,添加成功后就可以用'mysql -uroot -pxxx'命令登录。

4、修改密码

  通过'mysqladmin -uroot -pxxx password yyy'命令进行密码修改,其中xxx为原密码,yyy为新密码。

5、查看账户

  在登录状态,通过‘select user();’命令查看登录账户,命令必须以英文分号结束。

6、创建账户

  在登录状态输入如下命令“create user 'xxx'@'可连接限制‘  identified by 'yyy';",可以实现创建账户,其中xxx是用户名,yyy表示密码,具体详解如下:

create user 'egon'@'192.168.32.*' identified by '123';  #表示32网段的都可以连接
  
create user 'egon'@'192.168.32.3' identified by '123';  #表示只有这个ip可以连接

create user 'egon'@'%' identified by '123';             #表示任意用户都可以连接

  ps:创建的用户存放在数据库服务端,供客户端登录连接。

7、远程连接

  在命令行输入指令‘mysql -uxxx -pyyy -h zzz,xxx为用户名,yyy为密码,zzz为被连接主机ip,例如:

mysql -uegon -p123 -h 192.168.11.55

8、为账户授权

  创建出账号以后,对数据库的一些操作权限新账号是没有的,需要在管理员的登录状态下进行账户授权。

(1)对已有账号进行授权

  在管理员登录状态,执行如下命令:“grant all on db1.t1 to 'egon'@'%';”,翻译为:授予 egon@%用户数据库db1中的表t1的相关操作权限;或者输入命令:“grant all on *.* to 'egon'@'%';”,翻译为:授予egon@%用户所有数据库中所有表的相关操作权限。授权完成后须执行命令:“flush privileges;”,来刷新授权,授权生效。

(2)创建账号同时授权

  在管理员登录状态,执行如下命令即可完成创建账号和授权的功能,如命令:grant all on *.* to 'alex'@'%' identified by '123';,完成后同样需要执行命令:flush privileges;

9、查看所有数据库

  在登录状态输入命令:show databases;,查看所有数据库

10、破解密码

(1)杀死mysqld

  以管理员身份运行cmd,执行如下两个命令,以进程的PID方式杀死mysqld服务端,或者以net stop mysql命令结束此进程。

(2)跳过授权表的方式启动mysqld

  继续在命令行中输入如下命令,以跳过授权表的方式启动mysqld服务端

(3)更改密码

  开启一个cmd命令框,启动mysql客户端,执行如下命令,将管理员密码设置成为空,设置后记得刷新授权。

(3)再次杀死mysqld

  按照步骤(1)方式再次杀死mysqld

(4)启动mysqld,并按新密码登录

三、数据库增删改查

  提示:在具有权限的用户的登录状态进行命令操作,所有命令结尾都需有英文的分号。

1、操作库

  ---增

  执行命令:create database xxx charset utf8;,其中xxx为数据库的名字

  --查

  执行命令show databases;查看数据库文件夹,执行命令show create database db1;创建的数据库db1的信息。

  ---改

  执行如下命令alter database db1 charset gbk;执行将数据库db1进行更改的操作,将字符编码更改为gbk的模式。

  ---删

  执行命令drop database db1;执行将数据库db1删除的操作。

 

2、操作表

  在进行表的操作之前,必须切换到一个具体的数据库下,切换数据的命令为:use xxx;,xxx为数据库的名字,用命令select database();命令可以查看当前所在的数据库。

  ---增

  如命令:create table t1(id int,name char(10),age int)engine=innodb default charset utf8; 其中id、name、age为表中数据项目,并且int、char为说明数据的类型,char型需要指明长度,注意括号中的最后一个字段一定不要加逗号。

  ---查

  命令show tables;查看数据库下表的情况,命令show create table t1;查看创建表t1情况,命令desc t1;查看表t1的结构。

  ---改

alter table t1 charset gbk;                     #更改编码格式
alter table t1 add sex char;                    #增加sex数据项目
alter table t1 drop sex;                        #删除sex数据项目
alter table t1 modify sex char(6);              #修改sex的字符长度,但是不能修改sex
alter table t1 change sex Sex char(6);          #将sex修改成Sex,同时修改字符长度

  ---删

  执行命令drop table t1;将删除t1表。

3、操作记录

  ---增

 insert into db1.t1(id,name,age,Sex) values
        (1,'egon1',18,'male'),
        (2,'egon2',28,'male'),
        (3,'egon3',38,'male'),
        (4,'egon4',48,'male');

  执行如上命令,将在db1数据库的t1表格中添加values值,数据的顺序需要和规定顺序一致。

  ---查

  执行命令select name,id from db1.t1;是查看数据库db1下表t1中name和id项目的数据;执行命令select * from db1.t1是查看数据库db1下表t1中的所有项目的数据。

  ---改

  执行命令update db1.t1 set name='alexsb' where id=5;将会符合where条件的name更改为alexsb,条件可以自行选择,若不加where则会将所有的name都会更改。

  ---删

  执行命令delete from db1.t1 where id=3;删除符合条件的整条信息,条件可以自行选择。命令delete from db1.t1; 仅仅只有删除记录的效果,没有把表重置到初始状态的功能;

truncate db1.t1; 命令则是清空+重置

ps;自增

create table t1(id int not null unique auto_increment,name char(4));

insert into db1.t1(name) values
('egon1'),
('egon2'),
('egon3'),
('egon4');

原文地址:https://www.cnblogs.com/seven-007/p/7694034.html