MySQL數據庫基礎學習筆記

1、MySQL數據庫軟件

一、安裝

點擊去往官網社區版本下載
記錄版本號:5.5.40 64位php

二、卸載

一、程序卸載
二、刪除C:/ProgramData目錄下的MySQL文件夾html

三、配置

MySQL服務啓動
  • 手動打開服務窗口(計算機管理-->服務窗口)
  • cmd--> services.msc 打開服務的窗口
  • 使用管理員打開cmd
    • net start mysql : 啓動mysql的服務
    • net stop mysql:關閉mysql服務
MySQL登陸
  • mysql -uroot -p密碼
  • mysql -hip -uroot -p鏈接目標的密碼
  • mysql --host=ip --user=root --password=鏈接目標的密碼

MySQL退出

  • exit
  • quit

MySQL目錄結構

  • MySQL安裝目錄:basedir="D:/develop/MySQL/"
    • 配置文件 my.ini
  • MySQL數據目錄:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
    • 數據庫 表 數據

2、SQL(Structured Query Language)結構化查詢語言

定義了操做全部關係型數據庫的規則。每一種數據庫操做的方式存在不同的地方,稱爲「方言」mysql

一、SQL通用語法

  • SQL 語句能夠單行或多行書寫,以分號結尾。
  • 可以使用空格和縮進來加強語句的可讀性。
  • MySQL 數據庫的 SQL 語句不區分大小寫,關鍵字建議使用大寫。
  • 3 種註釋
    • 單行註釋: -- 註釋內容 或 # 註釋內容(mysql 特有)
    • 多行註釋: /* 註釋 */

二、SQL分類

  • DDL(Data Definition Language)數據定義語言
    • 用來定義數據庫對象:建庫,建表等。關鍵字:create, drop,alter 等
  • DML(Data Manipulation Language)數據操做語言
    • 對錶中的記錄操做增刪改。關鍵字:insert, delete, update 等
  • DQL(Data Query Language)數據查詢語言
    • 對錶中的查詢操做。關鍵字:select, where 等
  • DCL(Data Control Language)數據控制語言(瞭解)
    • 對用戶權限的設置。關鍵字:GRANT, REVOKE 等

3、MySQL圖形化工具

4、DDL:操做數據庫、表

CRUD 表明:建立(create)、查詢(Retrieve)、修改(Update)、刪除(Delete)sql

一、操做數據庫

建立
  • 建立數據庫

create database 數據庫名稱;數據庫

  • 建立數據庫,判斷不存在,再建立

create database if not exists 數據庫名稱;函數

  • 建立數據庫,並指定字符集,如:gbk、utf8等

create database 數據庫名稱 character set 字符集名;工具

查詢
  • 查詢全部數據庫的名稱

show databases;ui

  • 查詢某個數據庫的字符集:查詢某個數據庫的建立語句

show create database 數據庫名稱;code

修改
  • 修改數據庫的字符集

alter database 數據庫名稱 character set 字符集名稱;htm

刪除

drop database 數據庫名稱;

  • 判斷數據庫存在,存在再刪除

drop database if exists 數據庫名稱;

使用數據庫
  • 查詢當前正在使用的數據庫名稱

select database();

  • 使用/切換數據庫

use 數據庫名稱;

二、操做表

建立
  • 建立表

create table 表名(
列名1 數據類型1,
列名2 數據類型2,
...
列名n 數據類型n
)

注意:最後一列,不要加逗號

  • 經常使用數據類型以下:
類型 描述
int 整數類型 (如:age int)
double 小數類型(如:score double(5,2)), 5指整數位數,2表明小數位數
date 日期。只包含年月日,yyyy-MM-dd
datetime 日期。包含年月日時分秒 yyyy-MM-dd HH:mm:ss
timestamp 時間戳類型。包含年月日時分秒 yyyy-MM-dd HH:mm:ss (注:若是未來不給這個字段賦值,或賦值爲null,則默認使用當前的系統時間,來自動賦值)
varchar 字符串 (如:name varchar(20), 指姓名最大20個字符)
  • 複製表

create table 表名 like 被複制的表名;

查詢
  • 查詢某個數據庫中全部的表名稱

show tables;

  • 查詢表結構

desc tables;

修改
  • 修改表名

alter table 表名 rename to 新的表名

  • 修改表的字符集

alter table 表名 character set 字符集名稱;

  • 添加一列

alter table 表名 add 列名 數據類型;

  • 修改列名稱 類型

alter table 表名 change 列名 新列名 新數據類型;
alter table 表名 modify 列名 新數據類型;

  • 刪除列

alter table 表名 drop 列名;

刪除

drop table 表名;
drop table if exists 表名;

5、DML:增刪改表中數據

添加數據
  • 語法

insert into 表名 (列名1,列名2,...列名n) values(值1,值2,...值n);

  • 注意:
    • 列名和值要一一對應。
    • 若是表名後,不定義列名,則默認給全部列添加值。
    • 除了數字類型,其餘類型須要使用引號(單雙均可以)引發來。
刪除數據
  • 語法

delete from 表名 [where 條件];

舉個例子:刪掉表中score爲null的數據

delete from stu where score is null;

  • 注意:

    • 若是不加條件,則刪除表中全部記錄。
  • 若是須要刪除全部記錄:

delete from 表名; ---不推薦使用,有多少條就會執行多少次刪除,效率低
truncate table 表名; ---推薦使用,先刪除表,而後在建立一張同樣的表,效率高

修改數據
  • 語法

update 表名 set 列名1 = 值1, 列名2 = 值2, ... [where 條件]

  • 注意:
    • 若是不加任何條件,則會將表中全部記錄所有修改。

6、DQL:查詢表中的記錄(重要)

一、語法

slelect
  字段列表
from
  表名列表
where
  條件列表
group by
  分組字段
having
  分組以後的條件
order by 
  排序
limit
  分頁限定

二、基礎查詢

  • 多個字段的查詢

select 字段名1,字段名2... from 表名;
select * from 表名; --查詢全部字段

  • 去除重複

select distinct 字段名 from 表名;

  • 計算列

select 字段名1 + 固定值(或者字段名2) from 表名;

注:通常只會進行數值型的計算
ifnull(須要判斷的值,替換值):null參與的運算,計算結果都爲null。

  • 起別名

select 字段名1 as 別名1, 字段名2 as 別名2 ... from 表名;

注:as也能夠省略不寫。

三、條件查詢

  • 語法:

select 字段名 from 表名 where 條件;

運算符
運算符 說明 例子
>、<、<=、>=、=、<> <>在SQL中表示不等於,在mysql中也可使用 !=, 沒有==
between...and 在一個範圍以內,包頭又包尾 score between 80 and 100; 表示在80到100之間,至關於:age>=80 && age<=100
in(集合) 表示多個值,使用逗號分隔 id not in(1,3,5); 查詢id不是1或3或5的
like 模糊查詢, 佔位符:_:單個任意字符,%:多個任意字符 name like '%張%'; 查詢包含張的
is null 查詢一列爲null的值,不能寫成 =null
and 或 && 與,SQL中建議使用前者,後者並不通用
or 或 || 與,SQL中建議使用前者,後者並不通用
not 或 ! 與,SQL中建議使用前者,後者並不通用

四、排序查詢

  • 語法

order by 排序字段1 排序方式1, 排序字段2 排序方式2...

  • 排序方式

    • asc:升序(默認)
    • desc:降序
  • 注意

    • 若是有多個排序條件,則當前邊的條件值同樣時,纔會判斷第二條件

五、聚合函數

  • 5個聚合函數
SQL中的聚合函數 做用
max(列名) 求這一列的最大值
min(列名) 求這一列的最小值
avg(列名) 求這一列的平均值
count(列名) 統計這一列有多少條記錄
sum(列名) 對這一列求總和
  • 語法

select 聚合函數(列名) from 表名;

  • 注意
    • 聚合函數的計算,會排除null值。解決:ifnull(列名,默認值)

六、分組查詢

  • 語法

group by 分組字段 [having 條件]

  • where 和 having 的區別?
    • where 在分組以前進行限定,若是不知足條件,則不參與分組。having在分組以後進行限定,若是不知足結果,則不會被查詢出來
    • where 後不能夠跟聚合函數,having能夠進行聚合函數的判斷。

七、分頁查詢

  • 語法

limit 開始的索引, 煤業查詢的條數;

  • 公式

開始的索引 = (當前的頁碼 - 1) * 每頁顯示的條數

  • 注意
    • limit 是一個MySQL"方言"。
相關文章
相關標籤/搜索