mysql 內部語句和語法

2021-06-07 20:03:34 字數 1549 閱讀 3070

alter 語句

// 修改資料庫編碼 utf8

alter database dbname character set utf8 collate utf8_general_ci;

// 增加索引

alter table dbname add index `new_index`(id)

可以代替index的有

primary key

unique

fulltext    全文搜尋只有在 myisam 引擎中可用

// 另一種增加索引方法

create index  索引檔名 on 表名( 欄位名)

// 刪除索引

alter table dbname drop index 索引檔名

// 另一種刪除索引方法

drop index 索引檔名 on 表名 

// 刪除字段

alter table dbname drop column 欄位名

// 停止更新 myisam 表中的非唯一索引。

alter table dbname disable keys;

插入大批量的資料之後

// 重新建立丟失索引

alter table dbname enable keys;

上面的操作能讓大批量的資料在寫入到資料表時加快執行速度。

// 複製表

create table  a select * from b;

將b表的所有資料和字段全部複製到 a表。但是不會複製任何的屬性 和索引之類的東西。

// 如果想建立表時建立索引 則可以如下使用

create table a (primary key(id)) select * from b;

將b表的資料複製到 a 表時 設定 id列為主鍵

完全複製 b 表的屬性和索引 ( 資料不會被複製)

create table a like b;

刪除多個表中的行

a 表id        name

1         test

b表id           aid

1            1

c表id          bid

1           1

delete a,b,c from a,b,c where a.id = b.aid and b.id = c.bid

如果上述刪除看作是查詢時只有在鍊錶成功 才會刪除 a b c 三個表中的三行記錄

具體條件成立時刪除那個表的資料 是看 delete 後面緊跟著的表名

匯入txt 文字中的資料

load data infile 文字檔案路徑 into table 表名 fields

terminated "," escaped by "\\" lines terminated by '\n'

terminated ","   指的是 用來 , 分割列

escaped by "\\"  不知道啥意思 不寫也行 (好像是對轉移的處理)

terminated by '\n' 指的是用什麼分割一行 (預設好像就是 \n)

控制語句和語法

學習主題 流程控制語句和方法 學習目標 1 掌握什麼是流程控制 2 掌握if單選擇 3 掌握 if else 雙選擇 4 掌握 if elseif else 多選擇 5 掌握switch的使用 6 掌握while迴圈結構 1.控制語句和現實邏輯對應 1 流程控制語句的作用是什麼,分為哪幾類?流程控制...

MySQL執行select語句內部流程

一般來說,資料是儲存到服務端的,所以從客戶端讀取服務端資料要經歷如下幾個過程 client query cache 查詢快取 預設關閉 parse 解析器 pre processor 預處理器 optimizer 優化器 execution plans 執行計畫 executor 執行器 stora...

mysql 的連線語句 mysql 內部連線語句?

我正在做乙個關於tn景點的資料庫,這是我的 我想查詢任何給定城市的景點數量和城市名稱 我想列出給定城市的名稱和景點 我將如何去做?我嘗試第二次嘗試,但沒有成功 select attractions.attraction name,cities.city name from cities inner ...