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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql DDL

發布時間:2024/4/13 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql DDL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用戶管理

數據庫操作

系統數據庫

  • information_schema:主要存儲數據庫中的一些系統對象信息,例如用戶表、列、權限、字符集和分區等信息
  • performance_schema:主要存儲數據庫性能參數
  • mysq:主要存儲系統的用戶權限信息
  • test:測試數據庫

數據庫操作

  • 創建數據庫
    mysql
    Create database database_name

    數據庫長度小于128。
  • 查看數據庫
show databases;
  • 選擇數據庫
use database_name;
  • 刪除數據庫
drop database database_name;

Create Table table_name( col_name col_type ,... ) ;describe table_name;show create table table_name;drop table table_name;alter table old_table_name rename [to] new_table_name;alter table table_name add col_name col_type [first | after col_name1 | ] ; alter table table_name drop col_name; alter table table_name modify col_name attributes; alter table table_name change old_col_name new_col_name col_type; alter table table_name change col_name1 col_type1 after | before col_name2;--完整性約束 NOT NULL DEFAULT DEFAULT value UNIQUE KEY (UK) PRIMARY KEY (PK) AUTO_INCREAMENT FOREIGN KEY (FK)Alter table tabname add primary key(col); Alter table tabname drop primary key(col)

索引

create table xxx( , INDEX| KEY [indexname] ( col_name ...) )create index index_name on table_name ( col_name ,...) alter table table_name add index | key [index_name] ( col_name ,....)drop index index_name on table_name

視圖

觸發器

數據庫類型

數值類型

整數類型

類型存儲最小值最大值
tinyint1
smallint2
mediumint3-83886088388607
int4
bigint8

定點數

decimal與numeric在mysql中是相同類型
格式:decimal(M,D)
我們看到其中有兩個參數,即DECIMAL(M,D),其中M表示十進制數字總的個數,D表示小數點后面數字的位數,上例中的取值范圍為-999.99~999.99。

如果存儲時,整數部分超出了范圍(如上面的例子中,添加數值為1000.01),MySql就會報錯,不允許存這樣的值。

如果存儲時,小數點部分若超出范圍,就分以下情況:

若四舍五入后,整數部分沒有超出范圍,則只警告,但能成功操作并四舍五入刪除多余的小數位后保存。如999.994實際被保存為999.99。
若四舍五入后,整數部分超出范圍,則MySql報錯,并拒絕處理。如999.995和-999.995都會報錯。

M的默認取值為10,D默認取值為0。如果創建表時,某字段定義為decimal類型不帶任何參數,等同于decimal(10,0)。帶一個參數時,D取默認值。

M的取值范圍為1~65,取0時會被設為默認值,超出范圍會報錯。
D的取值范圍為0~30,而且必須<=M,超出范圍會報錯。

浮點數

類型存儲最小值最大值
float4
double8

浮點數是用來表示實數的一種方法,它用 M(尾數) * B( 基數)的E(指數)次方來表示實數,相對于定點數來說,在長度一定的情況下,具有表示數據范圍大的特點。但同時也存在誤差問題。
如果希望保證值比較準確,推薦使用定點數數據類型。
MySql中的浮點類型有float,double和real。他們定義方式為:FLOAT(M,D) 、 REAL(M,D) 、 DOUBLE PRECISION(M,D)。
REAL就是DOUBLE ,如果SQL服務器模式包括REAL_AS_FLOAT選項,REAL是FLOAT的同義詞而不是DOUBLE的同義詞。
“(M,D)”表示該值一共顯示M位整數,其中D位位于小數點后面。例如,定義為FLOAT(7,4)的一個列可以顯示為-999.9999。MySQL保存值時進行四舍五入,因此如果在FLOAT(7,4)列內插入999.00009,近似結果是999.0001。
FLOAT和DOUBLE中的M和D的取值默認都為0,即除了最大最小值,不限制位數。允許的值理論上是-1.7976931348623157E+308~-2.2250738585072014E-308、0和2.2250738585072014E-308~1.7976931348623157E+308。M、D范圍如下(MySql5.7實測,與IEEE標準計算的實際是不同的,下面介紹):
M取值范圍為0~255。FLOAT只保證6位有效數字的準確性,所以FLOAT(M,D)中,M<=6時,數字通常是準確的。如果M和D都有明確定義,其超出范圍后的處理同decimal。
D取值范圍為0~30,同時必須<=M。double只保證16位有效數字的準確性,所以DOUBLE(M,D)中,M<=16時,數字通常是準確的。如果M和D都有明確定義,其超出范圍后的處理同decimal。
FLOAT和DOUBLE中,若M的定義分別超出7和17,則多出的有效數字部分,取值是不定的,通常數值上會發生錯誤。因為浮點數是不準確的,所以我們要避免使用“=”來判斷兩個數是否相等。
MySql中的浮點數遵循IEEE 754標準。
內存中,FLOAT占4-byte(1位符號位 8位表示指數 23位表示尾數),DOUBLE占8-byte(1位符號位 11位表示指數 52位表示尾數)。IEEE754標準還對尾數的格式做了規范:d.dddddd…,小數點左面只有1位且不能為零,計算機內部是二進制,因此,尾數小數點左面部分總是1。顯然,這個1可以省去,以提高尾數的精度。由上可知,單精度浮點數的尾數是用24bit表示的,雙精度浮點數的尾數是用53bit表示的。所以就能算出取值范圍和準確的有效位數了,但MySql中其實略有不同。

bit

BIT數據類型可用來保存位字段值。BIT(M)類型允許存儲M位值。M范圍為1~64,默認為1。
BIT其實就是存入二進制的值,類似010110。
如果存入一個BIT類型的值,位數少于M值,則左補0.
如果存入一個BIT類型的值,位數多于M值,MySQL的操作取決于此時有效的SQL模式:
如果模式未設置,MySQL將值裁剪到范圍的相應端點,并保存裁減好的值。
如果模式設置為traditional(“嚴格模式”),超出范圍的值將被拒絕并提示錯誤,并且根據SQL標準插入會失敗。

b=b’001000’;

字符串類型

類型存儲最小值最大值
char(M)M默認255
varchar(M)0-M

日期時間類型

ENUM

SET

總結

以上是生活随笔為你收集整理的Mysql DDL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。