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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

数据库

mysql知识点回顾(一)

發(fā)布時(shí)間:2025/4/9 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql知识点回顾(一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
回顧mysql中的常用知識(shí)點(diǎn)

?

上圖為win版本啟動(dòng)關(guān)閉服務(wù)方式。 連接mysql命令:mysql -u alex -p 查看所有數(shù)據(jù)庫(kù):show databases; use db_name ;切換數(shù)據(jù)庫(kù) show tables; 顯示所有表 select * from 表名; select name,age,id from 表名; 連接: 默認(rèn):用戶root 創(chuàng)建用戶: create user 'alex'@'192.168.1.1' identified by '123123'; ?identified 設(shè)置密碼 create user 'alex'@'192.168.1.%' identified by '123123'; ?%代表任意 create user 'alex'@'%' identified by '123123'; ?所有ip 用戶管理 創(chuàng)建用戶 create user '用戶名'@'IP地址' identified by '密碼'; 刪除用戶 drop user '用戶名'@'IP地址'; 修改用戶 rename user '用戶名'@'IP地址'; to '新用戶名'@'IP地址';; 修改密碼 set password for '用戶名'@'IP地址' = Password('新密碼') PS:用戶權(quán)限相關(guān)數(shù)據(jù)保存在mysql數(shù)據(jù)庫(kù)的user表中,所以也可以直接對(duì)其進(jìn)行操作(不建議) 授權(quán) 權(quán)限? ? 人 grant 權(quán)限 grant select,insert on db1.t1 to 'alex'@'%' ; 設(shè)置alex只能查看db1數(shù)據(jù)庫(kù)的t1表 ? grant all privileges on db1.t1 to 'alex'@'%' ; alex除了grant以外的所有權(quán)限都可以 revoke?all privileges from db1.t1 to 'alex'@'%' ; 取消這條權(quán)限 show grants for '用戶'@'IP地址'????????????????? -- 查看權(quán)限 grant? 權(quán)限 on 數(shù)據(jù)庫(kù).表 to?? '用戶'@'IP地址'????? -- 授權(quán) revoke 權(quán)限 on 數(shù)據(jù)庫(kù).表 from '用戶'@'IP地址'????? -- 取消權(quán)限 SQL語(yǔ)句規(guī)則 操作文件夾(操作數(shù)據(jù)庫(kù)) create database db2; create database db2 default charset utf8; 數(shù)據(jù)庫(kù)默認(rèn)utf8 show databases; drop database db2; 操作文件(操作表) show tables; create table t1(id int,name char(10)); 創(chuàng)建表,id,name字段,name限制10 個(gè)字符,超出取前十個(gè)。 create table t1(id int,name char(10)) default charset=utf8; 表默認(rèn)是utf8 create table t1( ? ? #列名,類型,null, ?? ?#列名,類型,not null,不可以為空 ? ? #列名,類型,not null,default 1, ?? ?#列名,類型,not null,auto_increment,自增 ?? ?id int, ?? ?name char(10) ) engine=innodb default charset=utf8; 表默認(rèn)是utf8,引擎默認(rèn)是innodb select * from t1; innodb 支持事務(wù),可以回滾,原子性操作。 myisam 不支持事務(wù) auto_increment 表示:自增 primary key:表示,約束(不能重復(fù),且不能為空);加速查找, 一個(gè)表里只能有一個(gè)自增列,只能有一個(gè)主鍵。但是主鍵不一定是一行。 清空表: delete from t1; 清空表,新增數(shù)據(jù)的自增id從之前的接著。 truncate table t1;清空表,自增id從頭開始。 刪除表: drop table t1; 查看表結(jié)構(gòu)以及類型: desc tabename; 查看表是如何創(chuàng)建的: show create table? tablename; show create table? tablename \G;?加一個(gè)\G?可以去掉空格 自增: 通過(guò)命令?更改下次插入數(shù)據(jù)時(shí),自增ID的值: alter table tablename AUTO_INCREMENT=13;更改下次插進(jìn)來(lái)數(shù)字,自增主鍵為13 mysql中自增的步長(zhǎng)

?

操作文件內(nèi)容(操作內(nèi)容) 插入數(shù)據(jù): insert into t1(id,name) values(1,'egon'); 刪除數(shù)據(jù): delete from t1 where id<6 修改: update t1 set age=18;?將age列全部修改為18 update t1 set age=18 where age=17;?將age為17的改為18 查看數(shù)據(jù): select * from t1; create table t3(id int auto_increment primary key,name char(10)) default charset=utf8; ?設(shè)置id為主鍵 并自增。 insert into t3(name) values('abcdef'); ?所以插入數(shù)據(jù)的時(shí)候只需要插入name字段即可。 數(shù)據(jù)類型 數(shù)字 tinyint? int unsigned 表示創(chuàng)建表的時(shí)候字段屬性沒有符號(hào)(比如負(fù)號(hào)) signed 表示有符號(hào)的 bigint 以上三種就是長(zhǎng)度的區(qū)別 FLOAT 只能表示不太精準(zhǔn)的小數(shù),如果長(zhǎng)度不大,可以使用 DOUBLE 只能表示不太精準(zhǔn)的小數(shù),如果長(zhǎng)度不大,可以使用 decimal 該類型小數(shù)非常精準(zhǔn),因?yàn)閮?nèi)部原理是將長(zhǎng)的小數(shù)按字符串存儲(chǔ)的。 decimal(10,5) ?10代表總位數(shù),5代表小數(shù)點(diǎn)后幾位 bigint支持的數(shù)字的大小范圍為: 19位,存電話號(hào)碼等。 有符號(hào)范圍:-9223372036854775808 到 9223372036854775807 int支持的數(shù)字范圍為: 10位, 有符號(hào)范圍:-2147483648 到 2147483647??? 無(wú)符號(hào)范圍:0-4294967295 字符串 char(10) ? ? 如果字符沒有占滿,則會(huì)自動(dòng)填充至10個(gè)字符,比如填充空格 varchar(10) ? ? 如果沒有填滿,在硬盤中只會(huì)占用實(shí)際字符長(zhǎng)度,節(jié)省空間,查找速度沒有char快11 char和varchar最高只能存儲(chǔ)255個(gè)字符 text可以存儲(chǔ)65535個(gè)字符 如果更多的內(nèi)容,需要寫到文件中,將路徑寫到數(shù)據(jù)庫(kù)。 優(yōu)化建議:創(chuàng)建表時(shí),將定長(zhǎng)的數(shù)據(jù)往前放,變長(zhǎng)的往后放。 時(shí)間類型 DATETIME 枚舉 enum

?

相當(dāng)于給插入數(shù)據(jù)的時(shí)候規(guī)定了一個(gè)選項(xiàng) 單選字符串?dāng)?shù)據(jù)類型,適合存儲(chǔ)表單界面中的“單選值”。 設(shè)定enum的時(shí)候,需要給定“固定的幾個(gè)選項(xiàng)”;存儲(chǔ)的時(shí)候就只存儲(chǔ)其中的一個(gè)值。 設(shè)定enum的格式: enum("選項(xiàng)1","選項(xiàng)2","選項(xiàng)3",...); 實(shí)際上,enum的選項(xiàng)都會(huì)對(duì)應(yīng)一個(gè)數(shù)字,依次是1,2,3,4,5...,最多有65535個(gè)選項(xiàng) 使用的時(shí)候,可以使用選項(xiàng)的字符串格式,也可以使用對(duì)應(yīng)的數(shù)字。

?

SET規(guī)定,只能插入a,b,c,d的任意組合   多選字符串?dāng)?shù)據(jù)類型,適合存儲(chǔ)表單界面的“多選值”。 設(shè)定set的時(shí)候,同樣需要給定“固定的幾個(gè)選項(xiàng)”;存儲(chǔ)的時(shí)候,可以存儲(chǔ)其中的若干個(gè)值。 設(shè)定set的格式: set("選項(xiàng)1","選項(xiàng)2","選項(xiàng)3",...) 同樣的,set的每個(gè)選項(xiàng)值也對(duì)應(yīng)一個(gè)數(shù)字,依次是1,2,4,8,16...,最多有64個(gè)選項(xiàng) 使用的時(shí)候,可以使用set選項(xiàng)的字符串本身(多個(gè)選項(xiàng)用逗號(hào)分隔),也可以使用多個(gè)選項(xiàng)的數(shù)字之和(比如:1+2+4=7) ===================================================================================== 外鍵 create table userinfo( uid bigint auto_increment primary key, name varchar(32), department_id int, constraint fk_user_depart foreign key ("department_id",) references department('id')? ?#外鍵約束 )engine=innodb default charset=utf8; create table department( id?bigint auto_increment primary key, ? ? title char(15) )engine=innodb default charset=utf8; 外鍵的名字,上面標(biāo)紅處不能與別的外鍵重名,建議用表_表這種起名 主鍵:

?

上圖為主鍵的兩種寫法。 一個(gè)表只能有一個(gè)主鍵,主鍵可以由多列組成。

轉(zhuǎn)載于:https://www.cnblogs.com/ArmoredTitan/p/8492159.html

總結(jié)

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

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