Mysql基本資料型別

2021-09-24 19:28:30 字數 4289 閱讀 8697

mysql常見的資料型別有:整數型,定點型,浮點型,字串,時間,布林,位

## 整數型:

tinyint:2的8次方

smallint:2的16次方

mediumint:2的32次方

integer:2的64次方

bigint:2的128次方

int[m] [unsigned] [zerofill]:m為位數,預設為10,unsigned表示只能為正數(包括0),zerofill預設只能為正數,填充0

create table t1(id int zerofill);

insert into t1 values(-1); --報錯--

insert into t1 values(0);

insert into t1 values(123.523);

select * from t1; --輸出:0,124(忽略小數,四捨五入)--

定點數(小數):

decimal=dec

dec(m,n):表示總共m位數字,其中n位位小數,(m-n)位為整數

create table t2(dec(5,3) unsigned); --定義整數字為2位,小數字為3位的定點數--

insert into t2 values(123.123); --報錯--

insert into t2 values(12);

insert into t2 values (12.1235);

insert into t2 values(12.12);

select * from t2; --輸出:12,12.123,12.120--

浮點型:

float(單精度):從第7位有效位開始四捨五入儲存

double(雙精度):從第16 位有效位開始四捨五入儲存

create table t3(id float(8));

insert into t3 values(1234567);

insert into t3 values(123456789);

insert into t3 values(123456789.12345);

select * from t3; --輸出:1234570,123457000,123457000--

create table t_3(id float(5,3));

insert into t_3 values(123); --報錯--

insert into t_3 values(12.3);

insert into t_3 values(12.255555);

select * from t_3; --輸出:12.3,12.256--

字串:

char:固定長度,最多255個字元(2的8次方)

varchar:固定長度,最多65535個字元(2的16次方)

tinytext:可變長度,最多255個字元

text:可變長度,最多65535個字元

mediumtext:可變長度,最多2的24次方個字元

longtext:可變長度,最多2的32次方個字元

create table t4(name varchar(21));

insert into t4 values(123);

insert into t4 values(xiaoming); --報錯--

insert into t4 values('xiaoming'dsad'); --報錯--

insert into t4 values('xiaoming');

insert into t4 values('xiao'''ming);

select * from t4; --輸出:123,xiaoming,xiao'ming--

char和varchar的區別:

1、char(n)若存入的字元數小於n,則以空格在字串後面補充,查詢之時再將空格去掉,所有char型別儲存的字串末尾不能有空格,varchar不限於此

2、char固定長度,char(4)不管存入幾個字元,都將占用4個位元組,varchar是存入的實際位元組數+1個位元組或2個位元組,所以varchar(4),存入3個位元組,實際占用4個位元組

3、char檢索速度比varchar速度快

日期時間區:

create table t5(d1 date);

insert into t5 values(19990101);

insert into t5 values(990101);

insert into t5 values(99101); --報錯--

select * from t5; --輸出:1999-01-01,1999-01-01---

獲得當前日期時間的函式:

1、獲得當前日期+時間(date+time)函式:now(),sysdate()

區別:now()在執行開始時值就得到了,sysdate()在函式執行時動態得到值

select now(),sleep(4),now();  --2019-01-01 *02:01:23* , 0 ,  2019-01-01 *02:01:23*--

select sysdate(),sleep(4),sysdate(); --2019-01-01 *02:01:23* , 0 , 2019-01-01 *02:01:26*--

2、獲得當前日期curdate(),獲得當前時間curtime()
select curdate(),curtime();
1)、日期字串轉換函式format:

date_format(date,format) --將日期date按照給頂的模式format轉換成字串

time_format(time,format) --將時間time按照給頂的模式format轉換成字串

select date_format(now(),'%w %m %y');  --thursday june 2019--

select time_format(now(),'%y%m%d%h%i%s'); -- 00000000210159--

select time_format(now(),'%h.%i.%s'); --21.03.07--

2)、日期字元轉換函式

str_to_date(str,format) --將字串以指定的模式format轉換成日期

select str_to_date('01,5,2017','%d,%m,%y');  --2017-05-01

select str_to_date(''may 1,2013,'%m %d,%y'); --2013-05-01

3)、獲得當前utc日期時間函式:utc_date(),utc_time(),utc_timestamp()
select utc_timestamp(),utc_date(),utc_time();  -- 2019-06-27 13:22:32 , 2019-06-27 , 13:22:32
布林:

insert into t7 values(true);

insert into t7 values(false);

insert into t7 values(123);

insert into t7 values(127);

insert into t7 values(128); --報錯,範圍在-128~127--

select * from t7; --1,0,123,127,--

位:

bin() --顯示二進位制格式

hex() --顯示十六進製制格式

create table t8(id bit(4));

insert into t8 values(2);

insert inro t8 values(13);

select bin(id),hax(id) from t8; --10,1101----2,d--

mysql 基本資料型別 MySQL基本資料型別

char 和 varchar 型別 char 型別用於定長字串,並且必須在圓括號內用乙個大小修飾符來定義。這個大小修飾符的範圍從 0 255。比指定長度大的值將被截短,而比指定長度小的值將會用空格作填補。char 型別可以使用 binary 修飾符。當用於比較運算時,這個修飾符使 char 以二進位...

MySql 基本資料型別

型別 大小描述 char length length位元組 定長字段,長度為0 255個位元組 varchar length string長度 1位元組 變長字段,在mysql5.03以前,長度為0 255個位元組,在5.0.3以後,最大長度為65535位元組。乙個utf8字元佔3個位元組 乙個gb...

MySQL 基本資料型別

mysql是乙個關係型資料庫管理系統,由瑞典mysql ab 公司開發,目前屬於 oracle 旗下產品。mysql 是最流行的關係型資料庫管理系統之一,在 web 應用方面,mysql是最好的 rdbms relational database management system,關聯式資料庫管理...