中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網(wǎng)站公司怎么做業(yè)務濟寧百度推廣公司

網(wǎng)站公司怎么做業(yè)務,濟寧百度推廣公司,惠州營銷網(wǎng)站建設,一家專門做燈的網(wǎng)站文章目錄 一、數(shù)據(jù)類型的分類二、tinyint類型2.1 創(chuàng)建有符號數(shù)值2.2 創(chuàng)建無符號數(shù)值 三、bit類型三、浮點類型3.1 float3.2 decimal類型 四、字符串類型4.1 char類型4.2 varchar類型 五、日期和時間類型六、枚舉和集合類型6.1 enum的枚舉值和set的位圖結(jié)構(gòu)6.2 查詢集合find_in_…

文章目錄

  • 一、數(shù)據(jù)類型的分類
  • 二、tinyint類型
    • 2.1 創(chuàng)建有符號數(shù)值
    • 2.2 創(chuàng)建無符號數(shù)值
  • 三、bit類型
  • 三、浮點類型
    • 3.1 float
    • 3.2 decimal類型
  • 四、字符串類型
    • 4.1 char類型
    • 4.2 varchar類型
  • 五、日期和時間類型
  • 六、枚舉和集合類型
    • 6.1 enum的枚舉值和set的位圖結(jié)構(gòu)
    • 6.2 查詢集合find_in_set

一、數(shù)據(jù)類型的分類

在這里插入圖片描述

  • 數(shù)值類型

在這里插入圖片描述

二、tinyint類型

2.1 創(chuàng)建有符號數(shù)值

默認是有符號的。取值范圍[-128,127]:

mysql> create table if not exists t1(-> num tinyint-> );

在這里插入圖片描述
插入tinyint類型數(shù)值范圍內(nèi)的數(shù)據(jù)是可以的:

mysql> insert into t1 values (-128);
Query OK, 1 row affected (0.01 sec)mysql> insert into t1 values (127);
Query OK, 1 row affected (0.01 sec)

在這里插入圖片描述
超出范圍的數(shù)據(jù)會插入失敗:

mysql> insert into t1 values (128);
ERROR 1264 (22003): Out of range value for column 'num' at row 1
mysql> insert into t1 values (-129);
ERROR 1264 (22003): Out of range value for column 'num' at row 1

2.2 創(chuàng)建無符號數(shù)值

用tinyint unsigned數(shù)據(jù)類型創(chuàng)建表t2:

mysql> create table if not exists t2( num tinyint unsigned );
Query OK, 0 rows affected (0.02 sec)

我們知道tinyint unsigned類型的范圍是【0 ~ 255】:

mysql> insert into t2 values (0);
Query OK, 1 row affected (0.01 sec)mysql> insert into t2 values (255);
Query OK, 1 row affected (0.00 sec)mysql> insert into t2 values (-1);
ERROR 1264 (22003): Out of range value for column 'num' at row 1
mysql> insert into t2 values (256);
ERROR 1264 (22003): Out of range value for column 'num' at row 1

如果我們向MySQL特定的類型中插入不合法的數(shù)據(jù),MySQL一般都是直接攔截,不讓我們做對應的操作!
反過來,我們?nèi)绻呀?jīng)有數(shù)據(jù)被插入到MySql中了,那么一定是合法的。
所以數(shù)據(jù)類型本身就是一種約束。

MySql表中建立屬性列:列名稱 類型在后

num tinyint unsigned;

三、bit類型

bit[(M)] :位字段類型。M表示有幾位,范圍從1到64位。如果M被忽略,默認為1。

mysql> create table if not exists t3( -> num1 bit(1),-> num2 bit(64)-> );
Query OK, 0 rows affected (0.03 sec)

對于num1只能插入0或1。

mysql> insert into t3 (num1, num2) values (1, 256);
Query OK, 1 row affected (0.01 sec)mysql> insert into t3 (num1, num2) values (0, 1024);
Query OK, 1 row affected (0.01 sec)

位類型顯示的是ASCII碼,如果想看到:可以使用十六進制打印。

select hex(num1),hex(num2) from t3;

驗證一下:
如果插入’a’或者97:

mysql> insert into t3 (num1, num2) values(1, 97);
Query OK, 1 row affected (0.01 sec)mysql> insert into t3 (num1, num2) values(1, 'a');
Query OK, 1 row affected (0.00 sec)

在這里插入圖片描述
所以bit字段在顯示時,是按照ASCII碼對應的值顯示。

三、浮點類型

3.1 float

float[(m, d)] [unsigned] : M指定顯示長度,d指定小數(shù)位數(shù),占用空間4個字節(jié)

例如:
float(5,2) 表示的范圍是 -999.99 ~ 999.99
float(5,2) unsigned 表示的范圍 0 ~ 999.99

創(chuàng)建表:

mysql> create table if not exists t5(-> num float(4, 3)-> );
Query OK, 0 rows affected (0.04 sec)

插入數(shù)據(jù):

mysql> insert into t5 (num) values (9.999);
Query OK, 1 row affected (0.00 sec)mysql> insert into t5 values (-9.999);
Query OK, 1 row affected (0.00 sec)

在這里插入圖片描述
插入的如果是 1.2345,會變成1.234(超過5進1)

mysql> insert into t5 values (1.2345);
Query OK, 1 row affected (0.01 sec)mysql> insert into t5 values (1.2346);
Query OK, 1 row affected (0.01 sec)

在這里插入圖片描述

但是如果進位以后超過范圍了就也無法插入成功。

mysql> insert into t5 values (9.9996);
ERROR 1264 (22003): Out of range value for column 'num' at row 1

如果是無符號浮點數(shù)就不能插入負數(shù)了,上限不變。

3.2 decimal類型

decimal(m, d) [unsigned] : M指定顯示的總長度(整數(shù)+小數(shù)),d指定小數(shù)位數(shù)。

decimal和float很像,表示的數(shù)據(jù)范圍一樣,但是精度不一樣。

創(chuàng)建表:

mysql> create table t7(-> num1 float(10, 8),-> num2 decimal(10, 8)-> );
Query OK, 0 rows affected (0.03 sec)

插入數(shù)據(jù):

mysql> insert into t7 (num1, num2) values (10.0, 99.99);
Query OK, 1 row affected (0.01 sec)mysql> insert into t7 (num1, num2) values (23.12345612, 23.12345612);
Query OK, 1 row affected (0.00 sec)

在這里插入圖片描述
可以看到float類型存在精度丟失,decimal存什么就是什么。(精度高)

float在精度過大會做一些動作,而decimal不會。
float表示的精度大約是7位。decimal整數(shù)最大位數(shù)m為65。支持小數(shù)最大位數(shù)d是30。如果d被省略,默認為0.如果m被省略,默認是10。

建議:如果希望小數(shù)的精度高,推薦使用decimal或double而不是float。

四、字符串類型

4.1 char類型

char(L): 固定長度字符串,L是可以存儲的長度,單位為字符(注意是字符,不是字節(jié)),最大長度值可以為255

創(chuàng)建表:

mysql> create table t6(-> num char(2)-> );
Query OK, 0 rows affected (0.06 sec)

插入數(shù)據(jù):

mysql> insert into t6 values ('a');
Query OK, 1 row affected (0.00 sec)mysql> insert into t6 values ('ab');
Query OK, 1 row affected (0.00 sec)mysql> insert into t6 values ('abc');
ERROR 1406 (22001): Data too long for column 'num' at row 1

如果插入漢字:對于gbk編碼一個占用2個字節(jié),utf8編碼一個漢字占用3個字節(jié)

mysql> insert into t6 values ('哈');
Query OK, 1 row affected (0.00 sec)mysql> insert into t6 values ('哈哈');
Query OK, 1 row affected (0.00 sec)mysql> insert into t6 values ('哈哈哈');
ERROR 1406 (22001): Data too long for column 'num' at row 1

mysql的字符代表的是符號,所以能夠插入成功。

在這里插入圖片描述

4.2 varchar類型

varchar(L): 可變長度字符串,L表示字符長度,最大長度65535個字節(jié)

關(guān)于varchar(L),L到底是多大,這個len值,和表的編碼密切相關(guān):
varchar長度可以指定為0到65535之間的值,但是有1 - 3 個字節(jié)用于記錄數(shù)據(jù)大小,所以說有效字節(jié)數(shù)是65532。(如果表中僅有一個varchar字段,有效字節(jié)數(shù)是65532,如果還有其他的字段,那么varchar的實際有效字節(jié)將會比65532低一點)
當我們的表的編碼是utf8時,varchar(n)的參數(shù)n最大值是65532/3=21844[因為utf中,一個字符占用3個字節(jié)],如果編碼是gbk,varchar(n)的參數(shù)n最大是65532/2=32766(因為gbk中,一個字符占用2字節(jié))。

創(chuàng)建表:

mysql> create table t4(-> id int,-> name varchar(6)-> );
Query OK, 0 rows affected (0.03 sec)

插入數(shù)據(jù)跟char類型是一樣的。

char和varchar的區(qū)別:

char是固定長度字符串,類似C/C++中的數(shù)組的概念,例如char(6)表示開辟6個字符的大小的空間,沒用完就是浪費。
varchar是可變長度的字符串,例如varchar(6)表示最大長度為6個字符,如果用戶僅使用了一個字符,那么varchar只會分配出一個字符的空間+額外1個字節(jié)(記錄數(shù)據(jù)大小)用于存儲。

五、日期和時間類型

常用的日期有如下三個:

date :日期 ‘yyyy-mm-dd’ ,占用三字節(jié)
datetime 時間日期格式 ‘yyyy-mm-dd HH:ii:ss’ 表示范圍從 1000 到 9999 ,占用八字節(jié)
timestamp :時間戳,從1970年開始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致,占用四字節(jié)

創(chuàng)建表:

mysql> create table t8(-> t1 date,-> t2 datetime,-> t3 timestamp-> );
Query OK, 0 rows affected (0.04 sec)

在這里插入圖片描述
對于時間戳timestamp:創(chuàng)建表結(jié)構(gòu),插入數(shù)據(jù)是tinmestamp會自動更新。所以不需要更改

mysql> insert into t8 (t1, t2) values ('2002-07-31', '2023-07-31 08:00:00');
Query OK, 1 row affected (0.00 sec)

在這里插入圖片描述
此時更新t1:

mysql> update t8 set t1='2003-07-31';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from t8;
+------------+---------------------+---------------------+
| t1         | t2                  | t3                  |
+------------+---------------------+---------------------+
| 2003-07-31 | 2023-07-31 08:00:00 | 2023-08-03 17:17:45 |
+------------+---------------------+---------------------+
1 row in set (0.00 sec)

t1和t3都會被更新,這也說明了時間戳timestamp會自動更新,意義在于記住時間的更新。

六、枚舉和集合類型

6.1 enum的枚舉值和set的位圖結(jié)構(gòu)

創(chuàng)建帶有enum和set類型的表votes:

mysql> create table if not exists votes(-> username varchar(10),-> gander enum('男', '女'),-> hobby set('籃球', '足球', '跑步')-> );

插入數(shù)據(jù):

mysql> insert into votes values ('張三', '男', '跑步');
Query OK, 1 row affected (0.01 sec)mysql> insert into votes values ('李四', '女', '籃球');
Query OK, 1 row affected (0.01 sec)mysql> insert into votes values ('趙五', 'a', '籃球');
ERROR 1265 (01000): Data truncated for column 'gander' at row 1

可以看到對于gander我們只能插入男或者女,不能插入其他字符。
但是可以插入1和2,也就是說枚舉類型可以寫常量也可以寫常量的下標。

對于set也可輸入數(shù)字插入,數(shù)字代表位圖:

mysql> insert into votes values ('趙五', '男', '羽毛球');
ERROR 1265 (01000): Data truncated for column 'hobby' at row 1mysql> insert into votes values ('趙五', '男', '跑步,籃球')
Query OK, 1 row affected (0.01 sec)mysql> insert into votes values ('趙五', '男', '跑步,籃球,足球');
Query OK, 1 row affected (0.01 sec)

在這里插入圖片描述

mysql> insert into votes (username) values ('小明');
Query OK, 1 row affected (0.02 sec)mysql> insert into votes values ('小明', 1, 0);
Query OK, 1 row affected (0.00 sec)mysql> insert into votes values ('小明', 1, 1);
Query OK, 1 row affected (0.00 sec)

在這里插入圖片描述
NULL表示什么都沒有,而' '表示有東西但是是一個空串。

當然set是一個位圖結(jié)構(gòu),如果是3,那么就是1 | 2(籃球,足球)。

enum:在所有枚舉中選擇一種進行插入。也可以直接使用枚舉值,枚舉值從1開始。
set:在集合中選擇一種或多種存在的選項進行數(shù)據(jù)的插入。也可使用位圖的形式進行數(shù)據(jù)插入。

6.2 查詢集合find_in_set

如果我們想要查詢愛好是籃球的:

mysql> select * from votes where hobby='籃球';
+----------+--------+--------+
| username | gander | hobby  |
+----------+--------+--------+
| 李四     || 籃球   |
| 小明     || 籃球   |
+----------+--------+--------+
2 rows in set (0.00 sec)

可以看到是精確篩選
下面介紹一個函數(shù)find_in_set

mysql> select find_in_set('a', 'a,b,c');
+---------------------------+
| find_in_set('a', 'a,b,c') |
+---------------------------+
|                         1 |
+---------------------------+
1 row in set (0.00 sec)

這里的1表示true,說明’a’在集合’a,b,c’中。

這里只能查找一個元素是否在對應的集合中。

mysql> select find_in_set('d', 'a,b,c');
+---------------------------+
| find_in_set('d', 'a,b,c') |
+---------------------------+
|                         0 |
+---------------------------+
1 row in set (0.00 sec)mysql> select find_in_set('a,b', 'a,b,c');
+-----------------------------+
| find_in_set('a,b', 'a,b,c') |
+-----------------------------+
|                           0 |
+-----------------------------+
1 row in set (0.00 sec)

當一個要查找的字段位于集合中時,find_in_set函數(shù)會返回其下標(非0),反之返回0。所以我們就可以在集合中篩選出愛好帶有“籃球”的人。

mysql> select * from votes where find_in_set ('籃球', hobby);
+----------+--------+----------------------+
| username | gander | hobby                |
+----------+--------+----------------------+
| 李四     || 籃球                 |
| 趙五     || 籃球,跑步            |
| 趙五     || 籃球,足球,跑步       |
| 小明     || 籃球                 |
| 小明     || 籃球,足球            |
+----------+--------+----------------------+
5 rows in set (0.00 sec)

也可以在集合中篩選出愛好既有“籃球”,又有“足球”人。使用and邏輯與進行篩選:

mysql> select * from votes where find_in_set ('籃球', hobby) and find_in_set('足球', hobby); 
+----------+--------+----------------------+
| username | gander | hobby                |
+----------+--------+----------------------+
| 趙五     || 籃球,足球,跑步       |
| 小明     || 籃球,足球            |
+----------+--------+----------------------+
2 rows in set (0.00 sec)
http://www.risenshineclean.com/news/47740.html

相關(guān)文章:

  • 劉金鵬做網(wǎng)站外鏈工廠
  • 瑋科網(wǎng)站建設人力資源培訓與開發(fā)
  • 個人電腦做網(wǎng)站打不開數(shù)據(jù)庫百度賬號登錄官網(wǎng)
  • 做網(wǎng)站需不需要營業(yè)執(zhí)照seo引擎優(yōu)化是什么
  • 做相冊哪個網(wǎng)站好用嗎長沙seo網(wǎng)站管理
  • 手機端網(wǎng)站思路市場營銷一般在哪上班
  • 品牌策劃ppt電腦優(yōu)化大師哪個好
  • 武漢搭建網(wǎng)站seo短視頻入口
  • 江西網(wǎng)站建設企業(yè)短視頻推廣引流
  • 做網(wǎng)站下載功能競價推廣專員
  • 咋樣做網(wǎng)站視頻競價排名軟件
  • 有了域名后怎樣做網(wǎng)站網(wǎng)站優(yōu)化 seo和sem
  • 申請備案網(wǎng)站首頁網(wǎng)絡營銷網(wǎng)站建設
  • 哪個網(wǎng)站做貨車專業(yè)seo價格查詢公司
  • 通過招聘網(wǎng)站如何做背景調(diào)查2023年6月疫情情況
  • 怎么做網(wǎng)站前端展示型網(wǎng)站有哪些
  • 做網(wǎng)站的具體內(nèi)容蘇州網(wǎng)站制作公司
  • 豐臺青島網(wǎng)站建設百度廣告聯(lián)系方式
  • 長春百度網(wǎng)站快速優(yōu)化東莞seo代理
  • 如何建設提卡網(wǎng)站網(wǎng)站數(shù)據(jù)分析案例
  • 怎么查網(wǎng)站是哪個公司做的百度官網(wǎng)下載電腦版
  • 專業(yè)網(wǎng)站快速排名優(yōu)勢前端seo怎么優(yōu)化
  • 山東省建設銀行網(wǎng)站競價推廣員月掙多少
  • 我男同同性做視頻網(wǎng)站百度信息流廣告怎么投放
  • 電子網(wǎng)站有哪些百度新聞發(fā)布
  • wordpress 類似的博客系統(tǒng)seo合作代理
  • 前端做視頻直播網(wǎng)站百度競價排名怎么靠前
  • 深圳網(wǎng)站建設企軟文案例
  • 煙臺網(wǎng)站制作專業(yè)今日熱點
  • 做啥英文網(wǎng)站賺錢關(guān)鍵詞排名公司