當(dāng)前位置:首頁 > 公眾號(hào)精選 > 程序員小灰
[導(dǎo)讀]為啥學(xué)習(xí)MySQL?因?yàn)镸ySQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在web應(yīng)用方面,MySQL是最好的軟件。MySQL所使用的sql語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。這篇文章,我會(huì)為大家詳細(xì)梳理MySQL數(shù)據(jù)庫的方方面面。

前言

為啥學(xué)習(xí)MySQL呢?因?yàn)镸ySQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在web應(yīng)用方面,MySQL是最好的軟件。MySQL所使用的sql語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。

這篇文章,我會(huì)為大家詳細(xì)梳理MySQL數(shù)據(jù)庫的方方面面。

1.MySQL的入門

什么是數(shù)據(jù)庫呢?

  1. 數(shù)據(jù)庫,它是按照 數(shù)據(jù)結(jié)構(gòu)組織,存儲(chǔ)和管理數(shù)據(jù)的倉庫。
  2. 數(shù)據(jù)庫管理系統(tǒng), 指數(shù)據(jù)庫系統(tǒng)中對數(shù)據(jù)進(jìn)行管理的軟件系統(tǒng)。

讓我來整理一張思維導(dǎo)圖:

細(xì)節(jié)掌握:

  • 安裝配置,常用命令,操作數(shù)據(jù)庫;
  • 整型與浮點(diǎn)型,日期時(shí)間型與字符型;
  • 創(chuàng)建與查看數(shù)據(jù)庫表,修改數(shù)據(jù)庫表,刪除數(shù)據(jù)庫表;
  • 非空約束,主鍵約束,唯一約束,默認(rèn)約束,外鍵約束;
  • 管理工具:MySQL Workbench,SQLyog;
  • 單表數(shù)據(jù)記錄的插入與自動(dòng)編號(hào),單表數(shù)據(jù)記錄的更新,單表數(shù)據(jù)記錄的刪除,單表數(shù)據(jù)記錄的查詢,對查詢結(jié)果進(jìn)行分組,對查詢結(jié)果進(jìn)行排序,通過limit語句限制查詢記錄的數(shù)量;
  • mysql的運(yùn)算符,數(shù)值函數(shù),字符函數(shù),日期時(shí)間函數(shù),聚合函數(shù),信息函數(shù)與加密函數(shù);
  • 使用比較運(yùn)算符引發(fā)的子查詢,插入記錄時(shí)使用的子查詢
  • 多表連接,內(nèi)連接,外連接,自連接,多表更新,多表刪除
  • 創(chuàng)建,使用自定義函數(shù)
  • 創(chuàng)建存儲(chǔ)過程,使用存儲(chǔ)過程

mysql官網(wǎng):

安裝包下載:(安裝操作)

點(diǎn)擊安裝:

產(chǎn)品配置的操作:

打開服務(wù)框用win+r,輸入services.msc

2. mysql目錄結(jié)構(gòu)

  1. bin目錄:用于存儲(chǔ)一些可執(zhí)行文件
  2. include目錄:用于存儲(chǔ)包含的一些頭文件
  3. lib目錄:用于存儲(chǔ)一些庫文件
  4. share目錄:用于存儲(chǔ)錯(cuò)誤信息,字符集文件等
  5. data目錄:用于放置一些日志文件以及數(shù)據(jù)庫
  6. my.ini文件:數(shù)據(jù)庫的配置文件

啟動(dòng)與停止:

mysql參數(shù):

參數(shù) 描述
-u 用戶名
-p 密碼
-V 輸出版本信息并且退出
-h 主機(jī)地址

3.常用命令

修改用戶密碼的命令:

mysqladmin?命令用于修改用戶密碼

mysqladmin 命令格式:

mysqladmin?-u用戶名?-p舊密碼?password新密碼

顯示數(shù)據(jù)庫的命令

show?databases;

使用數(shù)據(jù)庫的命令

use?數(shù)據(jù)庫的名稱

顯示當(dāng)前連接的信息

  1. 顯示當(dāng)前 連接的數(shù)據(jù)庫:select database();
  2. 顯示當(dāng)前 服務(wù)器版本:select version();
  3. 顯示當(dāng)前 日期時(shí)間:select now();
  4. 顯示當(dāng)前 用戶:select user();

4.操作數(shù)據(jù)庫(創(chuàng)建,修改,刪除)

創(chuàng)建數(shù)據(jù)庫SQL:

create?database?[if not?exists]?db_name
[default]?character set [=]?charset_name
create?database?database_name;

修改數(shù)據(jù)庫的語法格式:

alter?database?db_name?
[default]?character set [=]?charset_name

刪除數(shù)據(jù)庫語法格式:

drop?database?[if exitsts]?db_name;

5.數(shù)據(jù)庫-數(shù)據(jù)類型

了解數(shù)據(jù)類型:(借助圖書管理系統(tǒng))

圖書類別表:

類別編號(hào)(category_id)?類別名稱(category)?父類別(parent_id)
1?計(jì)算機(jī)?0
2?醫(yī)學(xué)?0

圖書信息表:

圖書編號(hào)(book_id)?類別編號(hào)(book_category_id)?書名(book_name)?作者(author)?價(jià)格(price)?出版社(press)?出版時(shí)間(pubdate)?庫存(store)

借閱信息表:

圖書編號(hào)(book_id)?身份證號(hào)(card_id)?借出日期(borrow_date)?歸還日期(return_date)?是否歸還(status)

讀者信息表

身份證號(hào)(card_id)?姓名(name)?性別(sex)?年齡(age)?聯(lián)系電話(tel)?余額(balance)

數(shù)據(jù)類型:

整型:TINYINT-1字節(jié)SMALLINT-2字節(jié)MEDIUMINT-3字節(jié)INT-4字節(jié)BIGINT-8字節(jié)

浮點(diǎn)數(shù)類型和定點(diǎn)數(shù)類型:

float-4個(gè)字節(jié)
double-8個(gè)字節(jié)

decimal

日期時(shí)間類型:

字符型:

6.數(shù)據(jù)庫表結(jié)構(gòu)的操作

  • 創(chuàng)建和查看數(shù)據(jù)表
創(chuàng)建數(shù)據(jù)表:create?table

create?table?<表名>
(?
?列名1?數(shù)據(jù)類型[列級(jí)別約束條件][默認(rèn)值],
?列名2?數(shù)據(jù)類型[列級(jí)別約束條件][默認(rèn)值],
?...
?[表級(jí)別約束條件]
);
  • 查看數(shù)據(jù)庫表:
show?tables?[from?db_name];
  • 查看數(shù)據(jù)表基本結(jié)構(gòu):
show?columns?from?tbl_name;

describe?<表名>?/DESC<表名>
show?create?table?tbl_name;
  • 修改數(shù)據(jù)庫表

添加列:

alter?table?<表名>
?add?<新列名>?<數(shù)據(jù)類型>
??[?約束條件?]?[first?|?after?已存在列名];

修改列名:

alter?table?<表名>
?change?<舊列名>?<新列名>?<新數(shù)據(jù)類型>;

修改列的數(shù)據(jù)類型:

alter?table?<表名>?MODIFY?<列名>?<數(shù)據(jù)類型>

修改列的排列位置

alter?table<表名>
MODIFY?<列1>?<數(shù)據(jù)類型>?FIRST|AFTER<列2>

刪除列:

alter?table?<表名>?drop?<列名>;

修改表名:

alter?table?<舊表名>?RENAME?[TO]?<新表名>;
  • 刪除數(shù)據(jù)庫表
drop?table?[if exists]?表1,表2,...表n;

查看表分區(qū)

創(chuàng)建表分區(qū):使用partition by類型(字段)

使用values less than操作符定義分區(qū)

create?table?bookinfo(
?book_id?int,
?book_name?varchar(20)
)
partition?by?range(book_id)(
?partition?p1?values?less?than(20101010),
?partition?p3?values?less?than?MAXVALUE
);

7.子查詢

select?price?from?bookinfo where book_id?=?20101010;

select?*?from?readerinfo;

update?readerinfo set balance?=?balance-(select?price?from?bookinfo where book_id?=?20101010)?*?0.05 where card_id?= '2323232342sxxxxx';

什么是子查詢呢?

它是指嵌套在其他sql語句內(nèi)的查詢語句。

select?*?from?table1 where col1?=?(select?col2?from?table2);
insert?into?bookcategory(category,parent_id)values('x',2),('y',2);


insert?into?bookinfo(book_id,book_category_id,book_name,author,price,press,pubdate,store)
values
(45245244,?6, 'x', '1,2,3?等',?115, '出版社', '2020-06-01',10),
(45342545,?6, 'y', '1,?2',27.8, '出版社', '2020-07-01',?5);

update?readerinfo set balance?=?500 where card_id?= '683246';

insert?into?borrowinfo(book_id,card_id,borrow_date,return_date,status)
values
(35452455,'5724154','2020-10-10','2020-11-10','否');

查詢借閱信息表, 顯示借 xx這本書的借閱記錄

select?*?from?borrowinfo where book_id?=?(select?book_id?from?bookinfo where book_name?= 'xx');

查詢圖書信息表, 顯示圖書價(jià)格小于圖書平均價(jià)格的所有圖書信息

select?*?from?bookinfo where price?< (select round(avg(price),2) from bookinfo);

查詢圖書信息表,顯示圖書類別不是’數(shù)據(jù)庫’的所有圖書信息

select?*?from?bookinfo where book_category_id<>(select?category_id?from?bookcategory where category?= '數(shù)據(jù)庫');

查詢圖書信息表,顯示圖書類別為’計(jì)算機(jī)’的所有圖書信息

select?*?from?bookcategory;

select?*?from?bookinfo where book_category_id?=?ANY(select?category_id?from?bookcategory where parent_id?=?1);


select?*?from?bookinfo where price?>?ANY?(select?price?from?bookinfo where book_category_id?=4);??

select?*?from?bookinfo where price?>?ALL?(select?price?from?bookinfo where book_category_id?=4);

查詢圖書信息表,顯示圖書類別為’2’的所有圖書信息

in 后面的子查詢返回一個(gè)數(shù)據(jù)列,等于數(shù)據(jù)列里的任意一個(gè)值都是滿足條件的

select?*?from?bookinfo where book_category_id in (select?category_id?from?bookcategory where parent_id?=?2);

select?*?from?bookinfo where book_category_id?=?any?(select?category_id?from?bookcategory where parent_id?=?2);

查看圖書類別表中是否有’y’的類別,如果有,則查看圖書信息表

select?*?from?bookinfo where exists?(select?category_id?from?bookcategory where category='y');

select?*?from?bookinfo where exists?(select?category_id?from?bookcategory where category='x');

insert into select語句從一個(gè)表復(fù)制數(shù)據(jù),然后把數(shù)據(jù)插入到一個(gè)已存在的表中。

insert?into?table2?select?*?from?table1;

需要?jiǎng)?chuàng)建一張罰款記錄信息表,包含如下信息:圖書編號(hào)、身份證號(hào)、應(yīng)還日期、實(shí)際還書日期,罰款金額

記錄來源于借閱信息表超出還書時(shí)間還未還書的讀者

create?table?readerfee(
?book_id?int,
?card_id?char(18),
?return_date?date,
?actual_return_date?date,
?book_fee?decimal(7,3),
?primary?key(book_id,card_id)
);

select?book_id,card_id,return_date?from?borrowinfo where datediff(sysdate(),return_date)>0?and?status?= '否';

insert?into?readerfee(book_id,card_id,return_date)?select?book_id,card_id,return_date?from?borrowinfo where datediff(sysdate(),return_date)>0?and?status?= '否';

select?*?from?readerfee;

身份證號(hào)為5461xxxxxxx的讀者將超限的圖書20201101歸還,根據(jù)描述實(shí)現(xiàn)如下需求:

  • 更新借閱信息表,將借閱狀態(tài)(status)更新為‘是’。
  • 更新罰款記錄信息表,更新實(shí)際還書日期和罰款金額,罰款金額為每超出一天扣0.2元。
update?borrowinfo set status?= '是' where book_id?=?20201101?and?card_id?= '5461xxxxxxx';

select?*?from?borrowinfo;

update?readerfee set actual_return_date=sysdate(),?book_fee=datediff(sysdate(),return_date)*0.2 where book_id?=?20201101?and?card_id?= '5461xxxxxxx';

select?*?from?readerfee;

8.mysql的約束

它事一種限制,通過對表的行或列的數(shù)據(jù)做出限制,來確保表的數(shù)據(jù)的完整性,唯一性。

表結(jié)構(gòu):

圖書(圖書編號(hào)book_id,類別編號(hào)book_category_id,書名book_name,作者author)

在mysql中常用的幾種約束類型:

約束類型 非空約束 主鍵約束 唯一約束 默認(rèn)約束 外鍵約束
關(guān)鍵字 not null primary key unique default foreign key

圖書信息表:

(圖書編號(hào)book_id,類別編號(hào)book_category_id,書名book_name,作者author,價(jià)格price,出版社press,出版時(shí)間pubdate,庫存store)

圖書類別表:

(類別編號(hào)category_id- 主鍵,類別名稱category- 唯一,父類別parent_id-非空)

讀者信息表:

(身份證號(hào)card_id,姓名name,性別sex,年齡age,聯(lián)系電話tel,余額balance)

借閱信息表:

(圖書編號(hào)book_id,身份證號(hào)card_id,借出日期borrow_date,歸還日期return_date,是否歸還status)

非空約束

null字段值可以為空

not null字段值禁止為空

非空約束

非空約束指字段的值不能為空。對于使用了非空約束的字段如果用戶在添加數(shù)據(jù)時(shí),沒有指定值,數(shù)據(jù)庫系統(tǒng)會(huì)報(bào)錯(cuò)。

列名?數(shù)據(jù)類型?not?null

創(chuàng)建表時(shí)添加非空約束

create?table?bookinfo(
?book_id?int,
?book_name?varchar(20)?not?null
);

刪除非空約束

alter?table?bookinfo?modify?book_name?varchar(20);

通過修改表添加非空約束

alter?table?bookinfo?modify?book_name?varchar(20)?not?null;

主鍵約束

主鍵約束:要求主鍵列的數(shù)據(jù)唯一,并且不允許為空,主鍵能夠唯一地標(biāo)識(shí)表中的一條記錄。

主鍵的類型:

主鍵分為單字段主鍵多字段聯(lián)合主鍵

單字段主鍵:是由一個(gè)字段組成

在定義列的同時(shí)指定主鍵
列名?數(shù)據(jù)類型?primary?key;

在列定義的后邊指定主鍵
[constraint<約束名>]?primary?key(列名);

創(chuàng)建表時(shí)添加主鍵約束

create?table?bookinfo(
?book_id?int?primary?key,
?book_name?varchar(20)?not?null
);
create?table?bookinfo(
?book_id?int,
?book_name?varchar(20)?not?null,
?constraint?pk_id?primary?key(book_id)
);

刪除主鍵約束

ALTER?TABLE?bookinfo?DROP?PRIMARY?KEY;

通過修改表的方式添加主鍵約束

ALTER?TABLE?bookinfo?ADD?PRIMARY?KEY(book_id);

多字段聯(lián)合主鍵,復(fù)合主鍵

主鍵有多個(gè)字段聯(lián)合組成。primary key(字段1,字段2,...字段n);

create?table?borrowinfo(
book_id?int,
card_id?char(18),
primary?key(book_id,card_id)
);

通過修改表為列添加主鍵

create?table?bookinfo(
?book_id?int,
?book_name?varchar(20)?not?null
);

alter?table?bookinfo?modify?book_id?int?primary?key;
alter?table?bookinfo?add?primary?key(book_id);
alter?table?bookinfo?add?constraint?pk_id?primary?key(book_id);

唯一約束

唯一約束要求該列唯一,允許為空,唯一約束可以確保一列或者幾列不出現(xiàn)重復(fù)值。

語法規(guī)則:

列名?數(shù)據(jù)類型?unique

[constraint?<約束名>]?unique(<列名>)

創(chuàng)建表時(shí)添加唯一約束

CREATE?TABLE?bookinfo(
?book_id?INT?PRIMARY?KEY,
?book_name?VARCHAR(20)?NOT?NULL?UNIQUE?
);

或:

create?table?bookinfo(
book_id?int?primary?key,
book_name?varchar(20)?not?null,
constraint?uk_bname?unique(book_name)
);

通過修改表的方式添加唯一約束

alter?table?bookinfo?modify?book_name?varchar(20)?unique;

ALTER?TABLE?bookinfo?ADD?UNIQUE(book_name);

alter?table?bookinfo?
add?constraint?uk_bname?unique(book_name);

刪除唯一約束

ALTER?TABLE?book_info?DROP??KEY??uk_bname;

ALTER?TABLE?book_info?DROP??INDEX??uk_bname;

唯一約束和主鍵約束的區(qū)別

  1. 一個(gè)表中可以有多個(gè)unique聲明,但只能有一個(gè)primary key聲明
  2. 聲明為primary key的列不允許有空值
  3. 聲明為unique的列允許空值

默認(rèn)約束

默認(rèn)約束是指某列的默認(rèn)值

列名?數(shù)據(jù)類型?default?默認(rèn)值

創(chuàng)建表時(shí)添加默認(rèn)約束

CREATE?TABLE?bookinfo(
?book_id?INT?PRIMARY?KEY,
?press?VARCHAR(20)??DEFAULT '出版社' );

通過修改表的方式添加默認(rèn)約束

ALTER?TABLE?bookinfo?
ALTER?COLUMN?press?SET?DEFAULT '出版社';

alter?table?bookinfo?
modify?press?varchar(10)?default '出版社';

刪除默認(rèn)約束

alter?table?bookinfo?modify?press?varchar(20);

ALTER?TABLE?bookinfo?
ALTER?COLUMN?press?DROP?DEFAULT;

外鍵約束

外鍵是用來在兩個(gè)表的數(shù)據(jù)之間建立鏈接,可以是一列或者多列,一個(gè)表可以有一個(gè)或者多個(gè)外鍵。

外鍵對應(yīng)的是參照完整性,一個(gè)表的外鍵可以為空值,若不為空值,則每一個(gè)外鍵必須等于另一個(gè)表中主鍵的某個(gè)值。

作用:保持?jǐn)?shù)據(jù)的一致性,完整性。

創(chuàng)建表時(shí)添加外鍵約束

圖書類別表(父表)
CREATE?TABLE?bookcategory(
?category_id?INT?PRIMARY?KEY,
?category?VARCHAR(20),
?parent_id?INT
);

圖書信息表(子表)
CREATE?TABLE?bookinfo(
?book_id?INT?PRIMARY?KEY,
?book_category_id??INT,
?CONSTRAINT?fk_cid?FOREIGN?KEY(book_category_id)?REFERENCES?bookcategory(category_id)
);

通過修改表的方式添加外鍵約束

ALTER??TABLE??bookinfo??
ADD??FOREIGN?KEY(book_category_id)?REFERENCES??bookcategory(category_id);

刪除外鍵約束

ALTER?TABLE?bookinfo?DROP?FOREIGN?KEY?fk_cid;

外鍵約束的參照操作

cascade,從父表刪除或更新且自動(dòng)刪除或更新子表中匹配的行

create?table?bookinfo(
?book_id?int?primary?key,
?book_category_id?int,
?constraint?fk_cid?foreign?key?(book_category_id)?references?bookcategory(category_id)?on?delete?cascade);

創(chuàng)建圖書管理系統(tǒng)表

圖書類別表

create?table?bookcategory(
category_id?int?primary?key,
category?varchar(20)?not?null?unique,
parent_id?int?not?null
);

圖書信息表

create?table?bookinfo(

book_id?int?primary?key,
book_category_id?int,
book_name?varchar(20)?not?null?unique,
author?varchar(20)?not?null,
price float(5,2)?not?null,
press?varchar(20)?default '機(jī)械工業(yè)出版社',
pubdate?date?not?null,
store?int?not?null,
constraint?fk_bcid?foreign?key(book_category_id)?references?bookcategory(category_id)

);

讀者信息表

create?table?readerinfo(

card_id?char(18)?primary?key,
name?varchar(20)?not?null,
sex?enum('男','女','保密')?default '保密',
age?tinyint,
tel?char(11)?not?null,
balance?decimal(7,3)?default?200

);

借閱信息表

create?table?borrowinfo(

book_id?int,
card_id?char(18),
borrow_date?date?not?null,
return_date?date?not?null,
status?char(11)?not?null,
primary?key(book_id,card_id)

);

9.數(shù)據(jù)庫表記錄的操作

單表數(shù)據(jù)記錄的插入

語法格式:

insert?into?table_name(column_list)?values(value_list);

為表的所有列插入數(shù)據(jù)

insert?into?bookcategory
(category_id,category,parent_id)values
(1,'x',0);

insert?into?bookcategory?values(2,'y',0);

為表的指定列插入數(shù)據(jù)

insert?into?readerinfo
(card_id,name,tel)values('4562135465','張飛','4651354651');

同時(shí)插入多條記錄

insert?into?bookcategory(category_id,category,parent_id)values(3,'x',1),(4,'y',1),(5,'z',2);

將查詢結(jié)果插入的表中

insert?into?bookcategory?select?*?from test where id>5;

自動(dòng)增加

設(shè)置表的屬性值自動(dòng)增加:

列名?數(shù)據(jù)類型?auto_increment

創(chuàng)建表時(shí)添加自增列

create?table?bookcategory_tmp(
?category_id?int?primary?key?auto_increment,
?category?varchar(20)?not?null?unique,
?parent_id?int?not?null
)auto_increment=5;

測試自增列

insert?into?bookcategory_tmp(category,parent_id)values('dadaqianduan',0);

去掉自增列

alter?table?bookcategory_tmp?modify?category_id?int;

添加自增列

alter?table?bookcategory_tmp?modify?category_id?int?auto_increment;

修改自增列的起始值

alter?table?bookcategory_tmp?auto_increment?=?15;

insert?into?bookcategory_tmp(category,parent_id)values('文學(xué)',0);

刪除圖書信息表的外鍵

alter?table?bookinfo?drop?foreign?key?fk_bcid;

為圖書類別表添加自動(dòng)編號(hào)的功能

alter?table?bookcategory?modify?category_id?int?auto_increment;

恢復(fù)關(guān)聯(lián)

alter?table?bookinfo?add?constraint?fk_bcid?foreign?key(book_category_id)references?bookcategory(category_id);

單表數(shù)據(jù)記錄的更新

向借閱信息表插入一條借閱信息

insert?into?borrowinfo(book_id,card_id,borrow_date,return_date,status)values(20202010,46516874,'2020-11-29','2020-12-29','否');

更新讀者信息表中的余額

查看書的價(jià)格???79.80
select?price?from?bookinfo where book_id?=?20202010;

更新余額

update?readerinfo set balance?=?balance?-?79.80*0.05 where card_id?= '46516874';
select?*?from?readerinfo;

更新圖書信息表的庫存

update?bookinfo set store?=?store?-1 where book_id?=?20150201;
select?*?from?bookinfo;

單表數(shù)據(jù)記錄的刪除

刪除指定條件的記錄

delete?from?readerinfo where card_id?= '46461265464565';

刪除表中所有記錄

delete?from?readerinfo;

truncate?table?readerinfo;快

想要?jiǎng)h除表中的所有記錄,可以使用truncate table語句,truncate將直接刪除原來的表,并重新創(chuàng)建一個(gè)表,其語法結(jié)構(gòu):

truncate?table?table_name

查詢兒科學(xué)的類別編號(hào)

select?category_id?from?bookcategory where category='兒科學(xué)';

刪除圖書編號(hào)為5的圖書信息

delete?from?bookinfo where book_category_id?=?5;

刪除圖書類別表中兒科學(xué)這個(gè)類別

delete?from?bookcategory where category?= '兒科學(xué)';

單表數(shù)據(jù)記錄的查詢

查詢所有列

select?*?from?bookcategory;

select?category_id,category,parent_id?from?bookcategory;

查詢指定列

select?category?from?bookcategory;

select?category_id,category?from?bookcategory;

查詢指定條件的記錄

select?book_id,book_name,price?from?bookinfo where press='出版社';

查詢結(jié)果不重復(fù)的記錄

select?distinct?press?from?bookinfo;

查看空值

select?*?from?readerinfo where age?is?null;

分組

統(tǒng)計(jì)讀者信息表中男讀者的人數(shù)

select?count(*)?from?readerinfo where sex='男';

將讀者信息表中的記錄按性別進(jìn)行分組

select?sex?from?readerinfo?group?by?sex;

將讀者信息表中的記錄按性別進(jìn)行分組,并統(tǒng)計(jì)每種性別的人數(shù)

select?sex,count(*)?from?readerinfo?group?by?sex;

將讀者信息表中的記錄按性別進(jìn)行分組,分組后人數(shù)大于的性別

select?sex?from?readerinfo?group?by?sex?having?count(sex)>2;

排序

通過order by子句對查詢的結(jié)果進(jìn)行排序

order?by?列名?[asc|desc]

排序方向:

  1. 排序分為升序和降序,默認(rèn)為升序
  2. 升序asc
  3. 降序desc

單列排序

select?*?from?bookinfo?order?by?price;

多列排序

select?*?from?bookinfo?order?by?price,store;

指定排序方向

select?*?from?bookinfo?order?by?price,store?desc;

limit語句限制查詢記錄的數(shù)量

前3行記錄

select?*?from?bookinfo limit 3;

從第3條記錄開始的后2條記錄

select?*?from?bookinfo limit 2,2;

select?*?from?bookinfo limit 2?offset?2;
insert?into?bookinfo(book_id,book_category_id,book_name,author,price,press,pubdate,store)
values
(454235424,4, '123', 'xxx',85.8, '出版社', '2020-04-01',?10),
(452454542,4, '456', 'xxx',?35.5, '出版社', '2020-08-01',?20),
(454578754,4, '789', 'xxx',?46.6, '出版社', '2020-05-01',8);

將圖書信息按照庫存進(jìn)行分組,統(tǒng)計(jì)每組庫存下的個(gè)數(shù),然后按庫存進(jìn)行降序排序,并查看結(jié)果中的前四條記錄

select?store,count(*)from?bookinfo?
group?by?store?
order?by?store?desc limit 4;

10.運(yùn)算符與函數(shù)

MySQL 主要有以下幾種運(yùn)算符:

  1. 算術(shù)運(yùn)算符
  2. 比較運(yùn)算符
  3. 邏輯運(yùn)算符
  4. 位運(yùn)算符

算術(shù)運(yùn)算符

比較運(yùn)算符

邏輯運(yùn)算符

位運(yùn)算符

運(yùn)算符優(yōu)先級(jí)

讀者的身份證號(hào),姓名,電話,余額。

select?card_id,?name,?tel,?balance?from?readerinfo where balance-200<=0;

查看讀者信息表中,余額大于200的讀者信息。

select?*?from?readerinfo where balance>200;

查看讀者信息表中,余額不等于200的讀者信息。

select?*?from?readerinfo where balance?<>?200;

查看讀者信息表中,年齡不為空的讀者信息。

select?*?from?readerinfo where age?is?not?null;

查看讀者信息表中,余額在350到450之間的讀者信息。

select?*?from?readerinfo where balance?between?350?and?450;
select?*?from?readerinfo where name in('dada','dada1','dada2');

select?*?from?readerinfo where name?like '張_';

select?*?from?readerinfo where tel?like '135%';

select?*?from?bookinfo where price>50?and?store<5; select * from bookinfo where price>80?or?press?= '出版社';

select?*?from?bookinfo where price?not?between?50?and?100;

數(shù)值函數(shù)

ceil返回大于x的最小整數(shù)值

select?ceil(28.55);?//?29

floor返回小于x的最大整數(shù)值

select?floor(28.55);?//?28

四舍五入 round返回最接近于參數(shù)x的整數(shù),對參數(shù)x進(jìn)行四舍五入

select?round(28.55);?//?29
select?round(28.55,1),round(28.55,0),round(28.55,-1);
//?28.6?29?30

截?cái)嗪瘮?shù)

select?truncate(28.55,1),truncate(28.55,0),truncate(28.55,-1);
//?28.5?28?20

取模,返回x被y除后的余數(shù)

select?mod(11,2);?//?1
select?book_id,book_name,price,?round(price)?from?bookinfo;

select?*?from?bookinfo where mod(book_id,2)=0;

字符函數(shù)

字符串連接

select?concat('hello','world');
select?concat_ws('-','hello','world');

字母轉(zhuǎn)換大小寫

select?lower('Hello?World');
select?upper('Hello?World');

求長度

select?length('?hello?');

刪除空格

select?ltrim('?hello?'),length(ltrim('?hello?'));
select?rtrim('?hello?'),length(rtrim('?hello?'));
select?trim('?hello?'),length(trim('?hello?'));

截取字符串

select?substring('hello?world',1,5);

select?substring('hello?world',-5,2);

獲取指定長度的字符串

select?left('hello?world',?5);?//?hello
select?right('hello?world',?5);?//?world

替換函數(shù)

select?replace('hello?world','world','mysql');?//?hello?mysql

格式化函數(shù)

select?format(1234.5678,2),format(1234.5,2),format(1234.5678,0);
//1234.57?1234.50?12345

select?book_id,book_name,format(price,2)from?bookinfo;

日期和時(shí)間函數(shù)

查看當(dāng)前的系統(tǒng)日期

select?curdate();
//?2020-02-02
select?curdate()+0;

select?curtime()+0;

查看當(dāng)前的系統(tǒng)日期和時(shí)間

select?now();?//?2020-10-10?12:12:12

select?sysdate();?//?2020-10-10?12:12:12

date_add(date,interval expr type):year,month,day,week,hour

日期的加運(yùn)算
select?date_add('2020-01-01',?interval?5?month);?//?2020-06-01

計(jì)算兩個(gè)日期之間間隔的天數(shù)
select?datediff('2020-02-10','2020-02-01');

日期格式化
select?date_format('2020-02-01', '%Y%m');

聚合函數(shù)(分組函數(shù))

| 名稱 | 描述 | |avg()| 返回某列的平均值 | |count()| 返回某列的行數(shù) | |max()| 返回某列的最大值 | |min()| 返回某列的最小值 | |sum()| 返回某列值的和 |

求圖書信息表中,所有圖書的平均價(jià)格。

select?avg(price)?from?bookinfo;

求圖書信息表中,所有圖書的總價(jià)格。

select?sum(price)?from?bookinfo;

求圖書信息表中的最大庫存。

select?max(store)?from?bookinfo;

求圖書信息表中的最小庫存。

select?min(store)?from?bookinfo;

求圖書信息表中有多少種圖書。

select?count(*)?from?bookinfo;

按類別進(jìn)行分組, 查詢每種類別下有多少種圖書以及每種類別圖書的庫存總和。

select?book_category_id?as '圖書類別',count(book_id)?as '圖書種類',?sum(store)?as '庫存總和' from?bookinfo?group?by?book_category_id;

信息函數(shù)與加密函數(shù)

系統(tǒng)信息函數(shù)

查看當(dāng)前MySQL服務(wù)器版本的版本號(hào)
select?version();

查看MySQL服務(wù)器當(dāng)前連接的次數(shù)
select?connection_id();

查看當(dāng)前的數(shù)據(jù)庫名
select?schema();

查看當(dāng)前登錄的用戶名
select?user();

加密函數(shù)

select?md5('test');

create?table?myuser(
?username?varchar(10),
?password?varchar(35)
);

insert?into?myuser?values('user1',md5('pwd1'));

select?*?from?myuser;

select?*?from?myuser where username?= 'user1' and?password?=?md5('pwd1');

select?password('rootpwd'); set password?=?password('rootpwd');

select?user,authentication_string?from?mysql.user;

11.多表連接查詢

多表連接查詢是從多個(gè)表中獲取數(shù)據(jù)。

由圖書信息表:(圖書編號(hào)book_id,類別編號(hào)book_category_id,書名book_name)

由圖書類別表:(類別編號(hào)category_id,類別名稱category,父類別parent_id)

獲取表:(圖書編號(hào)book_id,書名book_name,類別名稱category)

多表連接的語法結(jié)構(gòu):

table_reference
[INNER]?JOIN?|?{LEFT|RIGHT}?[OUTER]?JOIN
table_reference
on?conditional_expr

多表連接 通過查看圖書信息表和圖書類別表 來獲取圖書編號(hào)、圖書名稱、圖書類別

select?book_id,book_name,category?from?bookinfo?inner?join?bookcategory??on?bookinfo.book_category_id?=?bookcategory.category_id;

內(nèi)連接

根據(jù)連接條件從多個(gè)表中查詢選擇數(shù)據(jù),顯示這些表中與連接條件相匹配的數(shù)據(jù)行,組合成新記錄。(內(nèi)連接就是兩者共同都有的

內(nèi)連接的語法結(jié)構(gòu):

select?column_list
from?t1
[INNER]?JOIN?t2?ON?join_condition1
[INNER]?JOIN?t3?ON?join_condition2
...] where where_conditions;

由于圖書借閱統(tǒng)計(jì)的需要,想查詢未歸還圖書的圖書編號(hào),圖書名稱,身份證號(hào),姓名,電話,歸還日期, 是否歸還。

select?borrowinfo.book_id,book_name,borrowinfo.card_id,?name,?tel,?return_date,?status?from?borrowinfo
inner?join?bookinfo?on?borrowinfo.book_id?=?bookinfo.book_id
inner?join?readerinfo?on?borrowinfo.card_id?=?readerinfo.card_id where borrowinfo.status?= '否';

select?t1.book_id,book_name,t1.card_id,?name,?tel,?return_date,?status?from?borrowinfo?t1
join?bookinfo?t2?on?t1.book_id?=?t2.book_id
join?readerinfo?t3?on?t1.card_id?=?t3.card_id where t1.status?= '否';

外連接

外連接將查詢多個(gè)表中相關(guān)聯(lián)的行。

外連接分為:左外連接left outer join;右外連接right outer join

根據(jù)業(yè)務(wù)需要,我們需要查看圖書類別表中的所有類別下都有哪些圖書。

select?book_id,?book_name,?category?from?bookcategory
left?join?bookinfo?on?bookcategory.category_id?=?bookinfo.book_category_id where parent_id<>0;

select?book_id,?book_name,?category?from?bookinfo?a
right?join?bookcategory?b?on?b.category_id?=?a.book_category_id;

select?*?from?bookcategory;

左外連接:顯示左表全部記錄,右表滿足連接條件的記錄。

右外連接:顯示右表全部記錄,左表滿足連接條件的記錄。

語法結(jié)構(gòu):

select?column_list
from?t1
left?|?right?[outer]?join?t2?on?join_condition1;

自連接

如果在一個(gè)連接查詢中,涉及的兩個(gè)表都是同一個(gè)表,這種查詢稱為自連接

查詢所有圖書類別的圖書類別編號(hào),類別名稱,上級(jí)分類名稱。

select?*?from?bookcategory;

select?s.category_id?as'圖書類別編號(hào)',?s.category?as '圖書類別名稱',?p.category?as'圖書的上級(jí)分類名稱' from?bookcategory?s
inner?join?bookcategory?p
on?s.parent_id?=?p.category_id;

多表更新

update?
table1?{[inner]?join?|?{left|right}?[outer]?join}?table2
on?conditional_expr set col1?=?{expr1|default}
[,col2?=?{expr2|default}]...
[where where_condition]

身份證號(hào)為432xxxxxx的讀者將超時(shí)的圖書86154歸還,根據(jù)描述實(shí)現(xiàn)如下需求:

  1. 更新借閱信息表,將借閱狀態(tài)(status)更新為‘是’。
  2. 更新罰款記錄信息表,更新實(shí)際還書日期和罰款金額,罰款金額為每超出一天扣0.2元。
  3. 同時(shí)更新讀者信息表的余額。(在余額中扣除罰款金額)
update?readerfee?t1?join?readerinfo?t2?on?t1.card_id?=?t2.card_id set actual_return_date?=?sysdate(),book_fee=datediff(sysdate(),return_date)*0.2,balance?=?balance?-?book_fee where t1.book_id?=?86154?and?t1.card_id?= '432xxxxxx';

select?*?from?readerinfo;

多表刪除

delete?table1[.*],?table2[.*]
from?table1?{[inner]join|{left|right}[outer]join}?table2
on?conditional_expr
[where where_condition]

圖書類別表,圖書信息表:

由于業(yè)務(wù)需求,需要?jiǎng)h除圖書類別表中在圖書信息表中沒有圖書記錄的類別。

select?book_id,book_name,category?from?bookcategory_bak?t1
left?join?bookinfo_bak?t2?
on?t1.category_id?=?t2.book_category_id where parent_id<>0;

delete?t1?from?bookcategory_bak?t1
left?join?bookinfo_bak?t2?
on?t1.category_id?=?t2.book_category_id where parent_id<>0?and?book_id?is?null;

select?*?from?bookcategory_bak;

需要?jiǎng)h除圖書類別表的編程語言的類別,以及圖書信息表中關(guān)于編程語言的圖書記錄。

select?book_id,book_name,category_id,category?from?bookcategory_bak?t1
inner?join?bookinfo_bak?t2
on?t1.category_id?=?t2.book_category_id;

delete?t1,t2?from?bookcategory_bak?t1
inner?join?bookinfo_bak?t2
on?t1.category_id?=?t2.book_category_id where t1.category_id?=?3;

多表連接

根據(jù)連接查詢返回的結(jié)果:內(nèi)連接(inner join),外連接(outer join),交叉連接(cross join)。

根據(jù)連接條件所使用的操作符:相等連接,不等連接。

12.自定義函數(shù)

創(chuàng)建函數(shù)

CREATE?FUNCTION?函數(shù)名(參數(shù)列表)?RETURNS?返回類型
BEGIN
?函數(shù)體
END

調(diào)用函數(shù)

SELECT?函數(shù)名(參數(shù)列表)

查看函數(shù)

SHOW?FUNCTION?STATUS;

刪除函數(shù)

DROP?FUNCTION?IF?EXISTS?function_name;

函數(shù):需要有返回值,可以指定0~n個(gè)參數(shù)

創(chuàng)建自定義函數(shù):

create function function_name([func_parameter])
returns type [characteristics..]?routine_body

Characteristics指定存儲(chǔ)函數(shù)的特性,取值舉例:

sql security{definer|invoker}指明誰有權(quán)限來執(zhí)行。

definer表示只有定義者才能執(zhí)行。

invoker表示擁有權(quán)限的調(diào)用者才可以執(zhí)行,默認(rèn)情況下,系統(tǒng)指定為definer。

comment 'string':注釋信息,可以用來描述存儲(chǔ)函數(shù)。

函數(shù)體是由sql代碼構(gòu)成,可以簡單的sql語句。如果為復(fù)合結(jié)構(gòu)需要使用begin...end語句,復(fù)合結(jié)構(gòu)可以包含聲明,流程控制。

select?length('hello');
select?date_format(pubdate,'%Y-%m')?from?bookinfo;

delimiter?//?
create function ym_date(mydate?date)
returns?varchar(15)
begin return date_format(mydate,'%Y-%m');
end//

delimiter;
select?ym_date(pubdate)?from?bookinfo;

創(chuàng)建自定義函數(shù):

語法格式:

create function function_name([func_parameter])
returns type [characteristics...]?routine_body
select?length('hello');

select?date_format(pubdate,'%Y-%m')?from?bookinfo;
delimiter?//
create function ym_date(mydate?date)
returns?varchar(15)
begin return date_format(mydate,'%Y-%m');
end//
delimiter?;

使用(調(diào)用)自定義函數(shù)
select?ym_date(pubdate)?from?bookinfo;

實(shí)例分析函數(shù):

創(chuàng)建一個(gè)函數(shù)
delimiter?$$?--定界符
---?開始創(chuàng)建函數(shù)
create function user_main_fn(v_id?int)
returns?varchar(50)
begin
--定義變量 declare v_userName?varchar(50);
--給定義的變量賦值
select?f_userName?info?v_userName?from?t_user_main where f_userId?=?v_id;
--返回函數(shù)處理結(jié)果 return v_userName;
end?$$?--函數(shù)創(chuàng)建定界符
delimiter;

自定義函數(shù)兩個(gè)必要條件:參數(shù),返回值

創(chuàng)建自定義函數(shù)

create function function_name
returns
{string|integer|real|decimal}
routine_body

語法格式:

CREATE?FUNCTION?function_name([func_parameter])
RETURNS type [characteristics?…?]?routine_body
  1. function_name : 函數(shù)名稱
  2. func_parameter : 函數(shù)的參數(shù)列表
  3. RETURNS type : 指定返回值的類型
  4. Characteristics : 指定存儲(chǔ)函數(shù)的特性
  5. routine_body : 函數(shù)體

創(chuàng)建無參的自定義函數(shù):

刪除自定義函數(shù)

DROP?FUNCTION?[IF?EXISTS]?func_name;
SELECT?DATE_FORMAT(NOW(), '%Y年%m月%d日?%H點(diǎn):%i分:%s秒')

CREATE?FUNCTION?f1()?RETURNS?VARCHAR(30)
RETURN?DATE_FORMAT(NOW(), '%Y年%m月%d日?%H點(diǎn):%i分:%s秒');

SELECT?f1();

復(fù)合結(jié)構(gòu)體的函數(shù)

--?將語句結(jié)束符改為$$,為了防止下面的函數(shù)將;看成是語句的結(jié)束
DELIMITER?$$

CREATE?FUNCTION?adduser(username?VARCHAR(20))
RETURNS?INT?UNSIGNED
RETURN
BEGIN
INSERT?INTO?table_1(username)?VALUES(username);
LAST_INSERT_ID();
END;

--?將分隔符改回來
DELIMITER?;

流程控制的使用

常用的流程控制語句:

  1. IF條件判斷語句-if
  2. CASE條件判斷語句-case
  3. WHILE循環(huán)語句-while
  4. LOOP循環(huán)語句-loop
  5. REPEAT循環(huán)語句-repeat

13.存儲(chǔ)過程

局部變量以關(guān)鍵字DECLARE聲明

DECLARE?var_name?[,?varname2,?varname3?…]?date_type?[DEFAULT?value];
例:DECARE num INT DEFAULE 10;

內(nèi)部BEGIN…END塊中定義的變量只在該塊內(nèi)有效

會(huì)話變量的作用范圍為整個(gè)程序

語法結(jié)果

create?procedure?proc_name([proc_parameter])
[characteristics...]?routine_body
delimiter?//?
create?procedure?selectproc1()
begin
select?book_id,?book_name,?price,?store?from?bookinfo;
end?//
delimiter;

call?selectproc();

刪除存儲(chǔ)過程:

drop?procedure?[if exists]?proc_name;
創(chuàng)建一個(gè)查詢圖書的編號(hào)、書名、價(jià)格和庫存的存儲(chǔ)過程。
delimiter?//
create?procedure?selectproc1()
begin
select?book_id,book_name,price,store?from?bookinfo;
end//
delimiter?;

調(diào)用存儲(chǔ)過程
call?selectproc1();
創(chuàng)建查詢圖書編號(hào)、書名、圖書類別的存儲(chǔ)過程
delimiter?//
create?procedure?proc1()
begin
select?book_id,book_name,category?from?bookinfo?t1
join?bookcategory?t2
on?t1.book_category_id?=?t2.category_id;
end//
delimiter?;

call?proc1();

設(shè)計(jì)一個(gè)存儲(chǔ)過程,刪除一個(gè)讀者,并輸出剩余讀者的個(gè)數(shù)。
delimiter?//
create?procedure?proc2(in cid?char(18),?out?num?int)
begin
delete?from?readerinfo where card_id?=?cid;
select?count(card_id)?into?num?from?readerinfo;
end//
delimiter?;

select?*?from?readerinfo;
call?proc2('6545xx',?@num);
select?@num;


設(shè)計(jì)一個(gè)存儲(chǔ)過程,實(shí)現(xiàn)交換兩個(gè)數(shù)的處理。
delimiter?//
create?procedure?proc3(inout?num1?int,?inout?num2?int)
begin declare t?int?default?0; set t?=?num1; set num1?=?num2; set num2?=?t;
end//
delimiter?; set @n1?=?3,?@n2?=?5;
call?proc3(@n1,@n2);
select?@n1,@n2;

刪除存儲(chǔ)過程
drop?procedure?proc1;
drop?procedure if exists?proc2;

存儲(chǔ)過程和函數(shù)的區(qū)別

存儲(chǔ)過程,存儲(chǔ)過程實(shí)現(xiàn)的功能比較復(fù)制,功能強(qiáng)大,可以執(zhí)行包括修改表等一系列數(shù)據(jù)庫操作。

存儲(chǔ)函數(shù),實(shí)現(xiàn)的功能針對性比較強(qiáng)。

返回值上的不同

存儲(chǔ)過程:可以返回多個(gè)值,也可以不返回值,只是實(shí)現(xiàn)某種效果或動(dòng)作。

存儲(chǔ)函數(shù):必須有返回值,而且只能有一個(gè)返回值。

參數(shù)不同

存儲(chǔ)過程:存儲(chǔ)過程的參數(shù)類型有三種,in,out,inout。

存儲(chǔ)函數(shù):參數(shù)類型只有一種,類似于in參數(shù),調(diào)用函數(shù)時(shí)需要按照參數(shù)的類型指定值即可。

語法結(jié)構(gòu)

存儲(chǔ)過程,存儲(chǔ)過程聲明時(shí)不需要指定返回類型。

存儲(chǔ)函數(shù),函數(shù)聲明時(shí)需要指定返回類型,且在函數(shù)體中必須包含一個(gè)有效的return語句。

調(diào)用方式

存儲(chǔ)過程,用call語句進(jìn)行調(diào)用

存儲(chǔ)函數(shù),嵌入在sql中使用的,可以在select中調(diào)用

14.事務(wù)

事務(wù)必須滿足的四個(gè)條件:

atomicity?原子性
consistency?一致性
lsolation?隔離性
durability?持久性

控制事務(wù)處理

rollback,回滾會(huì)結(jié)束用戶的事務(wù),并撤銷正在進(jìn)行的所有未提交的修改

commit,會(huì)提交事務(wù),并使已對數(shù)據(jù)庫進(jìn)行的所有修改稱為永久性的

savepoint identifier,允許在事務(wù)中創(chuàng)建一個(gè)保存點(diǎn),一個(gè)事務(wù)中可以有多個(gè)savepoint

rollback to identifier,把事務(wù)回滾到標(biāo)記點(diǎn)

事務(wù)處理主要有兩種方法

用begin, rollback, commit來實(shí)現(xiàn)

  1. begin,start transaction開始一個(gè)事務(wù)
  2. rollback事務(wù)回滾
  3. commit事務(wù)確認(rèn)

直接用set來改變mysql的自動(dòng)提交模式

  1. set autocommit = 0禁止自動(dòng)提交
  2. set autocommit = 1開始自動(dòng)提交

innodb使用事務(wù)

從Mysql5.5版本開始,InnoDB是默認(rèn)的表存儲(chǔ)引擎。

innodb是事務(wù)型數(shù)據(jù)庫的首選引擎,支持事務(wù)安全表。

MySql中 delimiter

默認(rèn)下,delimiter是分號(hào),在命令行客戶端中,如果有一行命令以分號(hào)結(jié)束,那么回車后,mysql將會(huì)執(zhí)行該命令。

(告訴mysql解釋器,該段命令是否已經(jīng)結(jié)束了,mysql是否可以執(zhí)行了。)

什么是存儲(chǔ)引擎:數(shù)據(jù)庫存儲(chǔ)引擎是數(shù)據(jù)庫底層軟件組件。數(shù)據(jù)庫管理系統(tǒng)使用數(shù)據(jù)引擎進(jìn)行創(chuàng)建,查詢,更新和刪除數(shù)據(jù)的操作。

mysql的核心就是存儲(chǔ)引擎。

innodb存儲(chǔ)引擎

  • 它為mysql提供了具有提交,回滾和崩潰恢復(fù)能力的事務(wù)安全存儲(chǔ)引擎。
  • 對于處理巨大數(shù)據(jù)量的數(shù)據(jù)擁有很好的性能
  • innodb存儲(chǔ)引擎支持外鍵完整性約束
  • innodb被用在眾多需要高性能的大型數(shù)據(jù)庫站點(diǎn)上

設(shè)置存儲(chǔ)引擎:

  1. 設(shè)置服務(wù)器的存儲(chǔ)引擎
  2. 在配置文件my.ini中的mysqld下面設(shè)置需要的存儲(chǔ)引擎
  3. default-storage-engine=InnoDB
  4. 重啟mysql服務(wù)器
創(chuàng)建表(單個(gè))設(shè)置存儲(chǔ)引擎
create?table?mytest(
?id?int?primary?key,
?name?varchar(10)
)?engine?=?innodb?default?charset?=?utf8;

修改表的存儲(chǔ)引擎

alter?table?tablename?engine?=?engineName

15.管理與維護(hù)

管理用戶

USE?mysql;

select?user?from?user;

權(quán)限表:存儲(chǔ)賬號(hào)的權(quán)限信息表:user,db,host,tables_priv,columns_priv和procs_priv

各個(gè)權(quán)限表的作用

tables_priv表用來對表設(shè)置操作權(quán)限;columns_priv表用來對表的某一列設(shè)置權(quán)限;procs_priv表可以對存儲(chǔ)過程和存儲(chǔ)函數(shù)設(shè)置操作權(quán)限。

使用CREATE USER語句創(chuàng)建新用戶

語法格式:

CREATE?USER?“user”@“host”?[IDENTIFIED?BY?“password”];

使用DROP USER 語句刪除用戶

語法格式:

DROP?USER?user[,?user];

例:使用DROP USER刪除賬戶"rose"@"localhost":
DROP?USER "rose"@"localhost";

示例:

查看日志文件的路徑
show?variables?like 'log_error';

創(chuàng)建新的日志信息表
flush?logs;

創(chuàng)建新的日志信息表
mysqladmin?-uroot?-p?flush-logs

點(diǎn)關(guān)注,不迷路

好了各位,以上就是這篇文章的全部內(nèi)容,能看到這里的人都是人才。我后面會(huì)不斷更新技術(shù)相關(guān)的文章,如果覺得文章對你有用,歡迎給個(gè)“在看”,也歡迎分享,感謝大家 ?。?


—————END—————

		


免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉