时间:2021-07-01 10:21:17 帮助过:31人阅读
简单:MySQL的使用简单,任何稍微有IT背景的技术人员都可以无师自通地参照文档安装运行和使用MySQL,这几乎没有什么门槛。
开源:开源意味着安全和免费,代码就摆在那里,无数的技术爱好者一起来审核程序,一起修补问题,这让使用者非常的放心。同时,开源带来了免费。
复制:MySQL从3.23.15这个版本开始,支持了replication,可以帮助MySQL使用者搭建Master-Slave的架构。把数据准实时的从一个实例同步到另一个实例。
引擎:MySQL不同于其他多数数据库之处是它对插件式存储引擎的支持,这是一个开放的设计,有点兼容并包,海纳百川的感觉。
请求<-->响应 的处理过程
多个操作被当做一个整体对待,要想看一个关系型管理数据库系统是否支持事务就要看关系型数据库系统是否满足ACID测试
举个例子:比如去银行存钱1000元,存钱是一个过程,服务器这个时候应该响应修改你的银行卡信息加1000元。这个时候就构成了一个事物。
但是如果刚存过钱服务器还没来的及响应,这个时候突然停电了(比如没有应急供电措施),这个时候钱是存过还是没存?这个时候需要利用事物的“回滚”功能,因为没有构成一个事物,恢复到还没有存钱之前的状态。
要么全部都成功执行,要么全部都失败“回滚”。
MySQL属于关系型数据库,关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。用户用查询(Query)来检索数据库中的数据。一个Query是一个用于指定数据库中行和列的SELECT语句。
第一范式:所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项;
第二范式:在第一范式基础上建立起来的,满足第一范式之后增加了主键,要求数据表里的所有数据都要和该数据表的主键有完全依赖关系;
第三范式:同样基于第二范式基础上建立起来的,要求一个关系中不能包含,已在其它关系已包含的非主关键字信息;
主键:一个或多个字段的组合,填入主键中的数据,必须不同于已存在的数据;不能为空; 外键:一个表中某字段中能插入的数据,取决于另外一张表的主键中的数据; 惟一键:一个或多个字段的组合,填入惟一键中的数据,必须不同于已存在的数据;可以为空;一个表可以存在多个唯一键; 检查性约束:取决于表达式的要求;自定义表达式约束,比如一个人正常年龄在一百五十岁一下(这里排除以后科技发展迅速,人的年龄可以更高);
MariaDB属于插件式存储引擎(存储引擎也称为“表类型”;):存储管理器有多种实现版本,彼此间的功能和特性可能略有区别;用户可根据需要灵活选择;
值得说的是在CentOS7中MariaDB已经完全把MySQL替代了,并且完全兼容MySQL。
MariaDB [(none)]> SHOW ENGINES; ##显示MariaDB支持的存储引擎
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| FEDERATED | YES | FederatedX pluggable storage engine | YES | NO | YES |
| Aria | YES | Crash-safe tables with MyISAM heritage | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
10 rows in set (0.00 sec)
SHOW GRANTS FOR ‘user‘@‘host‘
SHOW GRANTS FOR CURRENT_USER;
REVOKE priv_type, ... ON db_name.tbl_name FROM ‘user‘@‘host‘;
注意:MariaDB服务进程启动时,会读取mysql库的所有授权表至内存中;
(1) GRANT或REVOKE命令等执行的权限操作会保存于表中,MariaDB此时一般会自动重读授权表,权限修改会立即生效;
(2) 其它方式实现的权限修改,要想生效,必须手动运行FLUSH PRIVILEGES命令方可;
-u:后面跟用户名 -u和用户名中间一定不要有空格;
-h:后面跟远程主机地址,默认为localhost,-h和HOST中间一定不要有空格;
-p[PASSWORD]:USERNAME所表示的用户的密码,-p直接回车静默交互式输入密码;
注意:mysql的用户账号由两部分组成:‘USERNAME‘@‘HOST‘; 其中HOST用于限制此用户可通过哪些远程主机连接当前的mysql服务,HOST支持通配符,这里%代表任意长度的任意字符;
创建用户
CREATE USER ‘name‘@‘localhost‘ IDENTIFIED BY ‘111111‘; ##创建用户指定用户名字,登录方式以及密码。
查看所有的用户账号及密码
SELECT user,host,password FROM user;
[root@www ~]# mysql -uroot -hlocalhost -p ##登录root账户
Enter password: ##静默输入密码
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 117
Server version: 5.5.44-MariaDB MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
MariaDB [(none)]> use mysql ##切换到MySQL库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [mysql]> SELECT user,host,password FROM user; ##显示所有的用户,登录主机,以及密码,密码加密存放
+--------+-----------------+-------------------------------------------+
| user | host | password |
+--------+-----------------+-------------------------------------------+
| root | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| root | 127.0.0.1 | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| root | ::1 | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| MySQL | 192.168.217.140 | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
| ming | % | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
| MySQLL | 192.168.217.138 | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
| tom | 192.168.217.139 | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
+--------+-----------------+-------------------------------------------+
7 rows in set (0.00 sec)
use命令格式:use <数据库名>;
MariaDB [(none)]> use hidb ##切换名字为hidb的库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [hidb]> ##[hidb]>这里名字已经改成hidb说明切换成功
mysql> help KEYWORD(命令本身);
HELP查看帮助
MariaDB [data]> HELP CREATE DATABASE ##HELP 命令 查看帮助
Name: ‘CREATE DATABASE‘ ##查询的是哪个命令
Description: ##命令描述,这里为空
Syntax: ##描述
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... ##语法
create_specification: ##创建规范
[DEFAULT] CHARACTER SET [=] charset_name ##设置字符集
| [DEFAULT] COLLATE [=] collation_name ##设置排序规则
ENGINE [=] engine_naem ##设置支持哪些存储引擎
SHOW ENGINES; ##显示总共有哪些存储引擎
MariaDB [data]> CREATE DATABASE XiaoHua; ##创建一个为XiaoHua的库
Query OK, 1 row affected (0.00 sec)
用来指明筛选条件
SELECT col1, ... FROM tbl_name WHERE clause;
查看 col1 来自 tbl_name 这个表 只看 clause 内容
WHERE clause:用于指明挑选条件,例如:age > 30;
col_name 操作符 value:
操作符(1) :
操作符(2) :
MariaDB [hidb]> SELECT * FROM studentss WHERE sid BETWEEN 3 AND 5; ##只显示3~5行
+-----+-----------+--------+
| sid | name | gender |
+-----+-----------+--------+
| 3 | Sun Li | F |
| 4 | Deng Chao | M |
| 5 | Jiang Xin | F |
+-----+-----------+--------+
3 rows in set (0.00 sec)
MySQL的介绍以及使用
标签:事物 限制 creat ast int tag 链接 表达式 手动