什么是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 会重新开始)