备忘单:提升你的 MariaDB 和 MySQL 数据库技能( 二 )
> SHOW COLUMNS IN USER;MariaDB [mysql]> SHOW COLUMNS IN USER;+-------------+---------------+------+-----+----------+| FIELD| TYPE| NULL | KEY | DEFAULT|+-------------+---------------+------+-----+----------+| Host| CHAR(60)| NO| PRI ||| USER| CHAR(80)| NO| PRI ||| Password| CHAR(41)| NO|||| Select_priv | enum('N','Y') | NO|| N|| Insert_priv | enum('N','Y') | NO|| N|| Update_priv | enum('N','Y') | NO|| N|| Delete_priv | enum('N','Y') | NO|| N|| Create_priv | enum('N','Y') | NO|| N|| Drop_priv| enum('N','Y') | NO|| N|[...]47 ROWS IN SET (0.001 sec)
创建一个新的用户
不论你是否需要一个普通的账号来管理数据库或者为计算机配置数据库(例如安装 WordPress、Drupal 或 Joomla时) , 在 MariaDB 中多建一个用户账号是很普遍的 。 你可以通过向 mysql 数据库的 USER 表中添加一个用户或使用 SQL 关键字 CREATE 来提示 MariaDB 创建一个 MariaDB 用户 。 使用 CREATE 来创建新用户会默认执行一些有用的方法 , 因此你不需要手动生成所有的信息:
> CREATE USER 'tux'@'localhost' IDENTIFIED BY 'really_secure_password';
查看表的字段
你可以使用 SELECT 关键字来查看数据库表的字段和值 。 这本例中 , 你创建了一个名为 tux 的用户 , 因此查询 USER 表中的列:
> SELECT USER,host FROM USER;+------+------------+| USER | host|+------+------------+| root | localhost|[...]| tux| localhost|+------+------------+7 ROWS IN SET (0.000 sec)
为一个用户赋予权限
通过查看 USER 表列出的信息 , 你可以看到用户的状态 。 例如 , 新用户 tux 对这个数据库没有任何权限 。 使用 WHERE 语句你可以只查 tux 那一条记录 。
> SELECT USER,select_priv,insert_priv,update_priv FROM USER WHERE USER='tux';+------+-------------+-------------+-------------+| USER | select_priv | insert_priv | update_priv |+------+-------------+-------------+-------------+| tux| N| N| N|+------+-------------+-------------+-------------+
使用 GRANT 命令修改用户的权限:
> GRANT SELECT ON *.* TO 'tux'@'localhost';> FLUSH PRIVILEGES;
验证你的修改:
> SELECT USER,select_priv,insert_priv,update_priv FROM USER WHERE USER='tux';+------+-------------+-------------+-------------+| USER | select_priv | insert_priv | update_priv |+------+-------------+-------------+-------------+| tux| Y| N| N|+------+-------------+-------------+-------------+
tux 用户现在有了从所有表中查询记录的权限 。
创建自定义的数据库到目前为止 , 你一直在与默认的数据库进行交互 。 除了用户管理 , 大部分人很少会与默认的数据库进行交互 。 通常 , 你会用自定义的数据来填充创建的数据库 。
创建一个 MariaDB 数据库
你可能已经可以自己在 MariaDB 中创建新数据库了 。 创建数据库跟新建用户差不多 。
> CREATE DATABASE example;Query OK, 1 ROW affected (0.000 sec)> SHOW DATABASES;+--------------------+| DATABASE|+--------------------+| example|[...]
使用 use 命令来把这个新建的数据库作为当前使用的库:
> USE example;
创建一个表
创建表比创建数据库要复杂 , 因为你必须定义列首 。 MariaDB 提供了很多方便的函数 , 可以用于创建列 , 引入数据类型定义 , 自增选项 , 对空值的约束 , 自动时间戳等等 。
下面是用来描述一系列用户的一个简单的表:
> CREATE TABLE IF NOT EXISTS member (-> id INT AUTO_INCREMENT PRIMARY KEY,-> name VARCHAR(128) NOT NULL,-> startdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP);Query OK, 0 ROWS affected (0.030 sec)
这个表通过使用一个自动递增的方法来唯一标识每一行 。 表示用户名字的字段不能为空(或 null) , 每一行被创建时会自动生成时间戳 。
使用 SQL 关键字 INSERT 向这个表填充一些示例数据:
> INSERT INTO member (name) VALUES ('Alice');Query OK, 1 ROW affected (0.011 sec)> INSERT INTO member (name) VALUES ('Bob');Query OK, 1 ROW affected (0.011 sec)> INSERT INTO member (name) VALUES ('Carol');Query OK, 1 ROW affected (0.011 sec)> INSERT INTO member (name) VALUES ('David');Query OK, 1 ROW affected (0.011 sec)
验证一下表里的数据:
> SELECT * FROM member;+----+-------+---------------------+| id | name| startdate|+----+-------+---------------------+|1 | Alice | 2020-10-03 15:25:06 ||2 | Bob| 2020-10-03 15:26:43 ||3 | Carol | 2020-10-03 15:26:46 ||4 | David | 2020-10-03 15:26:51 |+----+-------+---------------------+4 ROWS IN SET (0.000 sec)
同时增加多行数据
再创建一个表:
> CREATE TABLE IF NOT EXISTS linux (-> id INT AUTO_INCREMENT PRIMARY KEY,-> distro VARCHAR(128) NOT NULL);Query OK, 0 ROWS affected (0.030 sec)
【备忘单:提升你的 MariaDB 和 MySQL 数据库技能】
- 闲鱼|电诉宝:“闲鱼”网络欺诈成用户投诉热点 Q3获“不建议下单”评级
- 培训班|单县残联举办残疾人电子商务培训班
- 页面|如何简单、快速制作流程图?上班族的画图技巧get
- 健身房|乐刻韩伟:产业互联网中只做单环节很难让数据发挥大作用
- 丹丹|福佑卡车创始人兼CEO单丹丹:数字领航 驶向下一个十年
- 公式|?有人把 5G 讲得这么简单明了
- 砍单|iPhone12之后,拼多多又将iPhone12Pro拉下水
- 误导|苹果又吃巨额罚单,因iPhone防水宣传有误导被重罚9400万
- “树标提质”提升“软实力”数字经济时代创新载体大有可为
- 简单|互联网巨头夺走菜贩生计?未必那么简单