mysql数据库之基本操作和存储引擎

时间:2022-09-04 16:12:06

一、知识储备

数据库服务器:一台计算机(对内存要求比较高)

数据库管理系统:如mysql,是一个软件

数据库:oldboy_stu,相当于文件夹

表:student,scholl,class_list,相当于一个具体的文件

记录:1 susan  158426544   22,相当于文件中的一行内容

二、初始SQL语言

SQL(Structured Query Language 即结构化查询语言)
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型:
DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE

三、系统数据库

SQL(Structured Query Language 即结构化查询语言)
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型:
DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE

四、创建数据库

数据库命名规则:

可以由字母、数字、下划线、@、#、$
区分大小写
唯一性
不能使用关键字如 create select
不能单独使用数字
最长128位
create database db1

五、数据库相关操作

数据库的相关操作
注意:数据库就相当于文件夹
表就相当于文件
数据库的命名规则:
一.数据库的增删改查(sql语句)
增:create database db1;
删:drop database db1;
改:alter database db1 charset utf8
查:show databases;#查看所有的数据库
show create database db1;查看指定的数据库
设置默认的utf8,在配置文件中:写上character_set_server = utf8
use db2 #代表你鼠标双击切换目录
select database() #查看你当前在哪个文件夹
二.表的增删改查
增:create table t1(id int ,name char); (t1.frm 表结构 ,t1.ibd 表数据)
删:drop table t1;
改:
插入数据:insert into test(id,name) values(1,'x')
不写给谁传值就指定都传,而且还是按照位置传 查:show tables; #查看所有表
show create table t1;#查看指定的表
select * from t1 #查看表数据
select id,name from t1 #查看表数据
engine = InnoDB
表的存储引擎是InnoDB

六、什么是存储引擎?

存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方
法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)

SQL 解析器、SQL 优化器、缓冲池、存储引擎等组件在每个数据库中都存在,但不是每 个数据库都有这么多存储引擎。MySQL 的插件式存储引擎可以让存储引擎层的开发人员设 计他们希望的存储层,例如,有的应用需要满足事务的要求,有的应用则不需要对事务有这 么强的要求 ;有的希望数据能持久存储,有的只希望放在内存中,临时并快速地提供对数据 的查询。

一种类型表明的是一种存储方式
存储引擎:就是表的类型,不同的类型就会对应不同的处理机制去处理他
事务:就是要么同时成功,要么同时不成功

使用存储引擎

方法1:建表时指定

存储引擎
1.create table t1(id int) engine = innodb 会出现2个文件
2.create table t2(id int) engine = myisam 会出现3个文件(速度比上面的快),但是我们还是用innodb存储
3.create table t3(id int) engine = memory 只有表结构没有表数据,是创建到内存中的
4.create table t4(id int) engine = blackhole 黑洞,吃数据(数据存进去就没有了,存进去就没有了)

方法2:在配置文件中指定默认的存储引擎

/etc/my.cnf
[mysqld]
default-storage-engine=INNODB
innodb_file_per_table=1