阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MariaDB DML语句及用户授权

104次阅读
没有评论

共计 3346 个字符,预计需要花费 9 分钟才能阅读完成。

DML(Data Manipulation Language):INSERT,DELETE,UPDATE,SELECT

INSERT  [INTO]  tbl_name  [(col1,…)]  {VALUES|VALUE}  (val1, …),(…),…

MariaDB DML 语句及用户授权

假如有上面这张表

插入一行数据:insert students values(1,’xijinping’,51,’zhonglanhai’,’m’);  字符串必须加引号,数字不能加引号

同时插入多行数据:insert students (id,name) values (2,’hujingtao’),(3,’jiangzeming’);

SELECT:

查看一张表的全部字段:select * from students;

只查看指定的字段:select id,name from students;

将字段 id 取个别名:select id as stuid,name from students;

WHERE clause:用于指明挑选条件

col_name 操作符 value,例如:age > 30

操作符(1):>, <, >=, <=, ==, !=

例如:select * from students where id=1;

select * from students where name=’jiangzemin’;    注意:后面的字符串要加引号,是否区分大小写,取决于字符类型,如果是

binary 或者 varbinary 则区分大小写,char 或者 varchar 则不需要区分大小写

组合条件:or,and,not

select name,age from students where age>=30 and age<=50;

select name,age from students where age between 30 and 50; 跟上面的语句是一个意思

操作符:BETWEEN …  AND …  LIKE ‘PATTERN’ RLIKE  ‘PATTERN'(正则表达式对字符串做模式匹配) IS NULL

IS NOT NULL

select name from students where name like ‘%ji%’;  注意像 like,rlike 这种查询方式性能极低

%:任意长度的任意字符 _:任意单个字符

select name from students where name rlike ‘min$’;

select name,age from students where age is null;

select id,name from students order by name;  根据 name 字段中的第一个字母排序,默认升序,加 desc 改为降序

注意其实执行 DML 语句首先都执行了 select 查询

DELETE:删除是相对应于行的

(1) DELETE  FROM  tbl_name  WHERE where_condition

(2) DELETE  FROM  tbl_name  [ORDER BY …]  [LIMIT row_count]

  delete from students; (删除表的所有行)

delete from students where age is null;

小技巧:1. 快速创建相同结构的表,包括索引:MariaDB [test1]> create table a like students;

2. 快速创建一个相同结构的表,但是不创建索引:MariaDB [test1]> create table b select * from students limit 0;

[root@localhost ~]# for i in {1..100}; do AGE=$[$RANDOM%100]; mysql -e “insert test1.a (id,name,age) values

($i,\”stu$i\”,$AGE);”; done    为 a 这张表加入一些数据

delete from a order by age desc limit 20;

UPDATE:

update a set age=age-5 order by id desc limit 10;

update a set age=age-5 where name not like ‘stu__’;

用户账号及权限管理:

用户账号:’username’@’host’

禁止检查主机名:在 my.cnf 配置文件中的 [mysqld] 段添加 skip_name_resolve = ON  一般都得添加此选项以提升性能

创建用户账号:CREATE  USER  ‘username’@’host’  [IDENTIFIED BY  ‘password’];

例如:create user ‘testuser’@’192.168.%.%’ identified by ‘testpass’; 记得刷新用户授权表 flush privileges;

删除用户账号:DROP USER  ‘user’@’host’ [, user@host] …

例如:drop user ‘testuser’@’192.168.%.%’;

查看用户授权表命令:select * from mysql.user\G;

授权:GRANT  priv_type,…  ON  [object_type]  db_name.tbl_name  TO  ‘user’@’host’  [IDENTIFIED BY  ‘password’];

例如:grant select,insert on test1.students to ‘testuser’@’192.168.%.%’;

查看指定用户所获得的授权:SHOW GRANTS FOR  ‘user’@’host’;SHOW GRANTS FOR CURRENT_USER;

回收权限:REVOKE  priv_type, …  ON  db_name.tbl_name  FROM  ‘user’@’host’;

例如:revoke insert on test1.students from ‘testuser’@’192.168.%.%’;

注意:MariaDB 服务进程启动时,会读取 mysql 库的所有授权表至内存中

(1) GRANT 或 REVOKE 命令等执行的权限操作会保存于表中,MariaDB 此时一般会自动重读授权表,权限修改会立即生效

(2) 其它方式实现的权限修改,要想生效,必须手动运行 FLUSH PRIVILEGES 命令

mariadb 安装完后密码是空的,这是不安全的,看下图;

可以使用该命令完成 root 密码设定:[root@localhost ~]# mysql_secure_installation

Linux 系统教程:如何检查 MariaDB 服务端版本  http://www.linuxidc.com/Linux/2015-08/122382.htm

MariaDB Proxy 读写分离的实现 http://www.linuxidc.com/Linux/2014-05/101306.htm

Linux 下编译安装配置 MariaDB 数据库的方法 http://www.linuxidc.com/Linux/2014-11/109049.htm

CentOS 系统使用 yum 安装 MariaDB 数据库 http://www.linuxidc.com/Linux/2014-11/109048.htm

安装 MariaDB 与 MySQL 并存 http://www.linuxidc.com/Linux/2014-11/109047.htm

Ubuntu 上如何将 MySQL 5.5 数据库迁移到 MariaDB 10  http://www.linuxidc.com/Linux/2014-11/109471.htm

[翻译]Ubuntu 14.04 (Trusty) Server 安装 MariaDB  http://www.linuxidc.com/Linux/2014-12/110048htm

MariaDB 的详细介绍:请点这里
MariaDB 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-05/131759.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计3346字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中