MySQL数据库简介
之前通过流操作文件方式保存数据的弊端:
效率低
实现过程比较复杂,开发效率低
一般只能保存小量数据
只能保存文本
什么是DB
DataBase: 数据库,数据库是一个文件集合
什么是DBMS
DataBaseManagementSystem:数据库管理系统(软件),用于管理数据库文件,常见的DBMS有哪些?
Oracle、MySQL、DB2、SQLserver、Sqlite
数据库的分类
关系型数据库以表为数据库存储数据的单位,关系型数据库是经过数学理论验证可以保存现实生活中任何关系型的数据
非关系型数据库 主要应用在一些特定场景,解决某些具体问题比如解决高并发访问时的数据缓存,(redis数据库属于非关系型数据库,redis内部以键值对的形式保存数据)例如:name=张三 age=20
主流关系型数据库的介绍
MySQL: Oracle公司产品, 08年被Sun公司收购,09年Sun公司被Oracle收购,开源产品,MySQL被收购后性能大幅提高,面临闭源风险,原MySQL程序员离开Oracle创建了MariaDB,MariaDB和MySQL区别不大 市场占有率第一
Oracle: 闭源产品 价格最贵性能最高 市场排名第二,拉里埃里森 32
DB2: IBM公司产品,闭源 主要应用在IBM公司整套解决方案中
SqlServer: 微软公司产品,闭源,主要应用在微软公司整套解决方案中
Sqlite: 轻量级数据库 安装包只有几十k,主要应用在嵌入式设备中或移动设备中
开源和闭源
开源:公开源代码 ,靠卖服务盈利, 有大牛程序员无偿维护升级
闭源:不公开源代码,靠卖产品和服务盈利,有大牛攻击找漏洞
什么是SQL
Structured Query Language:结构化查询语言,用于程序员和DBMS(数据库管理软件)进行交互
连接数据库
Linux系统: mysql -uroot -p
Windows系统:开始菜单-》所有程序-》MySQL/MariaDB-》MySQL Client
数据库相关的SQL
查看所有数据库 show databases;
创建数据库 格式:create database 数据库名称; create database db1;
删除 格式:drop database 数据库名称;
查看数据库详情 格式:show create database 数据库名称;
show create database db1;
创建数据库指定字符集 格式:create database 数据库名称 character set utf8/gbk;
create database db2 character set gbk;
使用数据库 格式: use 数据库名称;
例:use db1;
表相关SQL
什么是表: 表是数据库中保存数据的单位
创建表 格式: create table 表名 (字段1名 字段1类型, 字段2名 字段2类型,...)
例:创建一个person表 保存名字、性别、年龄、工资
create table person(name varchar(10),gender varchar(5),age int,sal int);
查看所有表 show tables;
查看表详情 格式: show create table 表名;
show create table person;
创建表指定引擎和字符集 格式: create table 表名 (字段1名 字段1类型, 字段2名字段2类型,...)
engine=innodb/myisam charset=gbk/utf8;
create table t1(nama varchar(10),age int) engine=myisam charset=gbk; show create table t1;
查看表字段信息 格式: desc 表名; desc person;
修改表名 格式: rename table 原名 to 新名;
rename table person to t_person;
修改表引擎和字符集格式:alter table 表名 engine=myisam/innodb charset=gbk/utf8;
alter table t_person engine=myisam charset=gbk;
添加表字段
格式1: alter table 表名 add 字段名 字段类型; 最后
格式2: alter table 表名 add 字段名 字段类型 first; 最前面
格式3: alter table 表名 add 字段名 字段类型 after xxx;
alter table t1 add gender varchar(5);
alter table t1 add id int first;
alter table t1 add sal int after age;
删除表字段 格式: alter table 表名 drop 字段名 alter table t1 drop sal;
修改字段名称和类型 格式: alter table 表名 change 原字段名 新字段名 新类型; alter table t1 change nama name varchar(5);
修改字段类型和位置 格式: alter table 表名 modify 字段名 新类型 first/after xxx alter table t1 modify name varchar(10) after age;
删除表 drop table 表名;
SQL回顾
数据库相关SQL
查询所有 show databases;
创建数据库 create database db1 character set utf8/gbk;
查看详情 show create database db1;
删除 drop database db1;
使用 use db1;
表相关SQL
创建表 create table t1(name varchar(10),age int) engine=myisam/innodb charset=gbk/utf8;
查询所有表 show tables;
查询表详情 show create table t1;
查看表字段 desc t1;
修改表名 rename table t1 to t2;
修改表引擎字符集 alter table t1 engine=myisam/innodb charset=gbk/utf8;
添加表字段 alter table t1 add age int first/after xxx;
删除表字段 alter table t1 drop age;
修改表字段名称和类型 alter table t1 change age xxx 类型;
修改表字段的类型和位置 alter table t1 modify age 新类型 first/after xxx;
删除表 drop table t1;
数据库表的引擎
innodb:支持数据库的复杂操作,包括外键、事务等
myisam:只支持数据基础的增删改查操作
字符编码问题
如果使用Windows电脑SQL语句中写中文报错的话 通过以下指令解决 set names gbk;
领取专属 10元无门槛券
私享最新 技术干货