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