九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
數(shù)據(jù)庫部分(MySql)_4

約束

  約束:給表的字段名添加限制條件;

  非空約束(not null):添加非空約束后,字段值不能為null;

  唯一約束(unique):添加唯一約束后,字段值不能重復;

  主鍵約束(primary key):添加了主鍵約束,主鍵值不能為null并且不能重復;

  自增:當自增字段名賦值為null時,字段值會自動增長;刪除數(shù)據(jù)庫數(shù)值不會減,數(shù)值會從曾經(jīng)的最大值基礎上 1;可以使用truncate使自增數(shù)值清零;

  默認約束(default):給字段添加默認約束,當不對此字段賦值時,默認值生成;

  CREATE TABLE student (id int,age default 10);

  檢查約束(check):在MySQL中,check約束后,語法支持,但是不生效;

  外鍵約束:指用來建立兩張表之間關(guān)系的字段,值指向另外一張表的主鍵,一張表主鍵只能有一個,但是外鍵可以有多個;添加外鍵約束后,外鍵的值可以為null、可以重復,但是不能使用關(guān)聯(lián)表中不存在的數(shù)據(jù),被關(guān)聯(lián)的表和數(shù)據(jù)不能直接刪除,需要去掉約束或先刪除關(guān)聯(lián)數(shù)據(jù);

  CREATE TABLE emp (id int,age int ,deptid int ‘主鍵id’, CONSTRAINT 外鍵約束用別名區(qū)分 FOREIGN KRY (外鍵對應的主鍵id) REFERENCES 主鍵名(字段名));

 1 //建庫: 2         create database db4; 3             use db4; 4 //建表: 5     //部門表         6         create table dept (id int primary key auto_increment,name varchar(10));  7    8     //員工表         9         create table emp (id int primary key auto_increment,name varchar(10),deptid int,constraint fk_dept foreign key(deptid)    references dept(id));    10         //錄入值:11        insert into dept values (null,'神仙部'),(null,'妖怪部');  //成功12        insert into emp values (null,'孫悟空',1),(null,'白骨精',2); //成功13        insert into emp values (null,'尼古拉斯·趙四',3);  //失敗14        insert into emp values (null,'尼古拉斯·趙四',3);  //成功15        //刪除主鍵數(shù)據(jù):16         delete from dept where id=1;  //失敗17 18         //刪除主鍵表:19         drop table dept;   //失敗20         //通過 show create table 表名; 查看約束信息21         //刪除外鍵約束22     //格式:alter table emp drop foreign key 外鍵約束名;23         alter table emp drop foreign key fk_dept;

  myisam引擎不支持外鍵約束,要求兩張表都是innodb引擎才能使用外鍵約束;

  在JAVA開發(fā)中,除非特定情況,一般不使用外鍵約束,應為會給測試帶來不便;

索引

  索引是數(shù)據(jù)庫中用來提高查詢效率的技術(shù),類似于字典中的目錄;

  為什么使用索引:如果不使用索引,數(shù)據(jù)會零散的保存在磁盤塊中,查詢數(shù)據(jù)需要挨個遍歷每一個磁盤塊,直到找到為止,使用索引后,磁盤塊會以樹狀結(jié)構(gòu)對數(shù)據(jù)進行保存,查詢數(shù)據(jù)時會大大降低磁盤塊的訪問數(shù)量,從而提高查詢效率;

  索引是否越多越好?

    不是,因為索引會占用磁盤空間,對常用的數(shù)據(jù)、寫在查詢條件后面的字段創(chuàng)建索引;

  有索引一定好么?

    不是,如果數(shù)據(jù)量小,添加索引有可能會降低查詢效率;

  索引的分類

    聚集索引(聚簇索引):一個表只有一個索引,通過主鍵創(chuàng)建的索引稱為聚集索引;數(shù)據(jù)庫會自動為添加了主鍵約束的表增加聚集索引,在聚集索引中保存著查詢依據(jù)和數(shù)據(jù);

    非聚集索引:通過非字段創(chuàng)建的索引稱為非聚集索引,在非聚集索引中保存著查詢依據(jù)和地址(沒有數(shù)據(jù));

  如何創(chuàng)建索引

    格式:CREATE INDEX 索引名 ON 表名 (字段名(長度));

    CREATE INDEX index_item_title ON item(title);

  如何查看索引

    SHOW INDEX FROM item;

  刪除索引

    DROP INDEX index_item_title ON item;

  復合索引

    通過多個字段創(chuàng)建的索引

    應用場景:頻繁使用多個字段作為查詢條件的時候,可以為這幾個字段創(chuàng)建復合索引;

    格式:CREATE INDEX index_item_title ON item(title,price);

  索引總結(jié)

    1、索引是用來提高查詢效率的技術(shù),類似于目錄;

    2、因為索引會占磁盤空間,所以并非越多越好;

    3、如果數(shù)據(jù)量小添加索引反而會降低查詢效率;

    4、索引分為聚集索引(如果添加主鍵自動添加聚集索引、保存數(shù)據(jù)、一個表只有一個)和非聚集索引(有多個、不保存數(shù)據(jù)、保存地址);

    5、如果表中數(shù)據(jù)頻繁修改盡量不要使用索引;

事務

  數(shù)據(jù)庫中執(zhí)行SQL語句的最小工作單元,不能拆分,可以保證事務中的多條SQL語句全部成功或全部失??;

事務的ACID特性

  Atomicity 原子性:最小,不可拆分,保證全部成功或全部失??;

  Consistency 一致性:從一個一致狀態(tài)到另一個一致狀態(tài);

  Isolation 隔離性:多個事務之間互不影響;

  Durability 持久性:事務提交后數(shù)據(jù)持久保存到數(shù)據(jù)庫中;

事務相關(guān)指令

  查看自動提交狀態(tài)

    SHOW VARIABLES LIKE '%autocommit%';

  修改自動提交狀態(tài)

    SET AUTOCOMMIt=0/1;

  提交

    COMMIT;

  回滾

    ROLLBACK

  設置回滾點

    SAVEPOINT 別名;

  回滾到指定回滾點

    ROLLBACK 別名;

?

來源:http://www.icode9.com/content-2-62651.html
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
約束之二-Constraint的簡單操作
MySQL: MySQL約束(詳細、全)
我的MYSQL學習心得(一)
Mysql基礎篇(二)之函數(shù)和約束
數(shù)據(jù)庫SQL---數(shù)據(jù)庫、基本表、視圖、索引的定義、修改、刪除
ORACLE SQL*PLUS
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服