MySQL 数据库

一、Mysql简介

  MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
  MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
  MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。

系统特性

  1. MySQL使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。
  2. 支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
  3. 为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和 Tcl 等。
  4. 支持多线程,充分利用 CPU 资源。
  5. 优化的 SQL查询算法,有效地提高查询速度。
  6. 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
  7. 提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作数据表名和数据列名。
  8. 提供TCP/IP、ODBC 和 JDBC等多种数据库连接途径。
  9. 提供用于管理、检查、优化数据库操作的管理工具。
  10. 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  11. 支持多种存储引擎。
  12. MySQL 是开源的,所以你不需要支付额外的费用。
  13. MySQL 使用标准的 SQL数据语言形式。
  14. MySQL 对 PHP有很好的支持,PHP是比较流行的 Web 开发语言。
  15. MySQL是可以定制的,采用了 GPL协议,你可以修改源码来开发自己的 MySQL 系统。
  16. 在线 DDL/更改功能,数据架构支持动态应用程序和开发人员灵活性(5.6新增)
  17. 复制全局事务标识,可支持自我修复式集群(5.6新增)
  18. 复制无崩溃从机,可提高可用性(5.6新增)
  19. 复制多线程从机,可提高性能(5.6新增)
  20. 3倍更快的性能(5.7 [3] 新增)
  21. 新的优化器(5.7新增)
  22. 原生JSON支持(5.7新增)
  23. 多源复制(5.7新增)
  24. GIS的空间扩展 (5.7新增)
    在这里插入图片描述

二、mysql默认数据库里面的四张表(user,db,tables_priv,columns_priv)。

1、user表(用户层权限)

因为字段太多,只截取了一部分。首先登陆的时候验证Host,User,Password(authentication_string)也就是ip,用户名,密码是否匹配,匹配登陆成功将会为登陆者分配权限,分配权限的顺序也是按照上面四张表的排列顺序进行的,举个例子,如果user表的Select_priv为Y说明他拥有所有表的查找权限,如果为N就需要到下一级db表中进行权限分配了。其中的%是通配符,代表任意的意思。

2、db表(数据库层权限)


来到db表之后会匹配Host,User然后会根据Db字段对应的表进行权限分配,像Select_priv这些字段对应的权限大家应该都能看出来是对应着什么权限了吧,这里不细说了(不偷懒,举个例子Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv分别代表着查询,增加,更新,删除,创建,销毁)。其中Y代表这拥有此项权限,N则代表没有此项权限。
3、tables_priv表(表层权限)

与上面一样,这是通过Host,Db,User,Table来进行定位到表层的一个权限分配。不过它只有Table_priv和Column_priv两个字段来记录权限。

4、columns_priv表(字段层权限)

顾名思义,字段层权限,通过Host,Db,User,Table,Column来进行定位到字段层的一个权限分配,只有Column_priv来记录权限。
如何连接数据库执行SQL语句
  1. 执行SQL语句需要先和数据库软件建立链接之后
  2. 从开始菜单中找到MariaDB或MySQL,然后打开找到里面的MySQL Client 打开 , 然后输入
  3. 密码后回车
    • 退出指令: exit
    • 登录指令: mysql -uroot -p
数据库和表的概念
  1. 在MySQL数据库软件中保存数据,需要先建库,然后在库里面建表,然后把数据保存到表中
    在这里插入图片描述
SQL语句格式:
  1. 以;号结尾
  2. 关键字不区分大小写
  3. 可以有空格或换行但一定要以;结尾
数据库相关的SQL语句
  1. 查询所有数据库格式:
    show databases; 
    
  2. 创建数据库格式:
 10. create database 数据库名 charset=utf8/gbk;
  1. 举例:
    - create database db1;
    - create database db2 charset=utf8;
    - create database db3 charset=gbk;
  1. 查看数据库信息
    • 格式:
show create database 数据库名;
 - 举例:
   show create database db1;
   show create database db2;
   show create database db3;
  1. 删除数据库:
    • 格式: drop database 数据库名;
    • 举例:
	drop database db3;
	drop database db2;
	show databases;
  1. 使用数据库
    - 执行表相关和数据相关的SQL语句之前必须先使用了某个数据库
    - 格式: use 数据库名;
    • 举例:
 use db1;
表相关的SQL语句
  1. 执行表相关的SQL语句必须已经使用了某个数据库
 	use db1;
  1. 创建表格式:
    • create table 表名(字段1名 类型,字段2名 类型,…);
  • 举例:
	create table person(name varchar(50),age int);
 	create table student(name varchar(50),chinese int,math int,english int)charset=utf8;
  • 创建一个员工表emp 保存名字,工资和工作
    create table emp(name varchar(50),salary int,job varchar(20));
  1. 查询所有表格式:
show tables;
  1. 查询表信息格式:
show create table 表名;
  • 举例:
- show create table emp;
  1. 查询表字段格式:
desc 表名;
  1. 修改表名格式:
 rename table 原名 to 新名;
  • 举例:
rename table student to stu;
  1. 删除表格式:
 drop tab`l`e 表名;
UTF8字符集
  • 目前utf8 和utf8mb3 一样 ,代表的是 用3个字节表示一个字符 (mb3=most byte 3)
  • utf8mb4 最多不超过4个字节表示一个字符
检查自己电脑的MySQL服务是否开启
  • 在我的电脑/此电脑上右键->管理 检查MySQL服务服务是否正在运行
    在这里插入图片描述
  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java小高

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值