MySql简单认识和操作

一.  mysql介绍:

查看数据库排名:  https://db-engines.com/en/ranking

当前使用的数据库,主要分为两类:

文档型,如sqlite,就是一个文件,通过对文件的复制完成数据库的复制

o 服务型,如mysql、postgre,数据存储在一个物理文件中,但是需要使用终端以tcp/ip协议连接,进行数据库的读写操作   

 关系型数据库MySQL,非关系型数据库MongoDB, Redis三天研究完。谈一下存储引擎,数据库中的存储引擎其实是对使用了该引擎的表进行某种设置,数据库中的表设定了什么存储引擎,那么该表在数据存储方式、数据更新方式、数据查询性能以及是否支持索引等方面就会有不同的“效果”。在MySQL数据库中存在着多种引擎(不同版本的MySQL数据库支持的引擎不同),熟悉各种引擎才能在软件开发中应用引擎,从而开发出高性能的软件,MySQL数据库中的引擎有哪些呢?一般来说,MySQL有以下几种引擎:ISAM、MyISAM、HEAP、InnoDB、 Berkeley 等,除此以外我们也可以参照MySQL++ API创建自己的数据库引擎。剩下的需要继续深入研究了。

二.安装/启动服务/登陆:

安装mysql-server服务端:  

 

sudo apt-get install mysql-server

安装mysql-client客户端:

 
  1. sudo apt-get install update

  2. sudo apt-get install mysql-client

查是否安装成功并且启用:   sudo netstat -tap | grep mysql

启动服务登陆数据库:  service mysql start

登陆MySQL数据库: mysql -u root -p

关闭数据库服务 : service mysql stop  

退出mysql :  

  exit  \  ctrl+d

接着查看当前数据库账户信息  :  

 
  1. use mysql;

  2.  
  3. select user,host from user;

创建一个fenglei用户并赋予权限

grant  all privileges on *.* to fenglei@'%' identified by '123456' with grant option; 

刷新数据库账户权限: flush privileges;

修改用户密码

mysqladmin -u'username' -p123456 password 'aaaaaa'

删除用户 : 

 delete from user where user='username'

mysql备份

mysqldump -u用户名 -p 数据库名 > ~/Desktop/备份.sql

导入备份文件:

来到文件所在目录,执行:

mysqldump -u用户名 -p 数据库名 < ~/Desktop/备份.sql

三.  mysql基本操作:

1. 查看数据库:

show databases;

2. 创建数据库:

create database python;

3. 删除数据库:

drop database python;

4. 创建表:

 
  1. create table tab_name(

  2. id int(10) auto_increment primary key not null,

  3. name varchar(40),

  4. pwd varchar(40)

  5. ) charset=utf8;

5. 查看表的结构:

desc tab_name;

6. 查看表的记录:

select * from tab_name;

7. 删除表:

drop table tab_name;

8. 清空表中内容:

delete from tab_name;

9. 表里插入数据:

 
  1. 全列插入:insert into 表名 values(...);

  2. 缺省插入:insert into 表名(列1,...) values(值1,...);

  3. 同时插入多条数据:insert into 表名 values(...),(...)...;

  4. 或insert into 表名(列1,...) values(值1,...),(值1,...)...;

10.  复杂查询:

 1). 条件查询:
  

select * from students where id>3;
select * from students where id<4 or isdelete=0;
select * from students where name like '黄%' or name like '_靖';
select * from students where id in(1,3,8);
select * from students where id between 3 and 8;
select * from students where id between 3 and 8 and gender=1;
select * from students where hometown is not null and gender=0;

2). 聚合查询:

select max(id) from students where gender=0;
select count(*) from students where gender=1;
select avg(id) from students where isdelete=0 and gender=0; 

3).分组查询:

select isdelete as 是否删除, count(*) from students group by isdelete;
select gender as 性别, count(*) from students group by gender having gender=1; 

4 ). 排序:

select * from students where gender=1 and isdelete=0 order by id desc;  #  选择没有删除的男生,按照id降序排列
select * from subjects where isdelete=0 order by title;  #  按照title排序,默认是升序

5). 分页:

select * from students where isdelete=0 limit (n-1)*m,m  #  每页m条数据,当前显示第n页

猜你喜欢

转载自blog.csdn.net/goaheadneverturnback/article/details/81108808