日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql基础知识整理_MYSQL基础知识整理

發(fā)布時(shí)間:2023/12/2 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql基础知识整理_MYSQL基础知识整理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

1、客戶端命令

2、服務(wù)器端命令

3、常用數(shù)據(jù)類型

3.1、數(shù)值型

3.2、字符型

3.3、日期時(shí)間型

3.4、布爾型

4、mysql的執(zhí)行方式

5、用戶管理

1、客戶端命令

客戶端命令不需要以分號(hào)結(jié)尾 ,如果想獲取客戶端命令的幫助信息則:mysql>?help

mysql常用客戶端命令如下:mysql>?quit或\q???#表示退出mysql

mysql>?go或\g????#表示無論語句的結(jié)束符是什么都把語句送到服務(wù)器端執(zhí)行,是在當(dāng)被修改默認(rèn)結(jié)束符后又不知道的情況下使用

例如:

mysql>?select?database()\g????#顯示當(dāng)前所在的數(shù)據(jù)庫

mysql>?use或\u?數(shù)據(jù)庫名稱?????#表示設(shè)定默認(rèn)數(shù)據(jù)庫

例如:

mysql>?\u?test????#表示使用test這個(gè)數(shù)據(jù)庫

mysql>?ego或\G???#表示sql命令取回的數(shù)據(jù)縱向顯示

例如:

mysql>?select?*?from?mysql.user\G????#表示讀取mysql庫中user表中的所有數(shù)據(jù),如果不用\G,那數(shù)據(jù)可讀性不高

mysql>?system或\!?#表示在不退出mysql客戶端程序下執(zhí)行shell命令,這個(gè)有點(diǎn)類似在vim中執(zhí)行shell命令

mysql>?status或\s?????#表示獲取當(dāng)前mysql的狀態(tài)信息

mysql>?delimiter或\d???#表示更換語句結(jié)束符,也就是可把默認(rèn)的分號(hào)結(jié)束符號(hào)更換成其他的符號(hào)

2、服務(wù)器端命令

服務(wù)器端命令必須有語句結(jié)束符,默認(rèn)是分號(hào),獲取服務(wù)器端命令幫助用以下命令:mysql>?help?命令

常用服務(wù)器端命令:mysql>?select?version();????#表示顯示mysql數(shù)據(jù)庫的版本號(hào)

mysql>?show?databases;????#顯示mysql中有哪些數(shù)據(jù)庫

mysql>?show?databases?like?'t%';????#顯示以字母“t”開頭的數(shù)據(jù)庫

mysql>?show?variables;???#顯示服務(wù)器參數(shù)變量,一樣可以使用‘‘like’’這樣的子句來做模糊查找

mysql>?show?variables?like?'datadir%';

mysql>?show?status;????#顯示服務(wù)器狀態(tài)變量

mysql>?help?create?table??#獲取創(chuàng)建表支持的數(shù)據(jù)類型

mysql>?show?character?set;???#顯示mysql所支持的字符集

mysql>?show?collation;??#顯示排序規(guī)則

mysql>?show?processlist;?#顯示服務(wù)器當(dāng)前所有mysql線程列表

mysql>?show?indexes?from?表名;??#顯示表中的索引信息

mysql>?show?table?status\G??#查看當(dāng)前默認(rèn)數(shù)據(jù)庫中表狀態(tài),有“\G”結(jié)尾的不要加分號(hào)

mysql>?show?table?status?[from?|?in]?數(shù)據(jù)庫\G???#查看指定數(shù)據(jù)庫中的表狀態(tài)

3、常用數(shù)據(jù)類型

要想獲取創(chuàng)建表的幫助,可查看到支持的數(shù)據(jù)類型,執(zhí)行下邊語句:mysql>?help?create?table;

3.1、數(shù)值型:數(shù)值型又分為精確數(shù)值型和近似數(shù)值型

精確數(shù)值型中的整型如下:

a)、tinyint:占用1bype(字節(jié)),即8位,表示數(shù)值范圍,有符號(hào)(-128,127)無符號(hào)(0,255)。為什么有符號(hào)的范圍是(-128,127)呢?因?yàn)楸硎居蟹?hào)數(shù)值時(shí)最高位用來表示符號(hào)位,最高位是0表示正數(shù),最高位是1表示負(fù)數(shù),此最高位不表示數(shù)值大小,只表示符號(hào)。那有符號(hào)的數(shù)值中最小值為“10000000”,最大值為“01111111”,在計(jì)算機(jī)中是用補(bǔ)碼來表示二進(jìn)制數(shù)的大小,這里有一個(gè)原則,正數(shù)的補(bǔ)碼就是其本身,負(fù)數(shù)的補(bǔ)碼是各位取反后再加1,所以最小值“10000000”的補(bǔ)碼為“011111111”,換算成十進(jìn)制為127,再加上1就是128,因是負(fù)數(shù),所以最小值就是“-128”,而正數(shù)的補(bǔ)碼是其本身,所以換算成二進(jìn)制就是127,所以有符號(hào)的范圍是(-128,127)。

b)、smallint: 占用2bytes, 表示范圍-(2^15-1+1),2^15-1或0,65535,計(jì)算方法如上。

c)、mediumint: 占用3bytes,表示范圍"-(2^23-1+1),2^23-1"或"0,2^24-1"

d)、int: ?占用4bytes, 表示范圍 "-(2^31-1+1),2^31-1"或"0,2^32-1"

e)、bigint: ?占用8bytes, ?表示范圍"-(2^63-1+1),2^63-1"或"0,2^64-1"

數(shù)值類型后一般會(huì)接上一些修飾符,在精確數(shù)值型中會(huì)有以下修飾符:

not null:表示定義的字段的值不能為空值

default '默認(rèn)值':表示定義的字段中的默認(rèn)值

unsigned:表示定義字段的數(shù)值是無符號(hào)的

auto_increment:表示值自動(dòng)增長(zhǎng)

近似數(shù)值型中的浮點(diǎn)型:

a)、fload:單精度數(shù)值,占用4bytes

b)、double:多精度數(shù)值,占用8bytes

數(shù)值類型后一般會(huì)接上一些修飾符,浮點(diǎn)型字符后的修飾符一般為:

not null,default '默認(rèn)值',unsigned,zerofill,auto_increment

3.2、字符型

a)、不區(qū)分大小寫的字符類型:

char(n):固定長(zhǎng)度的字符類型,n表示數(shù)值

varchar(n):可變長(zhǎng)的字符類型

b)、區(qū)分字符大小寫的字符類型:

binary(n):固定長(zhǎng)度的字符類型,n表示數(shù)值

varbinary(n):可變長(zhǎng)的字符類型

c)、表示眾多字符的字符類型:

text,blob這兩種是表示眾多字符型,text不區(qū)分大小寫,blob區(qū)分大小寫。這兩種類型字符還有相應(yīng)的變體

text:tinytext,text,mediumtext,longtext ?存儲(chǔ)的內(nèi)容大小依次增大

blob:tinyblob,blob,mediumblob,longblob ??存儲(chǔ)的內(nèi)容大小依次增大

這種類型的實(shí)際數(shù)據(jù)不是存放在表中的,而是存放在數(shù)據(jù)庫外圍的,表中只是存放了指向相應(yīng)對(duì)象的指針。

常用修飾符:

修飾符:not null,default ?'默認(rèn)值 '

3.3、日期時(shí)間型

data:占用3bytes,范圍:1000-01-01 to 9999-12-31,類型可用于一個(gè)日期值而不需要時(shí)間部分,如:‘YYYY-MM-DD’

time:占用3bytes,范圍:-838:59:59 to?838:59:59,中間有好多表示的時(shí)間范圍是浪費(fèi)的,此類型用于一個(gè)時(shí)間,如:'HH-MM-SS'

datetime:占用8bytes,范圍:1000-01-01 00:00:01 to 9999-12-31 23:59:59,是date與time的結(jié)合,表示‘YYYY-MM-DD HH-MM-SS’

year(2):占用1byte,范圍:00 to 99,表示2位的年

year(4):占用1byte,范圍:1901 to 2155,表示4位的年

timestamp:占用4bytes,格林威治時(shí)間,與datetime類似都是保存日期日間,格式為‘YYYY-MM-DD HH:MM:SS’,但表示的范圍與datetime不同,數(shù)值在“1970-01-01 00:00:01-2038-01-18 22:14:07”之間

常用修飾符:null,not null,default '默認(rèn)值'

3.4、布爾型

tinyint(1):其實(shí)是一種×××,表示只顯示一位,對(duì)于二進(jìn)制來講,一位不是“0”就是“1”

3.5、內(nèi)置類型(字符型)

set:集合,比如:set(a,b),那可存放的數(shù)據(jù)為'a'或'b'或'ab'或'ba'

enum:枚舉,比如:enum(a,b),那可存放的數(shù)據(jù)為'a'或'b'

4、mysql的執(zhí)行方式

4.1、交互式方式:

-u'用戶' = --user='用戶'

-h'主機(jī)名' = --host='主機(jī)名'

-p'密碼' = --password='密碼'

-D'數(shù)據(jù)庫名稱' = --database='數(shù)據(jù)庫名稱' ,表示接入Mysql后以哪個(gè)數(shù)據(jù)庫作為默認(rèn)數(shù)據(jù)庫

-e'sql語句' = --execute='sql語句' ,表示連接數(shù)據(jù)庫直接執(zhí)行sql語句,取回值后直接返回到shell

例子:[root@jason?~]#?mysql?--user='root'?--host='localhost'?--password='111111'?#表示以root用戶接入本地的Mysql服務(wù),如果省略掉--user=''?和--host=''?選項(xiàng),那就默認(rèn)以root用戶登陸本地的mysql,即命令可以簡(jiǎn)化為“mysql?-p”

[root@jason?~]#?mysql?--user='root'?--host='localhost'?--password='111111'?-D?mysql??#登陸后以mysql庫作為默認(rèn)數(shù)據(jù)庫,省略了連接數(shù)據(jù)庫后用“mysql>?use?mysql”來切換數(shù)據(jù)庫的操作

mysql>?select?database();

+------------+

|?database()?|

+------------+

|?mysql??????|

+------------+

1?row?in?set?(0.01?sec)

[root@jason?~]#?mysql?--user='root'?--host='localhost'?--password='111111'?-e?'select?user,host,password?from?mysql.user;'

+-----------+-----------+-------------------------------------------+

|?user??????|?host??????|?password??????????????????????????????????|

+-----------+-----------+-------------------------------------------+

|?root??????|?localhost?|?*FD571203974BA9AFE270FE62151AE967ECA5E0AA?|

|?root??????|?jason?????|???????????????????????????????????????????|

|?root??????|?127.0.0.1?|???????????????????????????????????????????|

|???????????|?localhost?|???????????????????????????????????????????|

|???????????|?jason?????|???????????????????????????????????????????|

|?cactiuser?|?localhost?|?*FD571203974BA9AFE270FE62151AE967ECA5E0AA?|

+-----------+-----------+-------------------------------------------+

#"-e"選項(xiàng)表示連接數(shù)據(jù)庫后直接執(zhí)行sql語句,取回值后不停留在"mysql>?",而是返回到shell

4.2、批處理模式:[root@jason?~]#?vim?mysql.sql

select?user,host,password?from?mysql.user;

a)、[root@jason?~]#?mysql?-p111111?

b)、mysql>?source?/root/mysql.sql

這兩種方式都可以進(jìn)行sql的批處理操作,注意一點(diǎn)就是mysql.sql這個(gè)腳本文件的權(quán)限問題,在“mysql> ”中進(jìn)行sql腳本的批處理操作時(shí)mysql用戶很有可能需要對(duì)sql的腳本文件要有可讀的權(quán)限。

5、用戶管理

5.1、創(chuàng)建、刪除用戶

創(chuàng)建用戶:

語法:mysql> create user '用戶名'@'主機(jī)名' identified by '密碼';

用戶名與主機(jī)可以使用通配符:

'%'表示匹配任意長(zhǎng)度的任意字符;如(172.16.%.%)

'_'表示匹配任意單個(gè)字符

mysql> create user 'zhaochj'@'%' identified by '111111'; ?#創(chuàng)建一個(gè)名為‘zhaochj’的用戶

mysql> flush privileges; #因用戶信息有改變,所以用戶創(chuàng)建好后不要忘記刷新一下權(quán)限表,讓用戶信息加載到內(nèi)存

刪除用戶:

mysql> drop user '用戶名'@'主機(jī)';

5.2、給用戶授予權(quán)限

語法:

mysql> grant all on 庫名.表名 to '用戶名'@'主機(jī)'; ?#表示把一個(gè)庫中的一個(gè)表的所有權(quán)限授權(quán)給一個(gè)用戶

mysql> grant all ?on 庫名.表名 to '用戶名'@'主機(jī)'identified by '密碼'; ?#表示創(chuàng)建一個(gè)用戶并授予一個(gè)數(shù)據(jù)庫中一個(gè)表的?所有權(quán)限,如果用戶是對(duì)一個(gè)數(shù)據(jù)庫上的所有表授權(quán),那匹配所有表的通配符是“*”號(hào)

5.3、修改用戶密碼

兩種方法:

a、mysql> set password for '用戶名'@'主機(jī)名'=password('密碼');

b、]# mysqladmin -u用戶名 password ?'新密碼' ?-p原密碼

總結(jié)

以上是生活随笔為你收集整理的mysql基础知识整理_MYSQL基础知识整理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。