① mysql中float用什麼類型
對於浮點列類型,在MySQL中單精度值使用4個位元組,雙精度值使用8個位元組。
FLOAT類型用於表示近似數值數據類型。SQL標准允許在關鍵字FLOAT後面的括弧內選擇用位指定精度(但不能為指數范圍)。MySQL還支持可選的只用於確定存儲大小的精度規定。0到23的精度對應FLOAT列的4位元組單精度。24到53的精度對應DOUBLE列的8位元組雙精度。
MySQL允許使用非標准語法:FLOAT(M,D)或REAL(M,D)或DOUBLE PRECISION(M,D)。這里,「(M,D)」表示該值一共顯示M位整數,其中D位位於小數點後面。例如,定義為FLOAT(7,4)的一個列可以顯示為-999.9999。MySQL保存值時進行四捨五入,因此如果在FLOAT(7,4)列內插入999.00009,近似結果是999.0001。
MySQL將DOUBLE視為DOUBLE PRECISION(非標准擴展)的同義詞。MySQL還將REAL視為DOUBLE PRECISION(非標准擴展)的同義詞,除非SQL伺服器模式包括REAL_AS_FLOAT選項。
為了保證最大可能的可移植性,需要使用近似數值數據值存儲的代碼應使用FLOAT或DOUBLE PRECISION,不規定精度或位數。
DECIMAL和NUMERIC類型在MySQL中視為相同的類型。它們用於保存必須為確切精度的值,例如貨幣數據。當聲明該類型的列時,可以(並且通常要)指定精度和標度;例如:
salary DECIMAL(5,2)
在該例子中,5是精度,2是標度。精度表示保存值的主要位數,標度表示小數點後面可以保存的位數。
在MySQL 5.1中以二進制格式保存DECIMAL和NUMERIC值。
標准SQL要求salary列能夠用5位整數位和兩位小數保存任何值。因此,在這種情況下可以保存在salary列的值的范圍是從-999.99到999.99。
在標准SQL中,語法DECIMAL(M)等價於DECIMAL(M,0)。同樣,語法DECIMAL等價於DECIMAL(M,0),可以通過計算確定M的值。在MySQL 5.1中支持DECIMAL和NUMERIC數據類型的變數形式。M默認值是10。
DECIMAL或NUMERIC的最大位數是65,但具體的DECIMAL或NUMERIC列的實際范圍受具體列的精度或標度約束。如果此類列分配的值小數點後面的位數超過指定的標度允許的范圍,值被轉換為該標度。(具體操作與操作系統有關,但一般結果均被截取到允許的位數)。
② sql中money類型可以用FLOAT代替嗎
肯定不能代替賽~~~
SQL Server 中
Money 表示 貨幣數據 表示正的或者負的貨幣數量 ,映射到C#語言,表示decimal類型數據
FLOAT表示近似小數數據的數據類型,映射到C#語言,表示Float類型數據
這兩個數據類型表示的意義更笨就完全不一樣, 雖然資料庫保存的值「看起來」是一樣的~~
③ 資料庫裡面創建表是有小數點的是什麼類型
資料庫裡面創建表是有小數點的是float類型。
SQL Server 數據類型float(n): 從 -1.79E + 308 到 1.79E + 308 的浮動精度數字數據。 參數 n 指示該欄位保存 4 位元組還是 8 位元組。float(24) 保存 4 位元組,而 float(53) 保存 8 位元組。n 的默認值是 53。
MySQL 數據類型FLOAT(size,d) 帶有浮動小數點的小數字。在括弧中規定最大位數。在 d 參數中規定小數點右側的最大位數。
④ 關於SQL中float類型,該怎麼解決
基本上沒有什麼區別,都是表示小數不過它們的寬度不一樣,或者說精度不一樣,float是單精度,double是雙精度它們表示小數的范圍不一樣,double能表示的范圍,比float大double在內存中,佔8個位元組,float佔4個位元組float和double的關系就像short跟long的關系一樣
⑤ sql float和decode的區別
float 是浮點型
decode是 按條件分支語句,類似於Case when,但用法不同。
所以,float 和decode沒什麼關系。
⑥ sqlserverfloat用法
在SQL Server中,小數數值實際上只有兩種數據類型:float 和 decimal。double precision 整體是數據類型,等價於 float(53),real等價於float(24),應該避免在程序中直接使用 double precision 和 real,而是用 float 代替。numeric 和 decimal是同義詞。
float是近似數值,存在精度缺失,Decimal是精確數值,不存在精度損失。當數值不允許精度丟失時,使用 decimal數據類型存儲。在計算小數的除法時,SQL Server 內部隱式升級數據類型,根據小數數值的數據類型,就近向float(24) 或float(53)轉換。
一:近似數值,存在精度損失
1,float 表示近似數值
float數據類型的默認類型是float(53),佔用8bytes,實際上,float 只能表示兩種類型float(53) 和 float(24),分別佔用 4Bytes 和 8Bytes。
float [ (n) ]
Where n is the number of bits that are used to store the mantissa of the float number in scientific notation and, therefore, dictates the precision and storage size. If n is specified, it must be a value between 1 and 53. The default value of n is 53.
⑦ SQL中數據類型有哪些
int 整型 int 數據類型可以存儲從- 231(-2147483648)到231 (2147483 647)之間的整數。存儲到資料庫的幾乎所有數值型的數據都可以用這種數據類型。這種數據類型在資料庫里佔用4個位元組
tinyint 整型 tinyint 數據類型能存儲從0到255 之間的整數。它在你只打算存儲有限數目的數值時很有用。 這種數據類型在資料庫中佔用1 個位元組
float 近似數值型 float 數據類型是一種近似數值類型,供浮點數使用。說浮點數是近似的,是因為在其范圍內不是所有的數都能精確表示。浮點數可以是從-1.79E+308到1.79E+308 之間的任意數
bit 整型 bit 數據類型是整型,其值只能是0、1或空值。這種數據類型用於存儲只有兩種可能值的數據,如Yes 或No、True 或Fa lse 、On 或Off
char 字元型 char數據類型用來存儲指定長度的定長非統一編碼型的數據。當定義一列為此類型時,你必須指定列長。當你總能知道要存儲的數據的長度時,此數據類型很有用。例如,當你按郵政編碼加4個字元格式來存儲數據時,你知道總要用到10個字元。此數據類型的列寬最大為8000 個字元
varchar 字元型 varchar數據類型,同char類型一樣,用來存儲非統一編碼型字元數據。與char 型不一樣,此數據類型為變長。當定義一列為該數據類型時,你要指定該列的最大長度。 它與char數據類型最大的區別是,存儲的長度不是列長,而是數據的長度
nchar 統一編碼字元型 nchar 數據類型用來存儲定長統一編碼字元型數據。統一編碼用雙位元組結構來存儲每個字元,而不是用單位元組(普通文本中的情況)。它允許大量的擴展字元。此數據類型能存儲4000種字元,使用的位元組空間上增加了一倍
nvarchar 統一編碼字元型 nvarchar 數據類型用作變長的統一編碼字元型數據。此數據類型能存儲4000種字元,使用的位元組空間增加了一倍
text 字元型 text 數據類型用來存儲大量的非統一編碼型字元數據。這種數據類型最多可以有231-1或20億個字元
datetime 日期時間型 datetime數據類型用來表示日期和時間。這種數據類型存儲從1753年1月1日到9999年12月3 1日間所有的日期和時間數據, 精確到三百分之一秒或3.33毫秒
Smalldatetime 日期時間型 smalldatetime 數據類型用來表示從1900年1月1日到2079年6月6日間的日期和時間,精確到一分鍾
image 二進制數據類型 image 數據類型用來存儲變長的二進制數據,最大可達231-1或大約20億位元組
基本查詢
select column1,columns2,...
from table_name
說明:把table_name 的特定欄位資料全部列出來
select *
from table_name
where column1 = ***
[and column2 > yyy] [or column3 <> zzz]
說明:
1.'*'表示全部的欄位都列出來。
2.where 之後是接條件式,把符合條件的資料列出來。
select column1,column2
from table_name
order by column2 [desc]
說明:order by 是指定以某個欄位做排序,[desc]是指從大到小排列,若沒有指明,則是從小到大
排列
組合查詢
組合查詢是指所查詢得資料來源並不只有單一的表格,而是聯合一個以上的
表格才能夠得到結果的。
select *
from table1,table2
where table1.colum1=table2.column1
說明:
1.查詢兩個表格中其中 column1 值相同的資料。
2.當然兩個表格相互比較的欄位,其資料形態必須相同。
3.一個復雜的查詢其動用到的表格可能會很多個。
整合性的查詢:
select count (*)
from table_name
where column_name = ***
說明:
查詢符合條件的資料共有幾筆。
select sum(column1)
from table_name
說明:
1.計算出總和,所選的欄位必須是可數的數字形態。
2.除此以外還有 avg() 是計算平均、max()、min()計算最大最小值的整合性查詢。
select column1,avg(column2)
from table_name
group by column1
having avg(column2) > ***
說明:
1.group by: 以column1 為一組計算 column2 的平均值必須和 avg、sum等整合性查詢的關鍵字
一起使用。
2.having : 必須和 group by 一起使用作為整合性的限制。
復合性的查詢
select *
from table_name1
where exists (
select *<BR>from table_name2
where conditions )
說明:
1.where 的 conditions 可以是另外一個的 query。
2.exists 在此是指存在與否。
select *
from table_name1
where column1 in (
select column1
from table_name2
where conditions )
說明:
1. in 後面接的是一個集合,表示column1 存在集合裡面。
2. select 出來的資料形態必須符合 column1。
其他查詢
select *
from table_name1
where column1 like 'x%'
說明:like 必須和後面的'x%' 相呼應表示以 x為開頭的字串。
select *
from table_name1
where column1 in ('***','yyy',..)
說明:in 後面接的是一個集合,表示column1 存在集合裡面。
select *
from table_name1
where column1 between xx and yy
說明:between 表示 column1 的值介於 xx 和 yy 之間。
3、更改資料:
update table_name
set column1='***'
where conditoins
說明:
1.更改某個欄位設定其值為'***'。
2.conditions 是所要符合的條件、若沒有 where 則整個 table 的那個欄位都會全部被更改。
4、刪除資料:
delete from table_name
where conditions
說明:刪除符合條件的資料。
說明:關於where條件後面如果包含有日期的比較,不同資料庫有不同的表達式。具體如下:
(1)如果是access資料庫,則為:where mydate>#2000-01-01#
(2)如果是oracle資料庫,則為:where mydate>cast('2000-01-01' as date)
或:where mydate>to_date('2000-01-01','yyyy-mm-dd')
在delphi中寫成:
thedate='2000-01-01';
query1.sql.add('select * from abc where mydate>cast('+''''+thedate+''''+' as date)');
如果比較日期時間型,則為:
where mydatetime>to_date('2000-01-01 10:00:01','yyyy-mm-dd hh24:mi:ss')
4、增加資料:
insert into table_name (column1,column2,...)
values ( value1,value2, ...)
說明:
1.若沒有指定column 系統則會按表格內的欄位順序填入資料。
2.欄位的資料形態和所填入的資料必須吻合。
3.table_name 也可以是景觀 view_name。
insert into table_name (column1,column2,...)
select columnx,columny,... from another_table
說明:也可以經過一個子查詢(subquery)把別的表格的資料填入。
⑧ sql server 小數欄位設為哪種類型
在SQL Server中,實際上小數數值只有兩種數據類型:float和decimal,分別是近似數值和精確數值。
float 表示近似數值,存在精度損失,數據類型是 float(n),n是可選的,默認類型是float(53),佔用8bytes。雖然n的取值范圍是1-53,實際上,float 只能表示兩種類型float(53) 和 float(24),分別佔用 8Bytes 和 4Bytes。
decimal不存在精度損失,數據類型decimal(p,s) 需要分別指定小數的最大位數(p)和小數位的數量(s)。decimal 數據類型的最大精度為 38。即decimal 數據類型最多可以存儲 38位數字,所有這些數字均可位於小數點後面。decimal 數據類型存儲精確的數字表示形式,沒有近似值。
(8)sql中float代表什麼擴展閱讀:
雙精度(double precision)數據類型等價於 float(53),real等價於float(24),numeric是 decimal的同義詞,應該避免在程序中直接使用double precision、real和numeric,而是用 float(24) 、float(53)和decimal 代替。
float是近似數值,存在精度缺失;decimal是精確數值,不存在精度損失。當數值不允許精度丟失時,使用 decimal數據類型存儲數據。在計算小數的除法時,SQL Server 內部隱式升級數據類型,根據小數數值的數據類型,就近向float(24) 或float(53)轉換。
⑨ sql server 中float(15)是什麼意思
float浮點型,15是長度,一般只有定義表的欄位的時候,才會設置這個
⑩ SqlServer中decimal,float 和 real 數據類型的區別
SqlServer中decimal,float 和 real 數據類型的區別如下:
decimal(numeric ) 同義,用於精確存儲數值
float 和 real 不能精確存儲數值
decimal 數據類型最多可存儲 38 個數字,所有數字都能夠放到小數點的右邊。decimal 數據類型存儲了一個准確(精確)的數字表達法;不存儲值的近似值。
定義 decimal 的列、變數和參數的兩種特性如下:
p 小數點左邊和右邊數字之和,不包括小數點。如 123.45,則 p=5,s=2。
指定精度或對象能夠控制的數字個數。
s
指定可放到小數點右邊的小數位數或數字個數。
p 和 s 必須遵守以下規則:0 <= s <= p <= 38。
numeric 和 decimal 數據類型的默認最大精度值是 38。在 Transact-SQL 中,numeric 與 decimal 數據類型在功能上等效。
當數據值一定要按照指定精確存儲時,可以用帶有小數的 decimal 數據類型來存儲數字。
float 和 real 數據
float 和 real 數據類型被稱為近似的數據類型。在近似數字數據類型方面,float 和 real 數據的使用遵循 IEEE 754 標准。
近似數字數據類型並不存儲為多數數字指定的精確值,它們只儲存這些值的最近似值。在很多應用程序中,指定值與存儲值之間的微小差異並不明顯。但有時這些差異也值得引起注意。由於 float 和 real 數據類型的這種近似性,當要求精確的數字狀態時,比如在財務應用程序中,在那些需要舍入的操作中,或在等值核對的操作中,就不使用這些數據類型。這時就要用 integer、decimal、money 或 smallmone 數據類型。
在 WHERE 子句搜索條件中(特別是 = 和 <> 運算符),應避免使用 float 或 real 列。最好限制使用 float 和 real 列做 > 或 < 的比較。
IEEE 754 規格提供了四種舍入模式:舍入到最接近的值、上舍入、下舍入和舍入到零。Microsoft® SQL Server™ 使用上舍入。所有的數值必須精確到確定的精度,但會產生細小的浮點值變化。因為浮點數字的二進製表示法可以採用很多合法舍入規則中的任意一條,因此我們不可能可靠地量化一個浮點值。