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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql中整理设置__MySQL整理

發布時間:2024/4/19 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql中整理设置__MySQL整理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

登錄

命令:mysql -h [IP 地址/域名] -P [端口] -u [用戶名] -p[密碼]

端口默認是3306

mysql -hlocalhost -uroot -p

斷開

exit;

\q; 或quit;

創建一個數據庫,就會產生對應存儲數據的的文件夾,每個文件夾下都有opt文件,保存對應的數據庫選項。數據庫選項有字符集和校對集。

顯示數據庫

系統數據庫:information_schema :保存數據庫所有的結構信息。

mysql:保存權限關系

performance_schema:效率庫

顯示部分數據庫:

show databases like "匹配模式"

_:當前位置匹配單個字符

%:匹配多個字符

數據表

表選項:engine:存儲引擎;

charset:字符集

collate:校對集

create database.table(

字段名 字段類型,……

)engine= innodb charset=utf8;

復制一個表結構:create table newtable like database.table1

每創建一個數據表,在數據庫文件夾下會創建一些文件(如.frm)

查看表結構:desc 表名

查看數據表創建語句:show create table 表名;

修改表結構:alter table 表名 add 字段 屬性 first/after 字段;

修改表字段:alter table 表名 change 舊字段名 新字段名 字段類型;

修改字段屬性:alter table 表名 modify 字段名 新類型;

刪除字段:alter table 表名 drop 字段;

刪除表:drop table 表名;

插入數據:

insert into 表名 (字段列表) values (對應字段列表的值); 值列表只需與字段列表對應即可,無需與表結構相同。

查詢數據:

查詢所有數據:select * from 表;

查詢部分數據:select 字段1,字段2,字段3 from 表;

條件查詢: select 字段/* from 表 where 條件;

刪除數據:delete from 表名 [條件];

更新數據:update 表名 set 字段=新值 where 條件;

顯示長度:類型后邊的數字指顯示長度,指最長可以顯示的長度。

zerofill:從左側填充0.

mysql中小數分浮點型(float、double)和定點型(decimal),定點型可以保證整數部分的精確,浮點型只有前7位可能精確。

定點數應用:涉及錢的時候用定點數

時間日期類型:

date:3個字節,格式為YYYY-mm-dd

time:3個字節,格式為HH:ii:ss

datetime:8個字節,格式為date和time的合并

timestamp:時間戳,格式與datetime相同,默認為當前時間,不能為空。timestamp的記錄如果被更改,自己會自動更新。

year:1個字節 范圍為1900-2155年。

通常時間的處理在編程中處理,mysql中只保存時間戳,用整數存儲。

列屬性

NULL,default,comment ,主鍵,自增長,唯一鍵。

增加主鍵:create table 表名(字段 類型 primary key,……) charset utf8;

create table 表名(字段 類型,……,primary key(字段))charset utf8;

alter table 表名 add primary key(字段);

刪除主鍵:alter table 表名 drop primary key;

主鍵約束:當前字段不能為空,字段的數據不能有重復。

唯一鍵,創建方式與主鍵類似。

新增數據:

主鍵沖突解決方案:

主鍵沖突更新:如果插入的過程中主鍵沖突,采用更新方法

insert into 表名 values(值列表) on duplicate key update 字段=新值;

主鍵沖突替換:主鍵沖突后,刪除原來的數據,重新插入新數據。

replace into [字段列表] values(值列表);

蠕蟲復制:從已有的數據中獲取數據,并將獲取到的數據插入到數據表中。

insert into 表名(字段) select */字段 from 表名;

應用:通常復制的是重復數據,可以在短期內快速增加表的數據量,從而測試表的壓力,還可以測試表的索引。

更新數據:

update 表名 set 字段名 = 新值 where 判斷條件

如果沒有條件,是全表更新,可以使用limit 來顯示更新的數量。

update 表名 set 字段名 = 新值 [where 判斷條件] limit 數量;

查詢數據:

select 選項 字段列表 from 數據源 where 條件 group by 條件 having 條件 order by 條件 limit 限制;

選項:all(默認),distinct

別名:字段 [as] 別名

數據源:from 表1,表2……

動態數據:from [子查詢] as 別名;

select * from (select * from table) as alias;

group by : 是為了分組后進行數據統計,將數據按照字段分組后,只會保留每組的第一條記錄。count()統計每組中的數量;avg();group_concat(字段):將指定的字段合并。

group by多分組:group by 字段1,字段2;

group by分組排序:group by 字段1 [asc|desc],字段[asc|desc];

h回溯統計:group by 字段[asc|desc] with rollup;

having:

1.用于篩選條件,與where的區別是,having 用在group by后邊,用于對分組的數據進行條件篩選,可以使用聚合函數,where是從表中取數據,將數據從磁盤裝進內存。

order by:

order by 字段1,字段2……;先按字段1排序,后按字段2排序

limit:

應用:1、用來限制記錄獲取的數量

2、分頁,用來獲取指定區間的數據:limit offset,length;

聯合查詢

union:select 字段 union select 子句;默認去重。

使用order by時,兩個select要括起來。且必須加limit才能生效。

行子查詢:

主查詢 where 條件 (構造行元素)=(行子查詢);在行子查詢中就可以使用聚合函數。

列子查詢:

主查詢 where 條件 字段 in (列子查詢);

行子查詢和列子查詢都屬于where子查詢;

表子查詢:

返回多行多列;用于from數據源,屬于from子查詢。

select 字段表 from (表子查詢) as 別名……;

exists子查詢:

where exists(查詢語句);

整庫數據備份(SQL數據備份)

不只備份數據,還備份sql指令。

產生的備份結構很大,不適合特大型數據備份,也不適合數據變換頻繁型的數據庫備份。

語法:mysqldump -hPup 數據庫名 > 備份地址

整庫備份

單表備份

多表備份

數據還原:

1、使用mysql客戶端:mysql -hPup 數據庫

2、導入sql指令

source SQL文件位置

mysql用戶管理

mysql中所有的用戶信息保存在mysql庫中的user表中

創建用戶:create user '用戶名'@'' identified by '密碼';

刪除用戶:drop user '用戶名'@'IP主機';

更改密碼:set password for 用戶=password();

權限管理:

數據權限:增刪改查

結構管理(create\drop)

管理權限(create user\grant\revoke)

授予權限:

grant 權限列表 on 數據庫.表 to 用戶;

取消權限:

revoke 權限列表 on 數據庫.表 from 用戶;

刷新權限:

flush privileges;

事務

自動事務:

客戶端發送一條sql指令后,服務器不用等待用戶反饋,自動將結果同步到數據表。

系統通過autocommit變量來控制,可通過show variables like "autocommit"查看。

關閉自動事務:set autocommit =off;

自動事務關閉后,使用commit命令提交同步到數據表,使用rollback命令回滾,清空之前的操作。提交命令后,在當前客戶端可以看到提交后的數據。

手動事務:

需要用戶手動發送事務操作指令實現。

對應的命令:

1、start transaction;//這條語句后面的所有語句都不會直接寫入數據表

2、事務處理;

3、事務提交:commit、rollback;

回滾點:savepoint,事務中前面一部分事務執行成功,無需重新執行則在該點設置一個記號,如果后面的事務執行失敗,則回到這個位置。

增加回滾點:savepoint 回滾點名字;

回到回滾點:rollback to 回滾點。

總結

以上是生活随笔為你收集整理的mysql中整理设置__MySQL整理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。