mysql数据库树,mysql数据库树三权分立
本文内容列表:
- 1.MySQL数据库基础+数据库基本操作?
- 2、MySQL数据库的三个基本优化规则是什么?
- 3、Mysql数据库的三种存储引擎有什么区别?
MySQL 数据库基础 + 数据库基本操作?
必要的信息将以链接的形式提供给有需要的同学。
我使用的Mysql版本是:Mysql-5.5.45-win64.msi 密码是:26zw
图形工具Navicat(早期不推荐,手动输入即可):Navicat 密码:c7fs
开启我的MySQL之旅2016.12.04开始
--WH
1.数据库安装
这个教程这里就不详细说了,因为这里安装教程太多了。我给你的MySQL按照这个安装指南(MySQL安装指南)就可以完全安装了。
安装完mysql后,如果需要使用Windows命令窗口(即cmd)操作mysql,需要配置环境变量,在安装的mysql下找到bin,将目录添加到环境变量中小路。就是这样。检查是否成功的方法是在cmd命令窗口中输入mysql。会出现一大段英文,就说明成功了。否则会失败。如果不会的话就去百度搜索一下教程。 ? uAccount -p 密码
输入密文:mysql -uroot -p 按回车键,系统会要求您输入密码(Enter pssword:)。此时,您输入的密码将显示为***。
3。查看mysql中的所有数据库(一般都是大写字母用于固定单词的命令,你要习惯这个,读多了写多了就认得)
前四个数据库都包含在mysql中是的,有必要。
显示数据库;
4。创建名为 test_1 的数据库
格式:CREATE DATABASE 数据库名称
CREATE DATABASE test_1;
5。删除名为test_1的数据库 数据库
格式:DROP DATABASE 数据库名称
DROP DATABASE test_1;
总结:学习了对数据库的三个操作,1.显示所有数据库 3.e 创建数据库❙2. 3、数据表的基本操作
数据表、数据库和MySQL的关系
MySQL存储很多数据库,一个数据库可以存储很多表。
数据表的添加(创建表)删除(删除表)修改(更改表字段)查询(查询表结构)。注意:这里的操作对象是表。对表的操作是对表的结构和对表中字段的操作(字段和记录一定要分清楚)
前提:表在数据库下面,所以首先要确认是哪一个表您将使用的数据库。
使用测试_1;
1。创建数据表
格式:CREATE TABLE数据表名称(
字段名称1数据类型[列级约束],
字段名称2数据类型[列级约束],
字段名称3数据类型[列级限制]
);
注:格式不一定要这样写,完全可以写在一行上。但这样写是非常难以观察的。我写这篇文章只是为了让它更清楚。 ?列代表垂直,行代表水平
3。稍后将讨论限制
1.1。无限制创建学生表
CREATE TABLE Student( idINT(11), nameVARCHAR(12),ageINT (11) );
注意:SHOW TABLES 询问数据库下的所有表。
1.2。创建约束学生表
六大约束:主键约束、外键约束、非空约束、唯一约束、标准约束、自增
1.2.1:主键约束 键:唯一(唯一)并且不能为空(非空))。通俗地说,当向表中添加记录时,该字段下的数据不能重复,也不能为空。例如,上面创建的表。例如,如果 ID 字段使用主键约束,则向表中添加两条记录。那么ID不能相同,不能为空。通常,每个表都有一个唯一标识该记录的主键字段。如果以后需要查找该记录,也可以用这个主键来验证该记录。由于主键是唯一且非空的,表中每条记录的主键都是不同的,因此根据主键可以找到对应的记录。而不是多个重复记录。如果没有主键,表中就会出现很多重复记录,会浪费存储空间,查询时会消耗更多资源。
一般情况下,受主键约束的字段通常称为表的主键
单字段主键约束
两种方法都可以 TABLE Student(CREATE Student idINT(11)主键,idINT(11),
nameVARCHAR(12),nameVARCHAR(12),
ageINT(11)ageINT(11),
);
);♓ID));
多字段主键约束(复合主键)
id和name为城市主键,表示以后插入的记录中,id和name不能同时相同,例如,可以是这样的。一条记录是id=1,name=yyy,另一条记录是:id=1,name=zzz。这可以。这并不是说你所理解的两个领域之间的差异不能相同。
创建表学生(创建表学生(
idINT(11) PRIMARY KEY,idINT(11),
nameVARCHAR(12) PRIMARY KEY,AR(2name),(2ageINT ( 11 ) ageINT(11),
);PRIMARY KEY(id,name) );
1.2.2:外键限制
什么是外键,通过一个例子就清楚了两张表,一张是emp(员工)表,一张是dept(部门)表,一个员工属于一个部门,那么如何通过员工来判断他是哪个部门呢?那么就可以在员工表中添加一个字段,可以代表员工所在的部门,然后这个字段只能是仓库部门的主键(因为主键是唯一的,所以肯定可以代表是哪个部门,然后代表员工所在的部门(部门,如果是部门名的话,有些部门名可以重名,无法区分。),这样的字段就满足了外键的特点,你可以使用外键约束,使得字段只能存储另一个字段。表的主键。如果不受外键约束,该字段无法保证存储的值将是另一个表的主键值。
外键约束的特点:
1。外键约束可以描述任意字段(包括主键),可以为空,一个表中可以有多个外键。但外键字段中的值必须是另一个表中的主键。
2。与外键关联的两个表之间的关系可以称为父子表或主从表。子表(从表)是带有外键字段的表,父表(主表)是外键字段指向的表。
3。子表中被外键约束修改的字段必须与父表中的主键字段类型相同。
注意:如果一个表有一个被外键修改的字段,则称该表有外键(意思是“有一个外键”,而不是“是一个外键”),并且外键约束在表中会被赋予Select一个名称,所以当我们常说这个表是否有外键时,并不是指被外键约束修改的字段名,而是指这个表是否有外键约束。也就是说,不能说这个表的外键是xxx(表中外键约束修改的字段名)。这种说法是错误的,但大多数人都已经习惯了。虽然影响不大,但是很多时候需要理解一些东西的时候,就会产生一些问题。
格式:RESTRICTION 外键名 FOREIGN KEY(受外键限制的字段名) REFERENCES 主表名(主键字段)
英文解释:RESTRICTION:限制 REFERENCES:引用 ❀A♷❀表
id INT(11),
名称 VARCHAR(22),
位置 VARCHAR(50),
主键(id)
B (
id INT(11),
名称 VARCHAR(22) NOT NULL,
deptId INT(11),
主键(id),d) 引用表A (id)
);
说明:tableB中有一个名为tableA_tableB_1的外键,关联两个表tableA和tableB。外键约束修改的字段是tableB中的deptId,主键字段是tableA中的。 id
1.2.3:非空约束
NOT NULL。该约束修改的字段不能为空。该约束包含在主键约束
CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22) NOT NULL,location),
- PRIMARY KEY(id )
);
1.2.4: 唯一性约束
UNIQUE 被唯一性约束修改的字段意味着该字段中的值是唯一的,不能具有相同的值。简单来说,就像插入两条记录。两条记录中该字段的值不能相同。的。
创建表表A
(
id INT(11),
名称VARCHAR(22)唯一,
位置VARCHAR♷) ) ;
会的假设插入的记录中每条记录的名称值不能相同。
1.2.5:默认约束
默认指定此列的默认值。例如,如果男生较多,则可以将性别设置为默认的男性。如果插入一行记录时没有填写性别,则默认值为 Addmale
CREATE TABLE table
(
id INT(11) PRIMARY KEY,❀ ) NOT NULL,
deptId INT(11) 默认 1111,
工资 FLOAT
);
1.2.6:自动增加IN。一张表中只有一个字段可以使用AUTO_INCRMENT,并且使用该限制的字段只能是整数类型(所有整数类型TINYINT、SMALLIN、INT、BIGINT),默认值为1,即从1开始递增。一般是用于主键,并且自动递增,这样每个主键的值都不同,我们不需要自己管理,所以主键可以自己自动生成
CREATE TABLE table (id INT( 11)主键自动递增,名称 VARCHAR (22) NOT NULL);
2。查询表结构
2.1。参见表的基本结构语句
格式1:DESCRIBE表名/DESC表名。这两个的功能是一样的,单词的缩写描述
DESCRIBE 学生;
2.2。看创建表的语句
格式:SHOW CREATE TABLE tablename
SHOW CREATE TABLE Student;
这样显示的格式很差,无法读取。删除,这样我就有了如下语句
格式:SHOW CREATE TABLE tablename\G
SHOW CREATE TABLE Student\G;
3。修改数据表
修改数据表包括:修改表中的字段添加、删除、修改。这里用到的关键字是ALTER
3.1,修改表名
格式:ALTER TABLE旧表名RENAME [TO]新表名;
将学生表名称更改为student1(更改后,在更改回来)
CHANGE TABLE Student CHANGE NAME TO Student1;
3.2.更改表中字段名称
格式:CHANGE TABLE 表名 CHANGE 旧字段名称 新字段名称 新数据类型
更改学生表中字段名称 姓名字段名称更改为用户名
CHANGE TABLE学生更改姓名用户名VARCHAR(30);
3.3。更改表中的数据类型
格式:ALTER TABLE 表名 MODIFY 字段名数据类型
ALTER TABLE Student MODIFY username VARCHAR(20);
说明:只能更改字段名的数据类型,但是原理和上面的改变是一样的。这里还有更改字段名称的过程,但是更改后的字段名称和修改之前的字段名称是相同的,但是数据类型不同。
3.4。改变字段的排列位置
方法一:ALTER TABLE表名MODIFY字段1数据类型FIRST|AFTER字段2
说明:将字段1的位置放在前面,或者放在指定字段后面2
ALTER TABLE Student MODIFY username VARCHAR(20) BY Age;
方法二:ALTER tablename ALTER field 1 field 2 datatype FIRST|AFTER field 3
说明:其实是一样的,会被field 2覆盖字段 1,然后排序
CHANGE TABLE 学生 CHANGE 用户名 username VARCHAR(20) BY 年龄;
总结
CHANGE 和 MODIFY 有什么区别?
原理是一样的。 MODIFY 只能更改数据类型,而 CHANGE 可以更改数据类型和字段名称。换句话说,MODIFY是CHANGE的更具体的操作。您可能会觉得使用 CHANGE 只更改一种数据类型不太舒服,因此我们添加了一个可以使用 MODIFY 关键字直接更改数据类型的函数。
3.5。添加字段
格式:ALTER TABLE tablename ADD new fieldname datatype [constraints][FIRST|AFTER已有表名]
说明:在特定位置添加新字段,如果不指定位置则默认为最后一个。
ALTER TABLE学生ADD性别VARCHAR(11);
3.6,删除字段
格式:ALTER TABLE表名DROP字段名;
UP表学生,
拥有键约束
格式: ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名称
注意:外键约束名称不是指外键约束修改的字段名称。请记住,这是我们正在创建的外键约束。关系期间所起的名字。 ?如果再深入一点就不清楚了,所以留到以后再讲。
4。删除表
4.1。删除不相关的表
格式:DROP TABLE 表名;
ALTER TABLE 学生;
4.2。删除与其他表链接的主表
这是比较重要的一点。有外键关系的两个表中,如果删除主表,则不会删除,还会报错。因为有一张桌子取决于他。那我们该怎么办呢?针对这种情况一共有两种方法
1。先删除子表,再删除父表。这样就达到了删除父表的目的,但是子表也会被删除
2。先解除外键关系,然后删除父表就可以达到目的,保留子表,而只删除我们不需要的父表。在3.7中我们解释了如何删除外键关系。
MySQL数据库的三个基本优化规则是什么?
(1)系统服务优化,增加MySQL的key_buffer、cache_buffer、query_cache等容量。
(2)为所有经常查询的字段添加适当的索引❀s、在SQL语句中、在操作中Group、Join等语句

Mysql数据库的三种存储引擎有什么区别?
Mysql数据库中三种存储引擎(MyISAM、MEMORY和InnoDB)的区别:
1. Myisam是Mysql的标准存储引擎。 create创建新表时,如果没有指定新表的存储引擎,则默认使用Myisam。 。 MEMORY 和 InnoDB 不是标准存储引擎。
2。 InnoDB 存储引擎通过提交、回滚和崩溃恢复功能提供事务安全性。但相比Myisam的存储引擎,InnoDB的写处理效率较低,并且会占用更多的磁盘空间来保留数据和索引。
Mysql数据库中三种存储(MyISAM、MEMORY和InnoDB)的区别对比:
1。 MyISAM
不支持事务,也不支持外键,特别是访问速度快,而且没有事务完整性要求。或者基于SELECT和INSERT的应用程序基本上都可以使用这个引擎来创建表。
数据文件和索引文件可以放在不同的目录下,均匀分配IO,获得更高的速度。要指定数据文件和索引文件的路径,必须在创建表时通过DATA DIRECTORY和INDEX DIRECTORY语句指定。文件路径必须使用绝对路径。
2。 MEMORY
内存使用存储在内存中的内容来创建表。每个MEMORY表实际上对应一个磁盘文件,格式为.frm。 MEMORY类型表访问速度非常快,因为数据位于内存中,并且默认使用HASH索引。但是,当服务器关闭时,表中的数据将丢失,但表将继续存在。
内存数据表默认使用哈希索引。使用该索引进行“相等比较”速度非常快,但“范围比较”则慢得多。因此,哈希索引值适合在“=”和“=”运算符中使用,但不适合在“”或“”运算符中使用,也不适合在order by子句中使用。如果您确实想在运算符之间使用“”或“”,则可以使用 btree 索引来加快速度。
MEMORY数据表中存储的数据行采用定长格式,从而加快处理速度。这意味着不能使用可变长度数据类型(例如 BLOB 和 TEXT)。 VARCHAR是一种变长类型,但由于MySQL内部将其视为定长CHAR类型,因此可以使用。
3。 InnoDB
InnoDB 存储引擎通过提交、回滚和崩溃恢复功能提供事务安全性。但相比MyISAM的存储引擎,InnoDB的写处理效率较低,并且占用更多的磁盘空间来保留数据和索引。
(1)自动增长列:
InnoDB表中的自动增长列可以手动插入,但如果插入的值为空或0,则实际插入的值为自动增长后的值。可以通过“ALTER TABLE...AUTO_INCRMENT=n;”强制设置自增值的初始值陈述。默认值为1,但强制默认值存储在内存中,数据库重启后会丢失。
可以使用LAST_INSERT_ID()查询当前线程上次插入记录所使用的值。如果同时插入多条记录,则返回第一条记录使用的自增值。对于InnoDB表,自动增长列必须是索引。如果是复合索引,它也必须是复合索引中的第一列。然而,对于MyISAM表,自动增长列可以是复合索引中的其他列。这样,插入记录后,自动增长列在对复合索引中的先前列进行排序后会递增。的。
(2)外键的限制:
MySQL支持外键的存储引擎只有InnoDB。创建外键时,父表必须有对应的索引,创建外键时会自动创建子表。对应的索引。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网
