MySQL简介
MySQL简介
基本概念
关系数据库
"关系型"可以理解为"表格"的概念
一个关系型数据库由一个或数个表格组成
SQL:Structured Query Language,结构化查询语言
是关系型数据库中最重要的操作语言,可执行查增改删等功能
常用的关系型数据库:MySQL、Oracle、DB2、SQL Server、Access、MariaDB、PostgreSQL、SQLite
非关系型数据库
NoSQL -- Not Only SQL
目的:处理大数据
今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。我们如果要对这些用户数据进行挖掘,那SQL数据库已经不适合这些应用了, NoSQL数据库的发展也却能很好的处理这些大的数据。
常用的NoSQL数据库:mongoDB、Redis
认识MySQL
MySQL优点
体积小、速度快、开放源码、免费
一般中小型网站的开发都选择 MySQL ,最流行的关系型数据库
LAMP / LNMP
Linux作为操作系统
Apache或Nginx作为 Web 服务器
MySQL作为数据库
PHP作为服务器端脚本
都是免费或开放源码软件,不用花一分钱就可以建立起一个稳定、免费的网站系统
安装MySQL
Linux
本文都以
Ubuntu 16.04
为例
sudo apt-get install mysql-server mysql-client
Windows
官网下载安装包
配置环境变量
MySQL服务
Linux
service mysql status/start/stop/restart
/etc/init.d/mysql status/start/stop/restart
Window
MySQL Notifier
MySQL默认端口号:
3306
登陆MySQL
登陆:
mysql –h 主机名 -u 用户名 –p
注销:
quit;
修改密码:
mysqladmin –uroot –p旧密码 password 新密码
可视化工具
phpMyAdmin、MySQL-Front、MySQL Workbench、Navicat等
SQL语句
不区分大小写
以分号结尾
注释:
#注释内容直到行尾
--注释内容直到行尾
/*注释内容*/
执行环境
Linux:mysql shell
Windows:Command Line Client
可视化工具的SQL 编辑器
操作数据库
增
create database 数据库名;
删
drop database 数据库名;
查
show databases;
操作表
增
语法
操作表时,必须先指明所使用的数据库:use 数据库名;
create table 表名称(
列名 数据类型 约束条件,
列名 数据类型 约束条件,
...
列名 数据类型 约束条件);
数据类型
数字型
整型:int,(tinyint, smallint, mediumint, bigint)
浮点型:float,double
字符串
定长字符串:char(n)
变长字符串:varchar(n)
文本:text,(tinytext, mediumtext, longtext)
日期与时间
date, time, datatime
约束条件
null
not null
default
primary key
auto_increment
unsigned
删
drop table 表名;
改
alter table 表名 rename 新表名;
查
show tables;
操作列
增
alter table 表名 add 列名 数据类型 约束条件;
删
alter table 表名 drop 列名;
改
alter table 表名 change 列名称 新名称 新数据类型 新约束条件;
查
show columns from 表名;
desc 表名;
describe 表名;
操作数据
增
insert into 表名 values (值1, 值2, ...);
insert into 表名 (列名1, 列名2, ... ) values (值1, 值2, ...);
删
删除所有数据:
delete from 表名;
删除指定数据:
delete from 表名 where 条件;
改
更新所有数据:
update 表名 set 列名=新值;
更新指定数据:
update 表名 set 列名=新值 where 条件;
更新多列:
update 表名 set 列名1=值1, 列名2=值2 [where 条件];
更新为默认值:
update 表名 set 列名=default [where 条件];
查
查询所有数据:
select 列名 from 表名;
查询指定数据:
select 列名 from 表名 [where 条件];
查询多个列:
select 列名1, 列名2 from 表名 [where 条件];
查询所有列:
select * from 表名 [where 条件];
指定别名:
select 列名 as 别名 from 表明 [where 条件];
查询唯一值:
select distinct 列名 from 表名;
where 条件
比较运算符:=、 >、 <、 >=、 <=、 !=、 <>
扩展运算符:is null、 is not null、 like、 in、 between
逻辑运算符:and、 or
函数:count、sum、avg、max、min
排序:order by
分组:group by