返回顶部
首页 > 资讯 > 数据库 >MariaDB 使用命令中级篇
  • 578
分享到

MariaDB 使用命令中级篇

2024-04-02 19:04:59 578人浏览 泡泡鱼
摘要

目录:        1、Mysql用户账号       

目录:

        1、Mysql用户账号

        2、基本查看命令

        3、关系型数据库常用组件

         4、DDL: Data Defination Language 数据定义语句

                常用命令CREATE, DROP, ALTER使用示例

        5、DML: Data Manipulation Language 数据处理语句

             常用命令INSERT, DELETE, UPDATE使用示例

        6、DCL: Data Control Language 数据控制语句

             常用命令GRANT, REVOKE使用示例

        7、DQL: Data Query Language 数据查询语句

              常用SELECT使用示例

        8、数据类型

        9、定义表的修饰符

       10、索引



1、mysql用户账号

     ① 账号由两部分组成: 'USERNAME'@'HOST'
     HOST用于限制此用户可通过哪些远程主机连接mysql服务
     ② mysql选项:
             -uUSERNAME: 用户名;默认为root
             -hHOST: 服务器主机; 默认为localhost
             -pPASSWord:用户的密码;建议使用-p,默认为空密码
     ③ 支持使用通配符:
            % 匹配任意长度的任意字符
                      172.16.0.0/16 或 172.16.%.%
             _ 匹配任意单个字符

2、基本查看命令

     ① show databases;  
          等同于show schemas;    #查看数据库列表
     ② select user();         #查看登录用户
     ③ help [命令]   # 查看命令用法每个命令都完×××式和简写格式,mariadb内置命令非sql语句命令可不加“;”结尾
                 例:status 或 \s
                        help create database
                        help alter table
     ④ 查看支持所有字符集:show character set;
     ⑤ 查看支持所有排序规则: show collation;
     ⑥ 查看支持的引擎: show engines;
     ⑦ 查看表: show tables [FROM db_name];
     ⑧ 查看表结构: desc [db_name.]tb_name;
     ⑨ 查看表上的索引: show indexes from [db_name.]tbl_name;

3、关系型数据库常用组件

    数据库: database
    表: table
            行: row
            列: column
    索引: index
    视图: view
    用户: user
    权限: privilege
    存储过程: procedure,过程无返回值
    存储函数: function,过程有返回值
    触发器: trigger
    事件调度器: event scheduler,任务计划

4、DDL: Data Defination Language 数据定义语句

       用于管理数据库列表。常用命令CREATE, DROP, ALTER

    ① 创建数据库
        create database/schema [IF NOT EXISTS]“数据库名” 
    ②  删除数据库        
        drop database/schema [IF EXISTS]“数据库名”
    ③ 创建表单
        create table [IF NOT EXISTS] ‘tbl_name’ (col1 type1修饰符, col2 type2 修饰符, ...)

例:

create table students (id int unsigned not null primary key,name varchar (20) not null,age tinyint unsigned);
# id int unsigned    id, 定义非负数整型
# not null           不允许为空
# primary key          作为主键
# name varchar (20)         可变字符串,显示20位
# not null          不允许为空
# age tinyint unsigned      年龄,最小非负数整
cretae table test select * from students; 
    #以students表为模板创建test表,两张表相同内容
cretae table test select * from students where 1=0; 
    #跟一个不成立的条件可只复制表结构,不复制表内容
    ④ 删除表
        drop table [IF EXISTS] tb_name;
    ⑤修改表 :alter table 'tbl_name'
      字段:
            添加字段: add
            add col1 data_type [FIRST|AFTER col_name]
            删除字段: drop
            修改字段:
            alter(默认值) , change(字段名) , modify(字段属性)
    索引:
            添加索引: add
            删除索引: drop

例:

alter table students RENAME s1;               #表单改名
alter table s1 ADD phone varchar(11) AFTER name;     #表单在name后面增加字段
alter table s1 MODIFY phone int;              #修改表单字段数据类型
alter table s1 CHANGE [COLUMN] phone mobile char(11); #修改表单字段名称
alter table s1 DROP [COLUMN] mobile;                 #删除列
alter table students ADD gender ENUM('m','f')         #添加字段gender,枚举只能是m或者f
alter table students CHANGE id sid int UNSIGNEDNOT NULL PRIMARY KEY; #将id字段改名为sid,并修改字段类型
alter table students ADD UNIQUE KEY(name);            #修改字段为唯一键
alter table students ADD INDEX(age);                   #修改字段为索引
alter table students DROP age;                          #删除age字段

5、DML: Data Manipulation Language 数据处理语句

      用于管理表单中数据内容,常用命令INSERT, DELETE, UPDATE

    ① INSERT语法:

INSERT [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} (val1,...),(...),...

例:

insert  students values (1,'mage',18);   #未指明字段,需按顺序填写
insert students(name,id)values('niu',2);
insert students(name,id)values('niu',2),('ma',3),('yang',4); #可加多条记录
insert into test2 select id,name from students; #将students的两个字段导入test2表,两张表对应字段数据类型应一致


    ② UPDATE语法:

UPDATE tbl_name SET col1=val1, col2=val2, ...[WHERE clause] [ORDER BY 'col_name' [DESC]][LIMIT [m,]n];

例:

update students set age=20 where id=2;

    ③ DELETE语法:

DELETE FROM tbl_name [WHERE clause] [ORDER BY 'col_name' [DESC]] [LIMIT [m,]n]; #LIMIT [m,]n表示跳过前m个,只去处理后n个

例:

delete from students where id=2;

    ④ 清空表内容(不记录日志,速度快):

TRUNCATE TABLE tbl_name;

6、DCL: Data Control Language 数据控制语句

       用于管理用户权限,常用命令GRANT, REVOKE

 创建用户: CREATE USER 'username'@'host' [IDENTIFIED BY 'password'];
 删除用户: DROP USER 'username'@'host'; 
 更改口令三种方法:
1) SET PASSWORD FOR 'user'@'host' = PASSWORD(‘password');  #推荐使用改口令方法
2) UPDATE user SET password=PASSWORD('magedu')WHERE User='root' ; 
   注意:方法2修改表的命令不会马上生效,需执行FLUSH PRIVILEGES生效 
3) /usr/local/mysql/bin/mysqladmin -u root –poldpassword password 'newpassword‘  #shell中更改方法
授权语法:GRANT priv_type,... ON [object_type] db_name.tb_name TO 'user'@'host' [IDENTIFIED BY 'password'] [WITH GRANT OPTION]; 
示例:
GRANT SELECT,DELETE on testdb.* TO 'testuser'@'%'IDENTIFIED BY 'testpass‘;  #授权并创建用户
grant select on wangdb.* to 'wang'@'172.16.%.%'
回收授权:REVOKE priv_type, ... ON db_name.tb_name FROM 'user'@'host
示例:
REVOKE DELETE ON testdb.* FROM 'testuser'@'%‘

    注意: MariaDB服务进程启动时会读取mysql库中所有授权表至内存
        (1) GRANT或REVOKE等执行权限操作会保存于系统表中, MariaDB的服务进程通常会自动重读授权表,使之生效
        (2) 对于不能够或不能及时重读授权表的命令,可手动让MariaDB的服务进
程重读授权表: mysql> FLUSH PRIVILEGES;

7、DQL: Data Query Language 数据查询语句

        用于查看数据内容,常用SELECT

① 语法:SELECT col1,col2,... FROM tbl_name [WHERE clause] [ORDER BY 'col_name' [DESC]] [LIMIT [m,]n];
② 字段表示法:
        *: 所有字段
        as:字段别名, col1 AS alias1
③ WHERE clause:
    操作符:
        >, <, >=, <=, ==, !=
        BETWEEN ... AND ...
        LIKE:
            %:任意长度的任意字符
            _:任意单个字符;
        RLIKE:正则表达式模式匹配
        IS NULL , IS NOT NULL
        IN (val1,val2,…)
    条件逻辑操作:
        and, or, not

例:

select id 编号,name 名字 from students order by name ;  
    #使用别名显示id,name。以name列顺序显示,在name后加desc表示倒序排(不加默认asc正序排)
select id,name from students where name is null;
select * from test2 where name like "%a%";      #查看test表中包含a的所有信息
select * from test where id in (1,3,5);         #查看表中id为1或3或5的所有信息
select * from test where id >=2 and id <=5;
select * from test where id between 2 and 5;  #必须小数在前大数在后
select * from test where id != 2;
select * from test where id <> 2; #查看id不为2的所有信息
select test.name from test ,test2 where test.name=test2.name; #查找test表和test2表中name字段内容相同的name信息
内连接(取交集):
select bj.name from bjcai as bj INNER JOIN zhengzhoucai as zz ON bj.name=zz.name and zz.id=3;


8、数据类型分类及选取原则

    8.1MySql支持多种列类型:

    数值类型
    日期/时间类型
    字符串(字符)类型

    8.2选择正确的数据类型对于获得高性能至关重要,三大原则:

  •  更小的通常更好,尽量使用可正确存储数据的最小数据类型

  •  简单就好,简单数据类型的操作通常需要更少的CPU周期

  •  尽量避免NULL,包含为NULL的列,对MySQL更难优化
           
           

    8.3数值类型

㈠、整型
tinyint(m)
1个字节 范围(-128~127)
smallint(m) 2个字节 范围(-32768~32767)
mediumint(m) 3个字节 范围(-8388608~8388607)
int(m) 4个字节 范围(-2147483648~2147483647)
bigint(m) 8个字节 范围(+-9.22*10的18次方)

    √ 取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~255)
    √ int(m)里的m是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围
    √ MySQL可以为整型类型指定宽度,例如Int(11),对绝大多数应用这是没有意义的:它不会限制值的合法范围,只是规定了MySQL的一些交互工具(例如MySQL命令行客户端)用来显示字符的个数。

对于存储和计算来说, Int(1)和Int(20)是相同的。

㈡、浮点型(float和double),近似值

float(m,d) 单精度浮点型 8位精度(4字节) m总个数, d小数位

double(m,d) 双精度浮点型 16位精度(8字节) m总个数, d小数位

设一个字段定义为float(6,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位。


㈢、定点数
    在数据库中存放的是精确值,存为十进制
    decimal(m,d) 参数m<65 是总个数, d<30且 d<m 是小数位
    MySQL5.0和更高版本将数字打包保存到一个二进制字符串中(每4个字节存9个数字)。例如, decimal(18,9)小数点两边将各存储9个数字,一共使用9个字节:小数点前的数字用4个字节,小数点后的数字用4个字节,小数点本身占1个字节。
    浮点类型在存储同样范围的值时,通常比decimal使用更少的空间。 float使用4个字节存储。 double占用8个字节。
    因为需要额外的空间和计算开销,所以应该尽量只在对小数进行精确计算时才使用decimal——例如存储财务数据。但在数据量比较大的时候,可以考虑使用bigint代替decimal。

㈣、字符串(char,varchar,_text)

    char(n) 固定长度,最多255个字符。如存储三个字符剩余会补齐至n个字符,字符长度统一访问查找速度较快。
    varchar(n)可变长度,最多65535个字符。存储几个字符就占几个字符。
    tinytext 可变长度,最多255个字符
    text 可变长度,最多65535个字符
    mediumtext 可变长度,最多2的24次方-1个字符
    longtext 可变长度,最多2的32次方-1个字符
    BINARY(M) 固定长度,可存二进制或字符,允许长度为0-M字节,
    VARBINARY(M) 可变长度,可存二进制或字符,允许长度为0-M字节

内建类型: ENUM枚举, SET集合

char和varchar:
    1.char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格, varchar不限于此。
    2.char(n) 固定长度, char(4)不管是存入几个字符,都将占用4个字节, varchar是存入的实际字符数+1个字节(n< n>255),所以varchar(4),存入3个字符将占用4个字节。
    3.char类型的字符串检索速度要比varchar类型的快
varchar和text(推荐不使用):
    1.varchar可指定n, text不能指定,内部存储varchar是存入的实际字符数+1个字节(n< n>255), text是实际字符数+2个字节。
    2.text类型不能有默认值
    3.varchar可直接创建索引, text创建索引要指定前多少个字符。varchar查询速度快于text

㈤.二进制数据: BLOB(推荐不使用)
    BLOB和text存储方式不同, TEXT以文本方式存储,英文存储区分大小写,而Blob是以二进制方式存储,不分大小写
    BLOB存储的数据只能整体读出
    TEXT可以指定字符集, BLOB不用指定字符集
㈥.日期时间类型

date 日期 '2008-12-2'
time 时间 '12:25:36'
datetime 日期时间 '2008-12-2 22:06:44'
timestamp 自动存储记录修改时间
YEAR(2), YEAR(4):年份
若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,这个数据类型的字段可以存放这条记录最后被修改的时间。


9、定义表的修饰符

#所有类型:
NULL 数据列可包含NULL值
NOT NULL 数据列不允许包含NULL值
DEFAULT 默认值
PRIMARY KEY 主键
UNIQUE KEY 唯一键
CHARACTER SET name 指定一个字符集
#数值型
AUTO_INCREMENT 自动递增,适用于整数类型
UNSIGNED 无符号

10、索引

    索引是特殊数据结构;定义在查找时作为查找条件的字段。优点:提高查询速度。缺点:占用额外空间,影响插入速度。创建索引必须要有索引名称
创建索引:

create INDEX index_name ON tbl_name (index_col_name,...);  #指定一个或多个列建立名为index_name的索引
help CREATE INDEX

删除索引:

drop INDEX index_name ON tbl_name;

查看索引:

show INDEXES FROM [db_name.]tbl_name;





    

您可能感兴趣的文档:

--结束END--

本文标题: MariaDB 使用命令中级篇

本文链接: https://lsjlt.com/news/37155.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MariaDB 使用命令中级篇
    目录:        1、mysql用户账号       ...
    99+
    2024-04-02
  • MariaDB FLUSH TABLES命令只关闭未使用的表
    例会话一select id,sleep(60) from t1;因未执行完,t1表持有METADATA LOCK(MDL)元数据锁会话二FLUSH TABLES;在MariaDB 10.4 版本以...
    99+
    2024-04-02
  • Linux中more命令高级使用方法有哪些
    这篇文章给大家分享的是有关Linux中more命令高级使用方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一...
    99+
    2023-06-27
  • mysql 常用的命令之用户篇
    新建用户: create user 用户名;                      ...
    99+
    2024-04-02
  • 用于Linux中MySQL/MariaDB安全实践的命令有哪些
    这篇文章将为大家详细讲解有关用于Linux中MySQL/MariaDB安全实践的命令有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 MySQL 是世界上最流行的开源数据库系统,MariaD...
    99+
    2023-06-10
  • docker常用命令解读之volume篇
    目录1、docker volume方式2、Volume的基本使用2.1 管理卷2.2 创建使用指定卷的容器2.3 清理卷3、Bind Mounts的基本使用3.1 使用卷创建一个容器...
    99+
    2023-03-09
    docker常用命令 docker volume docker命令
  • Python升级导致yum命令不能使用
    错误信息如下:[root@bjzw-mcu01-x86p-app01 ~]# yum -y updateThere was a problem importing one of the Python modulesrequired to r...
    99+
    2023-01-31
    命令 Python yum
  • 怎么在dos命令行中使用choice命令
    这期内容当中小编将会给大家带来有关怎么在dos命令行中使用choice命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Choice 命令使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加...
    99+
    2023-06-08
  • zip命令怎么在dos命令行中使用
    本篇文章为大家展示了zip命令怎么在dos命令行中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。常用方式:-o (set Output directory) switchSpecifies a ...
    99+
    2023-06-08
  • 如何使用Linux find命令中-path -prune命令
    这篇文章主要介绍“如何使用Linux find命令中-path -prune命令”,在日常操作中,相信很多人在如何使用Linux find命令中-path -prune命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对...
    99+
    2023-06-13
  • 在CentOS系统中怎么使用yum命令升级插件
    本篇内容主要讲解“在CentOS系统中怎么使用yum命令升级插件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在CentOS系统中怎么使用yum命令升级插件”吧!服务器的安全升级却是必须的,所以...
    99+
    2023-06-10
  • MySQL如何从5.5升级到8.0(使用命令行升级)
    目录准备1、下载要安装的mysql版本2、配置环境变量3、添加配置文件安装1、卸载MySQL5.52、安装新的MySQL8.0总结谁没事想重装数据库啊 学到了数据库原理,实验作业里面有新建角色的SQL语句,但是我打上去运...
    99+
    2023-03-06
    mysql5.0升级到8.0 mysql版本升级 如何升级mysql
  • mariadb常用的客服端及其服务端命令
    一、安装MariaDB及其配置步骤   1)创建存放数据目录及其用户mkdir -pv /mydata/datagroupadd -r mysql   useradd...
    99+
    2024-04-02
  • 实用工具mycli:MySQL、MariaDB 和 Percona 的命令行界面
    mycli 是默认的 MySQL 客户端的现代替代品,mycli 将在你输入时自动补全关键字、表名、列和函数。HomePage: http://mycli.net 使用效果如下:RHEL, Centos安装...
    99+
    2024-04-02
  • Linux中级用户常用的命令有哪些
    这篇文章主要为大家展示了“Linux中级用户常用的命令有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中级用户常用的命令有哪些”这篇文章吧。21. 命令: Find搜索指定目录下的...
    99+
    2023-06-16
  • Linux中mv命令的高级用法示例
    前言 mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是linux系统下常用的命令,经常用来备份文件或者目录。 命令格式: mv [选项] 源文件或目录 目标文件或...
    99+
    2022-06-04
    linux mv命令用法 linux最常用命令 linux mv命令
  • tar命令与rpm命令怎么在linux中使用
    tar命令与rpm命令怎么在linux中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一. tar  1.压缩一组文件为tar.gz后缀。  # tar...
    99+
    2023-06-13
  • 怎么在CMD命令行中使用管道命令
    本篇文章为大家展示了怎么在CMD命令行中使用管道命令,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、什么是管道命令  管道命令能够将一个命令的执行结果经过筛选,只保留我们需要的信息。  如 dir...
    99+
    2023-06-08
  • Linux系统中ps命令和gitps命令的使用
    本篇内容介绍了“Linux系统中ps命令和gitps命令的使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!psps [-aAcdefHjl...
    99+
    2023-06-12
  • Linux中rz命令和sz命令的使用方法
    这篇文章主要介绍“Linux中rz命令和sz命令的使用方法”,在日常操作中,相信很多人在Linux中rz命令和sz命令的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux中rz命令和sz命令的使...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作