一條路走到黑之資料庫基礎

2021-10-04 03:41:00 字數 3847 閱讀 2094

show character set;
檢視當前mysql服務例項支援的字符集、預設的字元序以及字符集占用的最大位元組長度等資訊

show databases;
檢視資料庫

create database 資料庫名;
建立資料庫

drop database 資料庫名;
刪除資料庫

show create database 資料庫名;
可以檢視資料庫的相關資訊(例如mysql版本id號、預設字符集等資訊)

use 資料庫名;
執行該命令後,後續的mysql命令將自動操作該資料庫中所有資料庫物件

create table 表名(欄位名1 資料型別 [約束條件],…[其他約束條件],[其他約束條件])其他選項(例如儲存引擎、字符集等選項)

create table my_table(today datetime,name char(20));

建立一張資料庫的表

drop table 表名;
刪除一張指定的表

刪除後,mysql服務例項會自動刪除該錶結構定義檔案以及資料、索引資訊。該命令慎用!

describle 表名; / desc 表名;
顯示表結構

show tables;
檢視資料庫中的所有表

show create table 表名;
檢視一張表的詳細資訊

型別        位元組數      範圍                無符號範圍

tinyint 1 (-128,127) (0,255)

smallint 2 (-32768,32767) (0,65535)

mediumint 3 (-8388608,8388607) (0,16777215)

int 4 (-2147483648,2147483647)

bigint 8 ... ...

整數型別的數,預設情況下既可以表示正整數又可以表示負整數(此時稱為有符號數)。如果只希望表示零和正整數,可以使用無符號關鍵字「unsigned」對整數型別進行修飾(此時稱為無符號整數)。

精確小數    decimal

浮點小數 float (單精度)

double(雙精度)

char()與varchar(): 例如對於簡體中文字符集gbk的字串而言,varchar(255)表示可以儲存255個漢字,而每個漢字占用兩個位元組的儲存空間。假如這個字串沒有那麼多漢字,例如僅僅包含乙個『中』字,那麼varchar(255)僅僅占用1個字元(兩個位元組)的儲存空間;而char(255)則必須占用255個字元長度的儲存空間,哪怕裡面只儲存乙個漢字。

date表示日期,預設格式為『yyyy-mm-dd』;

time表示時間,格式為『hh:ii:ss』;

year表示年份;

datetime與timestamp是日期和時間的混合型別,格式為'yyyy-mm-dd hh:ii:ss'

datetimetimestamp的區別:

1. 儲存空間不同

a) timestamp占用4個位元組

b) datetime占用8個位元組

2. 受時區影響

c) timestamp實際記錄的是1970-01-01 00:00:01到現在的數數,受時區影響

d) datetime不受時區影響

3. 時間範圍不同

e) timestamp的時間範圍是:'1970-01-01 00:00:01' utc ~ '2038-01-19 03:14:07' utc

f) datetime的時間範圍是:'1000-01-01 00:00:00' ~ '9999-12-31 23:59:59'

4. 自動更新

g) timestamp型別在預設情況下,insert、update 資料時,timestamp列會自動以當前時間(current_timestamp)填充/更新。

5. mysql中,timestamp和long之間的轉換函式:

h) timestamp轉long:unix_timestamp

i) long轉timestamp:from_unixtime

datetime與timestamp之間的區別例項:將null插入到timestamp欄位後,該字段的值實際上mysql伺服器當前日期和時間。

mysql> insert into today values(null,null);

+---------------------+---------------------+

| t1 (datetime) | t2 (timestamp) |

+---------------------+---------------------+

| null | 2020-03-19 18:08:53 |

+---------------------+---------------------+

now()函式,用於獲得mysql伺服器的當前時間,該時間與時區的設定密切相關。

兩者的差別在於,enum只能單選,set可以多選。enum型別的字段類似於單選按鈕的功能,乙個enum型別的資料最多可以包含65535個元素。set 型別的字段類似於核取方塊的功能,乙個set型別的資料最多可以包含64個元素。

text和blob都可以用來儲存長字串:

text用來儲存文字字串,例如新聞內容,部落格日誌等資料;
資料型別越短越好,越簡單越好
字串資料的字段,建議優選選擇 varchar(n),長度不夠選擇text資料型別。

盡量使用整數代替字串, 整數處理開銷更小
如果主鍵是整數型別,可以大大提公升查詢的連線速度,提高資料的檢索效能。

採用精確小數型別 decimal
精確小數型別不僅能夠保證資料計算更為精確,還可以節省儲存空間。

使用內建的日期和時間資料型別
最好不要使用字串來儲存日期和時間。

盡量避免null欄位
建議將字段指定為not null約束。

create table 表名(欄位名1 資料型別 [約束條件],…[其他約束條件],[其他約束條件])其他選項(例如儲存引擎、字符集等選項)

演算法之老鼠走迷宮1 找一條路

老鼠走迷宮問題是遞迴的乙個經典應用演算法 基本描述如下 有乙個只老鼠在迷宮裡,隨便給幾個起點,給乙個終點,找出一條由起點到終點的連通路徑。簡單設計如下 老鼠在任何一點的行動方向都有四種可能行,上下左右 每當發生一次移動之後,下一次移動又有四種可能性。因此可以用遞迴來解決該問題,為了 中直觀地顯示,我...

一條C 連線SQL Server資料庫寫法

server localhost database mydata user id sa pwd sa integrated security sspi initial catalog northwind server local provider sqloledb.1 password 你的資料庫密...

關於資料庫Group By取最新一條資料

根據欄位super find id分組查詢opt time最新的一條資料,如以上示例表中期望查詢結果為第2條。select b.super find id,max b.opt time as opt time from info super feedback b group by b.super f...