千家信息网

MariaDB 使用命令中级篇

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,目录:1、mysql用户账号2、基本查看命令3、关系型数据库常用组件4、DDL: Data Defination Language 数据定义语句常用命令CREATE, DROP, ALTER使用示例5
千家信息网最后更新 2025年11月07日MariaDB 使用命令中级篇

目录:

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或者falter 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且 dMySQL5.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集合

charvarchar
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;





数据 字符 字段 类型 字节 存储 索引 命令 长度 数据库 用户 常用 范围 小数 语句 时间 可变 个数 内容 字符串 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 安卓网络技术有限公司 服务器的数据库用什么软件 网络安全的十大方针 如何把管家婆数据库放在云端 卫星软件开发价格 软件开发的系统设计分为 全国网络安全宣传周活动主题 网络安全伴我行远程办公有风险 数据库做乘法运算 思科企业网络安全市场 假期安全及网络安全教育 我的世界圣诞版的服务器 杭州网络安全测评公司 诚信经营桌面共享软件开发 ads2021服务器无法打开 数据库技术在社会生活中 中国顶级域名服务器 中国国家知识专利产权局数据库 计算机网络技术和网络安全区别 数据库监控的方法 公安部网络安全保卫局二处 网络安全学习手册 魔兽世界怀旧服老数据库 网络安全层次体系包括网络层 穿越火线怒火麒麟服务器 工信部信息网络安全员培训 软件开发逻辑导图设计 计算机网络技术+第3版 immediate关闭数据库 网络安全与隐私保护实验室
0