运维基本功之mariadb基本操作

Posted centos-paul

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维基本功之mariadb基本操作相关的知识,希望对你有一定的参考价值。

mariadb作为mysql数据库的升级改版,最大的不同恐怕要属存储引擎的变更,数据库对于事务的支持,使得热备数据库数据得以实现。本文讨论有关mariadb的基本操作增(insert)/删(delete)/改(update)/查(select);所有操作基于示例来说明。

  例1:MariaDB [m33student]> create table student (id tinyint unsigned primary key, name varchar(20) not null, age tinyint unsigned,sex char(1) default "m" );

      MariaDB [m33student]> desc student;       

+-------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------------+------+-----+---------+-------+
| id | tinyint(3) unsigned | NO | PRI | NULL | |
| name | varchar(20) | NO | | NULL | |
| age | tinyint(3) unsigned | YES | | NULL | |
| sex | char(1) | YES | | m | |
+-------+---------------------+------+-----+---------+-------+

上例演示了建表过程,()内定义了各字段及属性。

若删除刚创建的表student:MariaDB [m33student]> drop table student;

*查看索引(索引的存在极大优化了数据库查询速度,但当新数据插入时,索引降低了插入速度)

  MariaDB [m33student]> show indexes from studentG;(G选项调整了输出效果)

*增加唯一性约束条件

  MariaDB [m33student]> alter table student add unique key (phone);

*删除列

  MariaDB [m33student]> alter table student drop phone;

*创建索引

  MariaDB [m33student]> create index age_index on student(phone);

  例2:MariaDB [m33student]> insert into student (id,name,sex) values (4,‘Sarah‘,‘f‘),(5,‘Mily‘,‘f‘),(6,‘Jack‘,default);

上例演示了同时插入多行的情况。

  例3:MariaDB [m33student]> delete from emp where id=1;

      MariaDB [m33student]> delete from emp;

上例演示了删除表中单行记录以及所有记录。

  例4:MariaDB [m33student]> update student set phone=‘18438613802‘ where id=2;

     MariaDB [m33student]> update emp set phone=‘18438613802‘ ;

上例演示了针对某一行记录的某个字段的改动,以及对整个表“phone”字段的改动。

注意,对于查询操作而言,由于其可能会涉及到多表联查,函数等功能,因此sql语句会复杂一些。

  **查询当前登录的账户:

            MariaDB [hellodb]> select user();

  **查询当前数据库的版本信息:

            MariaDB [hellodb]> select version();

  **查询当前使用的数据库:

            MariaDB [hellodb]> select database();

  例5:MariaDB [hellodb]> select count(*) from scores where score > 50;

      MariaDB [hellodb]> select count(distinct classid) from students;

上例中出现了count函数,count() 返回表中满足where条件的行的数量,如没有Where条件,列出所有行的总数。第二行中count函数中又套用了distinct函数,旨在去除重复值。

  **最大值,最小值,平均值,求和函数的应用分别为:

    select max(score) /min(score)/avg(score)/sum(score) from scores;

  算平均值时,注意null不会参与组函数,所以要先用ifnull将null转为0:MariaDB [hellodb]> select avg(ifnull(score,0)) from scores;

  例6:select courseid,avg(nullif(score,0)) as avg from scores group by courseid having avg>60;

上例中as avg 作为avg(nullif(score,0))的别名设置,可以省略as,执行后将以courseid为分组只显示均值大于的行,字段为courseid,avg。

  **取前6行;取第7,8,9行

    select * from students limit 6;

    select * from students limit 6,3;

 

  **以年龄排序后,显示年龄最大的前10位同学的信息

    MariaDB [hellodb]> select * from students order by age desc limit 10;

 

 

 

        

  

 














以上是关于运维基本功之mariadb基本操作的主要内容,如果未能解决你的问题,请参考以下文章

运维基本功(二十一): 文件共享服务之SAMBA

运维基本功(十九):文件共享服务之FTP解决方案

Zabbix实战之运维篇Zabbi监控平台的web基本操作

Mairadb数据库基本操作之数据管理

运维基本技能之--搭建LNMP架构

mysql基本操作