产品经理必备技能:MySQL数据库实战指南

发表时间: 2022-07-26 14:45

什么是Mysql?


My是MySQL的联合创始人 - Monty Widenius 的女儿的名字。MySQL是My和SQL的组合,这就是MySQL命名的由来。


MySQL原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品。


MySQL是一个数据库管理系统,也是一个关系数据库。它是由Oracle支持的开源软件。这意味着任何一个人都可以使用MySQL而不用支付一毛钱。另外,如果需要,还可以更改其源代码或进行二次开发以满足您的需要。


当您想收听最喜欢的歌曲时,可以从智能手机上打开播放列表。在这种情况下,播放列表是数据库就是从数据库中读取出来的。

当您拍摄照片并将其上传到微博,朋友圈等,这样的社交网络中的帐户时,您的照片库就有可能存储在一个数据库中。

当您浏览电子商务网站购买鞋子,衣服等时,您使用购物车就是数据库应用。

数据库无处不在



数据库发展阶段



数据库的发展经历了3个阶段:


l人工管理阶段

l文件系统阶段

l数据管理系统阶段



数据/表/数据库3者之间的关系



l数据是以表的形式出现的

l每行记录的是各种记录的名称

l每列记录的是名称锁对应的数据

l许多的行和列就组成了一张表格

l许多的表格就组成一个库



MySQL的特点与优势



MySQL 是开放源代码的数据库

MySQL 是开放源代码的数据库,任何人都可以获取该数据库的源代码。


这就使得任何人都可以修正 MySQL 的缺陷,并且任何人都能以任何目的来使用该数据库。MySQL 是一款可以自由使用的数据库。



MySQL 的跨平台性

MySQL 不仅可以在 Windows 系列的操作系统上运行,还可以在 UNIX、Linux 和 Mac OS 等操作系统上运行。因为很多网站都选择 UNIX、Linux 作为网站的服务器,所以 MySQL 的跨平台性保证了其在 Web 应用方面的优势。虽然微软公司的 SQL Server 数据库是一款很优秀的商业数据库,但是其只能在 Windows 系列的操作系统上运行。因此,MySQL 数据库的跨平台性是一个很大的优势。



价格优势

MySQL 数据库是一个自由软件,任何人都可以从 MySQL 的官方网站上下载该软件,这些社区版本的 MySQL 都是免费试用的,即使是需要付费的附加功能,其价格也是很便宜的。相对于 Oracle、DB2 和 SQL Server 这些价格昂贵的商业软件,MySQL 具有绝对的价格优势。



功能强大且使用方便

MySQL 是一个真正的多用户、 多线程 SQL 数据库服务器。它能够快速、有效和安全的处理大量的数据。相对于 Oracle 等数据库来说,MySQL 的使用是非常简单的。MySQL 主要目标是快速、健壮和易用。



mysql基本命令


基础常用命令


本地登录:mysql -uroot -p密码;(也可以不带密码,之后输入)


远程登录:mysql -h 登录ip -p 端口(通常3306) -uroot -p密码;


(desc 表名;查看表的各个字段的属性,以及自增键)


导出数据库文件,保存:mysqldump -u用户 -p 数据库名 > xx.sql;

导入数据库文件:mysql -u用户 -p密码 数据库名< xx.sql;


(也可以选择登录进去,在选择数据库后,使用source命令导入数据)



创建命令

创建用户:create user '用户名' @'ip' identified by '密码'


(ip是指用户登录mysql的电脑ip,可以写%,本地写localhost)


用户授权:grant 权限(select/insert/updata/all priveleges) on 表/数据库名 to '用户'@'ip' identified by '密码'


删除用户:drop user 用户名@ip


查数据库:show databases;


看表:show tables;

创建数据库:create database 数据库名 default charset utf8;


创建表:create table 表名(列名 数据类型 约束···,列名 数据类型 约束···)engine=innodb default charset=utf8


数据类型种类:


↘数字(int,tinyint,smallint,float,double)

↘字符串(char(个数)varchar(个数))时间(DATE,TIME,DATETIME)

↘枚举enum(值只能是枚举中的元素)

↘集合set(值只能是结合元素的组合)


创建含主键的表:create table 表名(列名 数据类型 primary key auto_increment,列名 数据类型 约束···)engine=innodb default charset=utf8


创建含外键的表:create table 表名(列名 数据类型 primary key,列名 数据类型 constraint fk_外键名 foreign key (列名[,]) references 表名2(列名[,])···)engine=innodb default charset=utf8




查表命令

条件查询

select * from 表名;


select 列名···from 表名;


select 列名 from 表名 where 列名(id等) >/



删除,修改,插入命令

插入

insert into 表名(列名1,列名2···) values(值1,值2···),(值1,值2···),(值1,值2···); 插入值;

insert into 表名1(列名) select 列名 from 表2; 在一个表中插入另一个表中数据


修改

update 表名 set 列名1=value1,列名2=value2 where 条件1 [and/or 条件2];


删除

delete from 表名; 清除表(如果有自增id,id 不会重新开始)

delete from 表名 where 条件;清除特定数据

truncate table 表名;清除表(如果有自增id,id 会重新开始)