SQL知識點小結(不定期更新)

2021-07-23 22:47:39 字數 2877 閱讀 5776

本文用的是屌絲學生最愛的 mysql資料庫。

先創幾張基本的表

#班級表

drop table if exists class_tab;

create table class_tab(

class_id varchar(10) primary key,

cla_name varchar(15) not null

);#學生表

drop table if exists stu_tab;

create table stu_tab(

stu_id varchar(15) primary key,

stu_name varchar(15) not null,

class_id varchar(10),

foreign key(class_id) references class_tab(class_id)

);#課程表

drop table if exists cou_tab;

create table cou_tab(

cou_id varchar(15) primary key,

cou_name varchar(20) not null

);#學生-課程關係表

drop table if exists stu_cou;

create table stu_cou(

cou_id varchar(15),

stu_id varchar(15),

primary key(cou_id,stu_id),

#定義外來鍵的另一種寫法

constraint fk_depid_cou foreign key(cou_id) references cou_tab(cou_id),

constraint fk_depid_stu foreign key(stu_id) references stu_tab(stu_id)

);

下面是增刪該查的樣例,將來忘了,可以來回顧。

#增

insert into class_tab values("110","計算機");

insert into stu_tab(stu_id,stu_name) values("110","lincon");

#查select * from stu_tab;

select stu_name from stu_tab;

#從第二條記錄開始取三條記錄

select stu_name from stu_tab order by stu_name limit 1,3;

#刪#刪除所有記錄

delete from stu_tab;

delete from stu_tab where stu_name = 'lincon';

#改update stu_tab set stu_name="jobs" where stu_name="lincon";

#更改模式 安全模式更新操作會有限制 只能用主鍵來定位更新記錄 也就是說每次最多更新一條記錄

set sql_safe_updates = 0;

update stu_tab set stu_name="jobs" where stu_id="110";

主鍵自增長

#主鍵自增長

drop table if exists increa;

create table increa(

aa int primary key auto_increment

);insert into increa values();

下面我們來說說索引

mysql索引用來快速地尋找那些具有特定值的記錄,所有mysql索引都以b-樹的形式儲存。如果沒有索引,執行查詢時mysql必須從第乙個記錄開始掃瞄整個表的所有記錄,直至找到符合要求的記錄。表裡面的記錄數量越多,這個操作的代價就越高。如果作為搜尋條件的列上已經建立了索引,mysql無需掃瞄任何記錄即可迅速得到目標記錄所在的位置。如果表有1000個記錄,通過索引查詢記錄至少要比順序掃瞄記錄快100倍。

總體分析

primary, index, unique 這3種是一類

primary 主鍵。 就是 唯一 且 不能為空。

index 索引,普通的

unique 唯一索引。 不允許有重複。

fulltext 是全文索引,用於在一篇文章中,檢索文字資訊的。

mysql的索引型別:primary, index,unique,fulltext,spaial 有什麼區別?各適用於什麼場合?

舉個例子來說,比如你在為某商場做乙個會員卡的系統。

這個系統有乙個會員表

有下列字段:

會員編號 int

會員姓名 varchar(10)

會員身份證號碼 varchar(18)

會員** varchar(10)

會員住址 varchar(50)

會員備註資訊 text

那麼這個 會員編號,作為主鍵,使用 primary

會員姓名 如果要建索引的話,那麼就是普通的 index

會員身份證號碼 如果要建索引的話,那麼可以選擇 unique (唯一的,不允許重複)

會員備註資訊 , 如果需要建索引的話,可以選擇 fulltext,全文搜尋。

不過 fulltext 用於搜尋很長一篇文章的時候,效果最好。

用在比較短的文字,如果就一兩行字的,普通的 index 也可以。

舉個栗子,給學生表的姓名列加個普通索引

#增加普通索引

alter table stu_tab add index name_index (stu_name);

不定期更新部落格

也算是乙個真正程式設計生涯的起點,聽說大神都有自己的部落格。csdn部落格主要是作為乙個詳細的記錄場所,類似log的verbose檔,細緻入微,無孔不入,因此可能更新頻率較高,質量也相對較低。我的意思是將csdn這裡的部落格作為日後更加精煉的部落格 比如個人blog站或者github pages 的...

C STL 不定期更新

一 set set的特性是,所有元素都會根據元素的鍵值自動排序,set的元素不像map那樣可以同時擁有實值 value 和鍵值 key set元素的鍵值就是實值,實值就是鍵值。set不允許兩個元素有相同的鍵值。include初始化 int arr 5 set iset arr,arr 5 或者只定義...

MySql命令(不定期更新)

show databases 檢視資料庫 create database car 建立資料庫 use car 進入資料庫 show tables 檢視表 create tables mycar 建立表create table if not exists love mycar 如何不存在就建立表 de...