mysql

初识数据库mysql

1、mysql数据库基础知识

是一个开放源代码的数据库管理系统(DBMS)
是一个跨平台的开源关系数据库管理系统
适用于中小型网站公司开发

阿里提出去IOE(IBM中小型服务器、oracle数据库、EMC存储设备)
使用国产产品来代替,如 多个mysql代替一个oracle数据库,阿里使用了自己的工程师集百家所长研发的

数据库由库、表、数据组成

2、什么是数据库

mysql已经不再是关系型数据库,就是一个存放数据的仓库

3、数据库特点:

实现数据共享,减少数据冗余(没有重复数据)
采用特定的数据类型:数据库中一个字段对应一个数据类型,数据类型决定了向该字段写入数据的格式
具有较高的数据独立性
具有统一的数据控制功能(增删改查,的不同语气)

4、表的概念

行被称为记录,记录了一个人的所有信息
列被称为字段,记录了所有人的同一个信息,一个字段对应一个数据类型

5、数据类型

每个字段对应一个数据类型

6、主键(primary key)

用于唯一的标识表中的每一条记录,可以定义表中的一列或者多列为主键。主键列上不能有两行相同的值,也不能为空值
用来快速查找数据

7、数据库技术构成:硬件和软件构成

硬件主要用于存储数据库中的数据,包括存储设备、计算机、
软件包括DBMS、支持DBMS运行的操作系统,以及支持多种语言进行应用开发的访问技术等

8、数据库系统有3个主要的组成部分

数据库:用于存储数据
数据库管理系统:用于管理数据库的软件
数据库应用程序:为了提高数据库库系统的处理能力所使用的管理数据库的软件补充。

9、sql语言

对数据进行查询和修改操作的语言叫sql。
所有数据库的标准语言

sql语言分为四大类:
1)数据定义语言(DDL,data definition language):drop、create、alter(针对于数据库和表)
2)数据操作语言(DML,data manipulation language):insert、update、delete(针对于数据而言)
3)数据查询语言(DQL,data query language):select
4)数据控制语言(DCL,data control language):begin、rollback、commit、grant、revoke(针对于用户和功能的控制)

10、msyql中常见的语句结束符

​ 1);分号 2)\g 等同于分号 3)\G 以更直观的方式,更美观的查询表中的数据

DELIMITER 用于切换结束符

DELIMITER // 表示结束符切换为//

11、sql语言语法

1)创建数据库

​ CREATE DATABASE 数据库名;

2)使用(进入)数据库

​ USE 数据库名;

3)创建数据表
 CREATE TABLE 表名 (
    字段1 数据类型,
    字段2 数据类型,
    ……
   );

如:

CREATE TABLE  student(
    -> name VARCHAR(30),
    -> age INT,
    -> high INT,
    -> weight INT,
    -> address char(30),
    -> PRIMARY KEY (name,age,high,weight,address));                //将五个字段你的值统一设置为主键
4)查看当前数据库:SHOW DATABASES;
5)查看当前数据库中的表:SHOW TABLES;
6)在表中写入数据
    INSERT INTO 表名 VALUES (字段值1,字段值2,……);
    如: INSERT INTO student VALUES ('cyj',23,174,55,'beijingfengtai');

如果上条命令执行两次,将会触发主键约束,但只要其中某一个值不一样都可以写入数据,如果同样,则会出现报错

12、数据库访问技术

​ 1)ODBC Open Database Connectivity(开放数据库互联),可以通过只要一个共同的接口与不同数据库进行沟通
​ 2)JDBC.

13、查看当前使用的mysql版本

 select varsion();

14、msyql优势:

​ (1)速度:运行速度快
​ (2)价格:mysql对多数个人用来说是免费的
​ (3)容易使用:可与其他大型数据库的设置和管理相比,其复杂程度较低,易于学习。
​ (4)可移植性:能够工作在众多不同系统的平台上
​ (5)丰富的接口:提供了用于C、C++、Eiffel、Jave、Perl、PHP、Ruby、Python等语言的API
​ (6)支持查询语言:mysql可以利用标准sql语法和支持ODBC(开放式数据库连接)的应用程序
​ (7)安全性和连续性:十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码的安全。并且由于mysql是网络化的,因此可以在internet上的任何地方访问,提高数据共享的效率。

15、默认存在的数据库

+--------------------+
| Database           |
+--------------------+
| information_schema |        //该库保存所维护的所有库的信息,包含库名、表名、字段、约束条件等信息
| mysql              |        //保存用户的以及用户权限的库,记录用户的权限设置、用户名、关键字等
| performance_schema |        //用于收集服务器性能、性能参数数据库、存储引擎
| test               |        //用于测试,测试库,任何用户在test库中拥有绝对权限(root)
+--------------------+

16、删除数据库

​ DROP DATABASE 数据库名; 生产环境不建议经常使用

17、存储引擎

​ 数据库管理系统通过引擎实现增删改查,不同的存储引擎存储的方式不同,支持的功能不同,属于mysql的核心。不同的存储引擎读写效率不同,支持的索引不同,每个表对应一个存储引擎。

查看存储引擎的语法:SHOW ENGINES\G

 Engine: InnoDB        //引擎名
 Support: DEFAULT        //mysql是否支持该种存储引擎
 Comment: Supports transactions, row-level locking, and foreign keys    //mysql对存储引擎的描述
 Transactions: YES        //是否支持事务
 XA: YES            //是否支持分布式事务
 Savepoints: YES    //是否支持事务保存点

查看默认使用的存储引擎

SHOW VARIABLES LIKE 'default_storage_engine';
SHOW VARIABLES LIKE '':可以查看mysql参数的工具
1)MyISAM存储引擎特点

(1)在5.5版本之前使用MyISAM作为默认存储引擎,5.5版本之后变更为InnoDB
(2)MyISAM读取速度快,占用资源少,不支持外键,不支持事务,支持全文索引,空间索引
(3)读写相互阻塞
(4)只能缓存索引不能缓存数据
MyISAM使用场景
(1)不支持事务的业务可以使用
(2)数据修改较少的业务可以使用,读取较多的业务适用
(3)并发较低的业务适用
(4)硬件资源差可以考虑使用

2)InnoDB存储引擎特点

(1)属于mysql5.5之后的默认存储引擎,支持事务,支持行级别锁定和外键,属于事务类型的业务首选存储引擎(其他存储引擎都不支持)
※行级别锁定:锁定一行数据不能修改
(2)可以支持高并发,读写不会阻塞,而且对硬件要求较高
(3)缓存性能高,既能缓存索引,又能缓存数据
(4)一旦使用InnoDB存储引擎,会在数据目录下生成两个5MB 大小的ib_logfile0和ib_logfile1日志文件和一个10MB大小的名为ibdata1自动扩展文件
※ibdata1:记录了使用InnoDB存储引擎表的数据和索引信息

InnoDB使用场景
(1)适合使用事务的业务(InnoDB提交,回滚,崩溃恢复的事务安全存储引擎)
(2)数据更新频繁的业务
(3)数据一致性要求较高的业务

3)Memory存储引擎特点

(1)将表中的数据保存到内存中,提供快速查询和快速访问
(2)支持hash索引和btree索引,不支持blob列和text列
(3)当不需要memory表中的数据时,可以通过清空表数据或者删除表的方式直接释放表空间,不会产生空间碎片

Memory使用场景
(1)需要快速访问读取,而且对于数据丢失的情况可以不计较

18、建表时修改默认存储引擎

1)建立表时修改存储引擎直接将ENGINE=要修改的引擎添加到建表的括号之后就可以完成建表并且同时修改数据类型

2)unsigned不属于完整性约束条件,属于取值范围的控制内容,需要直接跟在数值类数据类型的后面进行写入

CREATE TABLE test1(
    id INT UNSIGNED PRIMARY KEY NOT NULL UNIQUE AUTO_INCREMENT,
    name VARCHAR(30CHAR(30) NOT NULL, 
    address VARCHAR(50) NOT NULL,
    grade DECIMAL(7,1) NOT NULL,
    level ENUM('best','good','bad'))
    ENGINE=MyISAM;

选择合适的存储引擎可以方便用户快速的得到数据,也可以节约资源,节省空间,属于运维人员的必备知识

评论




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0