MySQL系列(1)
想用一周时间复习一下之前学的MySQL,每一章13节课一共有88节课,加油加油。
先复习一波神奇宝贝(考试要考的哦)
1.数据库简介
数据库:是按照一定的数据结构来组织、存储和管理数据的仓库。
发展史:最早数据库穿孔卡片-》共享需求数据量增大促成了数据库管理系统DBMS。
DBMS:一种操作和管理数据库的大型软件,用于建立、使用和维护数据库;能对数据库进行统一管理和控制,保证数据库的安全性和完整性;是数据库系统的核心,我们一般说的数据库就是DBMS数据库管理系统。
常见的数据库:Oracle(稳定,可移植,功能全,性能超群,适用于大型企业),DB2(速度,可靠性好,适于海量数据,恢复性强,适用于大中型企业),MySQL(开源,体积小,适于中小型企业),SQL server(全面,效率高,界面友好,操作容易,但不跨平台,适用于中小型企业)。MySQL免费,其余三个都是收费的2333。
2.数据库专业术语
表:具有固定列数和任意行数,和excel的表格差不多。
列:一个数据项,Field也就是字段。
行:一条记录,row。
数据库:是一些关联表的集合。
主键:主键是唯一的,不能有重复。一个数据表只能包含一个主键,因为没有重复所以可用于查询数据。
外键:用于关联两个表。
索引:使用索引可以快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于数据的目录。
3.MySQL数据库
介绍:MySQL是一个关系型数据库管理系统(存在表里,以行列存储;非关系型以键值对存储),目前属于Oracle公司;开源免费;支持大型的数据库,可以处理上千万条数据;使用标准的SQL数据语言;允许多个系统连接。
安装:官网下载msi文件,不要下载压缩包(比较麻烦),选择自定义安装custom,选择需要的进行安装不需要的可以不安装,如果报错了,把报错放到百度上就会有解决方案。MySQL端口号是3306,设置密码,其余的地方就一直点点点就可以了。
检查是否安装成功
如果未成功连接可能是电脑的mysql没有启动,可以在cmd中输入services.msc查看mysql是否已安装,并且已启动。
卸载的时候最好把隐藏文件夹programdata里面的mysql删掉。
4.配置环境变量
安装完之后启动mysql需要先切换到bin目录才行,如果增加到环境变量中则可以不切换就启动
复制一份mysql的bin路径添加到环境变量中,我的电脑-》属性-》高级系统设置-》环境变量-》系统变量-》path-》新建添加路径
在cmd中启动命令时,会现在当前目录查找命令,再到环境变量中也找一次。
5.MySQL基本语句
创建数据库:create database 数据库名称;删除数据库:drop database 数据库名称;
查看数据库:show databases;使用数据库:use 数据库名;
建表的时候,建立的表也是存放在系统的文件夹中programdata/mysql/mysql8.0/data
系统数据库:
(1)information_schema:存储数据库对象信息,如用户表信息,列信息,根除,字符,分区等,里面的内容不能动。
(2)performance_schema:存储数据库服务器性能参数信息
(3)mysql:存储数据库用户权限信息
(4)sys:通过这个库可以快速了解系统的元数据信息。
用户数据库:用户自己创建的数据库,一个项目用一个数据库。
创建数据库
使用数据库
查看数据库中所有表
查询,从user中获取所有信息
删除数据库
顺序:先使用数据库,然后才能查看里面的表。
6.Navicat可视化工具安装
汉化破解版,需要可以私聊哈。
连接数据库
如果数据库使用的是5.8以上的版本,连接的加密方式会不一样,双击连接数据库时会出现报错,修改方式为,在cmd中进入mysql运行以下三句命令:
alter user "root"@"localhost"identified by "你的密码" password expire never;
alter user "root"@"localhost"identified with mysql_native_password by "你的密码";
flush privileges;
7.字符集介绍
在navivat数据库上右键就可建立数据库,输入名称,选择字符集,创建。
字符集由来:计算机只能识别二进制代码,为了让计算机能处理文字,需要对文字进行编码。
ASSCLL:最早的字符集,128个字符,后来出现很多个不同国家的字符集iso-646,iso-8859,GB2312-80,GBK,BIG5,不能统一,导致软件很难跨国家移植,所以需要统一。
unicode:统一字符,整合成iso-10646,很多公司觉得这个编的太烂了,就自己编了unicode1.0,之后有谈判收编编程了BMP,0-65536,0-127和ASSCLL是一样的。
utf-16:unicode transformation format,unicode传输的格式,utf-16,所有字符都用两个字节保存,有点浪费,有些只需要1个字符就可以了。
utf-8:不是固定的1个字节,而是可以变化的,可以节省空间,扩展性也更强了。
汉字的一些常见字符集:GB2312,GB13000,GBK,GB18030,一般都用utf-8。
8.存储引擎
在创建表后-》选项-》引擎
引擎就是支持的功能,不同的引擎支持的功能不同。
mysql用不同技术存储文件,每一种用的引擎不同,不同的引擎产生的性能也不同。
引擎分类:MYISAM(不支持事务,不支持外键,访问速度快,以select、insert为主,存储时有3个文件.frm,myd,myi)、INNODB(支持外键、事务等)、MEMORY(内存引擎,用这个引擎创建的表存储在内存中,下次打开就没了,不适合存储,只能临时存储,访问速度很快)
9.功能分类
SQL:结构化查询语言structured quevy language,专门为数据库建立的操作命令集。
DDL:数据定义语言,用来定义数据库对象,创建数据库,表,列等
DML:数据操作语言,用来操作数据库表中的记录
DQL:数据查询语言,用来查询数据
DCL:数据控制语言,用来定义访问权限和安全级别
10.数据类型
定义字段需要声明数据类型。
分三类:数值类型(int,float等)、字符串(char、varchar、text等)、日期和时间(data、time、year等)
常用数据类型:double(浮点型,double(5,2)最多5位2位是小数),char(字符串,char(10)固定长度字符串),varchar(可变字符串),text(长字符串类型),blob(二进制类型),data(日期类型,yyyy-mm-dd),time(时间类型,hh:mm:ss),datatime(日期时间类型,yyyy-mm-dd hh:mm:ss)
注:mysql中字符串类型和日期类型都需要单引号引起来。
11.创建表 不区分大小写
DDL数据定义语言
创建数据库:
create database 数据库名 character set utf-8;
alter database 数据库名 character set gbk;
一般直接用图形化界面创建
创建表:
查询-》新建查询
运行后更新一下才会出现表
12.修改表结构
添加一列alter table 表名 add 列名 数据类型;
修改表的字段类型:alter table 表名 modify 字段名 数据类型;
查看表字段信息:desc 表名
修改表名:rename table 原始表名 to 要修改的表名;
修改字符集:alter table 表名 character set 字符集名称;
修改表的列名:alter table 表名 change 原始列名 新列名 数据类型;
查看表创建细节:show create table 表名;
右键表-》对象信息-》DDL
13.删除表
删除一列:alter table 表名 drop 字段名;
删除表:drop table 表名;