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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

数据库-表操作

發(fā)布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库-表操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Mysql的存儲引擎

?

#存儲引擎是什么?
Mysql中的數(shù)據(jù)用各種不同的技術(shù)存儲在文件(或者內(nèi)存中),這些技術(shù)中的每一種技術(shù)
都使用不同的存儲機(jī)制,索引技巧,鎖定水平并憑最終提供廣泛的不同的功能和能力。通過
選擇不同的技術(shù),能夠獲得額外的速度或者功能,從而改善你的應(yīng)用的整體功能。
這些不同的技術(shù)以及配套的相關(guān)功能在mysql中被稱作存儲引擎(亦稱作表類型)#mysql5.6版本下的搜索引擎:Innodb:支持事物/行級鎖/外鍵myisam:表級鎖memory:內(nèi)存存儲引擎,讀取速度快,但是不能持久化存儲,重啟mysql會失效blackhole:所有的數(shù)據(jù)都可以寫入,但不會真的記錄在表中,
         主從復(fù)制中的數(shù)據(jù)傳輸事物是什么?把執(zhí)行n句sql語句看成一個完整的事件,要么一起成功,要么失敗行級鎖:能夠支持并發(fā)的修改數(shù)據(jù)的操作,但是修改的行數(shù)非常多時,效率會受到影響表級鎖:不支持并發(fā)的修改同一張表,但是不需要加很多的細(xì)粒鎖來浪費(fèi)時間外鍵:在本表中有一個字段關(guān)聯(lián)外表的另一個表的字段緩存的作用:存儲一些對效率要求比較快的 但是丟失不要緊的數(shù)據(jù)。
  

  Innodb:用于事物處理程序,支持外鍵和行級鎖。
    數(shù)據(jù)操作除了插入和查詢之外,還包括很多更新和刪除操作。
  Myisam:用于讀操作和插入操作為主,含有很少的更新和刪除操作,對于事物的完整性,并發(fā)行要求不高。
  Memory:將所有的數(shù)據(jù)保存在內(nèi)存中,能夠快速的定位記錄和其他類似數(shù)據(jù)的環(huán)境下,提供極快的訪問。

?
#查看當(dāng)前Mysql的默認(rèn)存儲引擎
show variables like 'default_storage_engine';#查看當(dāng)前Mysql支持的存儲引擎
show engines \G;
存儲引擎相關(guān)sql語句

?

創(chuàng)建表

#創(chuàng)建表
create table 表名(字段1 數(shù)據(jù)類型 約束條件,字段2 數(shù)據(jù)類型 約束條件,字段3 數(shù)據(jù)類型 約束條件
);

?

mysql支持的數(shù)據(jù)類型

?

Mysql支持的數(shù)據(jù)類型:
數(shù)值類型:整型:int#后面制定字符長度沒什么用,寫的是多長顯示的還是多長,#如果超過最大長度,則存2 147 483 647
    浮點(diǎn)型:float(m,n)#表示該小數(shù)一共只能存m位數(shù),小數(shù)點(diǎn)后n位小數(shù)#插入數(shù)據(jù)時注意數(shù)據(jù)不準(zhǔn)且
        doubledecimal(65,30)#稍微準(zhǔn)點(diǎn),因位存取的是字符串
日期類型:now()#表示當(dāng)前時間
    date:日期time:時間datetime:日期時間,可以為Nulltimestamp:#1970-01-01 00:00:00/2038-01-19 11:14:07,不為null,默認(rèn)插入null顯示當(dāng)前時間#超出時間一律顯示000000000000
字符串類型:char:#定長(0-255)存儲相對浪費(fèi)空間,存取效率線相對快varchr:#變長(0-65535)相對節(jié)省空間,存取效率相對慢#char 不足設(shè)置的字符長度在'a'后面補(bǔ)0'a0000'#varchar不足在字符前面設(shè)置一個字符的長度
    
ENUM和SET類型:ENUM:#單選SET:#多選+去重

?

msyql表的完整性約束

mysql表的完整性約束not null:#非空約束#create table t10 (id1 int not null,id2 int not null default 10);#創(chuàng)建一個id1 非空, id2非空 默認(rèn)值為10的表    #mysql> insert into t10 (id1) values(11),(12);#使用某個字段記得帶括號
unique:#唯一約束#對于NUll不生效,仍然可以重復(fù)插入NULL#not null + unique==》主鍵#如果一個表多個字段設(shè)置了not null unique,那么只有第一個字段設(shè)置成了PRI,其他的都是UNI#聯(lián)合唯一:就是一個表不能重復(fù)1,1create table t14 (id int not null,name char(12) not null,ip char(15) not null,port char(4) not null, unique(ip,port));mysql> desc t14;+-------+----------+------+-----+---------+-------+| Field | Type     | Null | Key | Default | Extra |+-------+----------+------+-----+---------+-------+| id    | int(11)  | NO   |     | NULL    |       || name  | char(12) | NO   |     | NULL    |       || ip    | char(15) | NO   | PRI | NULL    |       || port  | char(4)  | NO   | PRI | NULL    |       |+-------+----------+------+-----+---------+-------+ 設(shè)置了一組主鍵。primary key:#主鍵#主鍵:必須唯一,必須非空
            單字段:多字段:#auto_increment
            必須是一個鍵#delete時在insert是從保存的值開始增加#必須用truncate清除foreign key:#外鍵兩個不同的事物存在關(guān)聯(lián),外鍵把這兩個事物關(guān)聯(lián)起來
     外鍵關(guān)聯(lián)的字段必須是唯一的
主表對應(yīng)多個外鍵
create table author2book(
id int not null unique auto_increment,
author_id int not null,
book_id int not null,
constraint fk_author foreign key(author_id) references author(id)
on delete cascade
on update cascade,
constraint fk_book foreign key(book_id) references book(id)
on delete cascade
on update cascade,
primary key(author_id,book_id)
);

?

表結(jié)構(gòu)的修改

?

1. 修改表名ALTER TABLE 表名 RENAME 新表名;2. 增加字段ALTER TABLE 表名ADD 字段名  數(shù)據(jù)類型 [完整性約束條件…],ADD 字段名  數(shù)據(jù)類型 [完整性約束條件…];3. 刪除字段ALTER TABLE 表名 DROP 字段名;4. 修改字段ALTER TABLE 表名 MODIFY  字段名 數(shù)據(jù)類型 [完整性約束條件…];ALTER TABLE 表名 CHANGE 舊字段名 新字段名 舊數(shù)據(jù)類型 [完整性約束條件…];ALTER TABLE 表名 CHANGE 舊字段名 新字段名 新數(shù)據(jù)類型 [完整性約束條件…];5.修改字段排列順序/在增加的時候指定字段位置ALTER TABLE 表名ADD 字段名  數(shù)據(jù)類型 [完整性約束條件…]  FIRST;ALTER TABLE 表名ADD 字段名  數(shù)據(jù)類型 [完整性約束條件…]  AFTER 字段名;ALTER TABLE 表名CHANGE 字段名  舊字段名 新字段名 新數(shù)據(jù)類型 [完整性約束條件…]  FIRST;ALTER TABLE 表名MODIFY 字段名  數(shù)據(jù)類型 [完整性約束條件…]  AFTER 字段名;

?

?刪除表

drop table 表名;

?

多表結(jié)構(gòu)的創(chuàng)建與分析

#一對一#一對多#多對多

?

轉(zhuǎn)載于:https://www.cnblogs.com/liuer-mihou/p/10483380.html

總結(jié)

以上是生活随笔為你收集整理的数据库-表操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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