##概述
對msyql的總結分爲五部分,如下:
1,MySql(一)之使用入門
包括:數據庫的概念,mysql的安裝,基本使用方式,創建庫,創建表和基本增刪改查sql語句的使用。
2,MySql(二)之高級使用
包括:數據類型的使用詳解,sql語句中的表達式,聚合函數,分頁,排序,分組等操作。及對各種時間類型的總結。字段主鍵和唯一的設置,sql注入及防止sql注入的方法介紹。
3,MySql(三)之多表查詢
包括:連接查詢和子查詢,連接又分爲交叉連接,內連接,外連接,外連接又分爲左外連接和右外連接。
4,MySql(四)之項目實戰
按照項目中使用sql的流程總結,包括:數據庫表結構的設計思路,數據庫關係圖繪製,navicate客戶端的使用,以及常見情況的使用分析。
5,MySql(五)之sql優化
包括:索引的使用,怎麼讓sql語句效率更高。
##數據庫簡介
一,什麼是數據庫
數據庫英語名字是:DataBase。它是按照數據結構來組織、存儲和管理數據的倉庫。誕生於六十年前。
當數據量很大,且有條理時通常使用數據庫存儲。
二,數據庫的分類
- 層次結構型數據庫。
- 網狀結構型數據庫。
- 關係結構型數據庫。
三,關係型數據庫
關係式數據結構即二維表格形式,類似於excel,x,y兩維。這是我們學習的重點。
常見的關係型數據庫有:
- Oracle:業界老大,安全性高,但收費。企業中多使用,尤其是大公司。
- DB2:IBM公司的。
- SQL Server:微軟的,中小型企業使用較多。
- MySQL(我們主要學習它,在企業中用的較多),免費。
- SQLite:微型數據庫,在android和IOS上使用。
##SQL簡介
首先要明白,SQL與數據庫是兩個截然不同的東西,數據庫是用來存儲數據的一個軟件,SQL是一種語言,只是這個語言可以操作數據庫。
SQL是Structured Query Language的縮寫,意思爲:結構化查詢語言。它是一種定義和操作關係型數據庫的語法。
常見的mysql,oracle等大多數關係型數據庫都支持sql語言。(不同數據庫有少量的特殊sql不相互通用,這極少部分的sql稱爲該數據庫的方言)
##MySql簡介
一,什麼是MySql
Mysql是一種數據庫類型,同時也是一個軟件,這個軟件可以存儲數據。
因爲是一個軟件,所以在使用時需要安裝。
二,MySql的下載與安裝
mysql是一個開源免費數據庫,所以直接在官網下載即可。
mysql官網地址:https://www.mysql.com/
mysql下載地址:https://dev.mysql.com/downloads/mysql/(注:此時下載的是社區服務器版,這是我們開發中需要的版本)
從該下載頁面可以看到mysql的版本:
如上圖發現,最新版本是8.0,但上一個版本就是5.7。對,mysql就是從5.7直接跳到了8.0。當前頁面爲8.0下載頁面,點擊右側可以選擇其他版本下載。
繼續在該頁面向下翻,選擇該版本對應的系統:
對於Centos系統選擇Linux-Generic即可,然後根據系統的位數選擇32位或64位。最後選擇第一個下載即可。點擊Download按鈕後會跳轉到下面頁面:
mysql建議我們註冊或登錄。我們可以直接選擇左下角的按鈕(僅僅下載).下載之後,使用Linux上的xz命令解壓xz文件。
xz -d mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz
然後得到一個tar文件,再使用tar解壓:tar -xvf mysql-8.0.12-linux-glibc2.12-x86_64.tar 然後得到:
mysql不需要安裝,此時即可以使用。
注:jdk,tomcat,mysql等安裝在Linux系統上的軟件一般都是公司運維操作,但作爲一個高級程序員也需要會這些。
三,數據庫服務器,數據庫和表三者的關係
說明:
Client不屬於MySql的範疇,Mysql可以看做是一個服務器,故需要client來操作,常用的client有SQLyog,navicat,也可以使用命令行操作。
1、mysql是一個關係型數據庫的廠商。當我們安裝並且配置完成後,mysql就可以爲我們提供服務了。我們可以通過客戶端來連接mysql,從而進行操作。
2、先有MySQL軟件——>再在MySQL下創建數據庫——>再在數據庫中創建表。
3、每一張表都屬於一個數據庫(DB),每一個DB都是在Mysql軟件下創建的。
4、通常一個項目對應一個數據庫,在這個數據庫中可以創建很多表。
四,操作數據庫的客戶端
以上安裝的數據庫軟件是存儲數據的,稱爲數據庫服務端,我們操作數據還需要客戶端,像java程序,php程序都是一種客戶端。市場上還有一些圖形化客戶端,如:Mysql官網提供的Workbench,以及SQLyog,navicat等。
其實在我們安裝等mysql軟件中也有操作mysql的工具,此時我們需要使用命令行來操作數據庫。下面着重講解怎麼使用命令行操作數據庫。
1,怎麼連接本地數據庫
mysql -u用戶名 -p密碼
mysql -uroot -proot
連接之後即進入了mysql操作狀態。下面再詳細講解怎麼使用sql語句操作mysql。
2,怎麼連接遠程數據庫
mysql -u用戶名 -p密碼 -h遠程數據庫IP地址 -P端口 -D數據庫名
mysql -uxia -p123456 -h192.168.1.88 -P3306 -Dintel
##基本sql語句
首先進入mysql:
一,操作數據庫軟件的sql語句
--查看數據庫版本
select version();
--查看數據庫當前時間
select now();
--查看用戶
select user();
二,操作數據庫的sql語句
--創建倉庫
create database 庫名;(注意:庫名多是大寫字母)
--查看有哪些倉庫
show databases;
--刪除某個庫
drop database 庫名;
--創建庫時指定編碼格式
create database 庫名 character set utf8;
進入某一個庫下:use 庫名;
三,操作表的sql語句
進行表操作之前必須要進入某個庫。進入庫的SQL語句:use 庫名;
1,創建一個數據庫表
create table person (
name varchar(10),
sex varchar(2),
age int
);
說明:
- 創建數據庫表使用create bable,person爲表名。
- 此時創建的表包括三列,name,sex,age。
2,查看該倉庫下的所有表:show tables;
3,查看某個表的所有列及列的數據類型:desc 表名;
4,刪除表:drop table 表名;
四,操作數據的sql語句
操作數據的sql語句是最常用的sql語句,最基本的操作有四個,增刪改查。
1,插入數據
--插入所有列
insert into person values("zhangsan","nan",18);
--插入部分列
insert into person (name,age) values("zhangsan",18);
2,查看數據
--查看所有數據
select * from person;
--查看符合條件的數據
select * from person where age = 18;
--查看同時符合多個條件的數據
select * from person where age = 18 and sex = 'nan';
--查看部分列的數據
select name,sex from person where age = 18;
--別名的使用,注:as可以省略
select name as "姓名",sex as "性別" from person where age = 18;
3,更新數據
--更新所有數據
update person set name='lisi';
--更新符合條件的數據
update person set name='lisi' where age=18;
4,刪除數據
--刪除表中的所有數據
delete from person;
--刪除符合條件的所有數據
update person set name='lisi' where age=18;
5,總結
- 插入時只操作一行,刪除,更改,查找時如果沒有添加where條件都是操作整個表,故刪除和更改操作一定要謹慎。
- 刪除,更改,查找都可以使用where指定限制條件,此時where的使用方法相同。