主頁 > 前端設計 > 理論+實驗:MySQL高級SQL陳述句

理論+實驗:MySQL高級SQL陳述句

2020-10-15 18:20:09 前端設計

目錄

  • 一、MySQL進價查詢
      • 1.1 單欄位排序
      • 1.2 多欄位排序
      • 1.3 對結果進行分組-1
      • 1.4 對結果進行分組-2
      • 1.5 對結果進行分組
      • 1.6 設定別名
      • 1.7 通配符
      • 1.8 子查詢
      • 1.9 視圖
      • 1.10 NULL值
      • 1.11 正則運算式
      • 1.12 運算子
        • 1.12.1 算數運算子
        • 1.12.2 比較運算
          • 1.12.2.1 等于運算子
          • 1.12.2.2 不等于運算子
          • 1.12.2.3 大于、大于等于、小于、小于等于運算子
          • 1.12.2.4 IS NULL、IS NOT NULL
          • 1.12.2.5 BETWEEN AND
          • 1.12.2.6 LEAST、GREATEST
          • 1.12.2.7 IN、NOT IN
          • 1.12.2.8 IN、NOT IN
        • 1.12.3 邏輯運算子
          • 1.12.3.1 邏輯非
          • 1.12.3.2 邏輯與
          • 1.12.3.3 邏輯或
          • 1.12.3.4 邏輯異或
        • 1.12.4 位運算子
        • 1.12.5 運算子的優先級
        • 1.12.6 連接查詢
          • 1.12.6.1 內連接
          • 1.12.6.2 左連接
          • 1.12.6.3 右連接
  • 二、MySQL資料庫函式
      • 2.1 資料庫函式
      • 2.2 數學函式
      • 2.3 聚合函式
      • 2.4 字串函式
        • 2.5 日期時間函式

一、MySQL進價查詢

1.1 單欄位排序

■ 使用ORDERBY陳述句來實作排序

■ 排序可針對一個或多個欄位

■ ASC:升序,默認排序方式 【升序是從小到大】

■ DESC:降序 【降序是從大到小】

■ ORDER BY的語法結構

■ ORDER BY后面跟欄位名

SELECT column1, column2,....FROM table_name ORDER BY column1,column2,...ASC|DESC;
mysql> select * from info order by score;
+----+----------+-------+------+
| id | name     | score | addr |
+----+----------+-------+------+
|  3 | oowooo   | 60.00 |      |
|  4 | oowo     | 60.00 |      |
|  2 | lisi     | 70.00 | NULL |
|  5 | wangwu   | 77.00 | NULL |
|  1 | zhangsan | 88.00 | NULL |
+----+----------+-------+------+
5 rows in set (0.00 sec)
mysql> select * from info order by score desc;
+----+----------+-------+------+
| id | name     | score | addr |
+----+----------+-------+------+
|  1 | zhangsan | 88.00 | NULL |
|  5 | wangwu   | 77.00 | NULL |
|  2 | lisi     | 70.00 | NULL |
|  3 | oowooo   | 60.00 |      |
|  4 | oowo     | 60.00 |      |
+----+----------+-------+------+
5 rows in set (0.00 sec)

1.2 多欄位排序

mysql> select id,hobby from info where 2=2 order by hobby desc,id desc;
+----+-------+
| id | hobby |
+----+-------+
|  5 |     3 |
|  4 |     2 |
|  3 |     2 |
|  2 |     2 |
|  1 |     1 |
+----+-------+
5 rows in set (0.00 sec)

###只有第一個欄位出現和第二欄位相同的情況下,第二欄位才有意義###

1.3 對結果進行分組-1

■ 使用GROUP BY陳述句來實作分組

■ 通常結合聚合函式一起使用

■ 可以按一個或多個欄位對結果進行分組

■ GROUP BY的語法結構

SELECT column_name, aggregate_function(column_name)FROM table_name WHERE column_name operator value GROUP BY column_name;

1.4 對結果進行分組-2

■ GROUP BY分組

###對info表的name進行統計在hobby欄位顯示統計個數###
mysql> select count(name),hobby from info group by hobby;
+-------------+-------+
| count(name) | hobby |
+-------------+-------+
|           1 |     1 |
|           3 |     2 |
|           1 |     3 |
+-------------+-------+
3 rows in set (0.00 sec)

■ GROUP BY結合ORDER BY

mysql> select count(name),hobby from info group by hobby order by count(name) desc;
+-------------+-------+
| count(name) | hobby |
+-------------+-------+
|           3 |     2 |
|           1 |     1 |
|           1 |     3 |
+-------------+-------+
3 rows in set (0.00 sec)

1.5 對結果進行分組

■ 只回傳SELECT查詢結果的第一行或前幾行

■ 使用LIMIT陳述句限制條目

■ LIMIT語法結構

SELECT column1,column2,...FROM table_name LIMIT[offset,] number;
number:回傳記錄行的最大數目
[offset,]:位置偏移量,從0開始
###查看前三行###
mysql> select * from info limit 3;
+----+----------+-------+------+-------+
| id | name     | score | addr | hobby |
+----+----------+-------+------+-------+
|  1 | zhangsan | 88.00 | NULL |     1 |
|  2 | lisi     | 70.00 | NULL |     2 |
|  3 | oowooo   | 60.00 |      |     2 |
+----+----------+-------+------+-------+
3 rows in set (0.00 sec)
###查看3-5行###
mysql> select * from info limit 2,3;
+----+--------+-------+------+-------+
| id | name   | score | addr | hobby |
+----+--------+-------+------+-------+
|  3 | oowooo | 60.00 |      |     2 |
|  4 | oowo   | 60.00 |      |     2 |
|  5 | wangwu | 77.00 | NULL |     3 |
+----+--------+-------+------+-------+
3 rows in set (0.00 sec)

1.6 設定別名

■ 使用AS陳述句設定別名,關鍵字AS可省略
■ 設定別名時,保證不能與庫中其他表或欄位名稱沖突
■ 別名的語法結構

SELECT column_name AS alias_name FROM table_name;
SELECT column_name(s)FROM table_name ASalias_name;

■ AS的用法

###給name和score設定別名###
mysql> select name as 姓名,score as 成績 from info;
+----------+--------+
| 姓名     | 成績   |
+----------+--------+
| zhangsan |  88.00 |
| lisi     |  70.00 |
| oowooo   |  60.00 |
| oowo     |  60.00 |
| wangwu   |  77.00 |
+----------+--------+
5 rows in set (0.00 sec)
###不加as語法也可以設定別名###
mysql> select name  姓名,score  成績 from info;
+----------+--------+
| 姓名     | 成績   |
+----------+--------+
| zhangsan |  88.00 |
| lisi     |  70.00 |
| oowooo   |  60.00 |
| oowo     |  60.00 |
| wangwu   |  77.00 |
+----------+--------+
5 rows in set (0.00 sec)
###給info表設定別名i,然后在name和score前面也要加i.使用,不加也可以使用###
mysql> select i.name as 姓名,i.score as 成績 from info as i;
+----------+--------+
| 姓名     | 成績   |
+----------+--------+
| zhangsan |  88.00 |
| lisi     |  70.00 |
| oowooo   |  60.00 |
| oowo     |  60.00 |
| wangwu   |  77.00 |
+----------+--------+
5 rows in set (0.00 sec)
###創建tmm新表,將info表的 score欄位>=80的資料放在新表tmm上###
mysql> create table tmm as select * from info where score >= 80;
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

注意:雖然把資料型別和表結構導過去了,但是表的約束沒有,像主鍵什么的都沒有匯入過去!!!

1.7 通配符

■ 用于替換字串的部分字符

■ 通常配合LIKE一起使用,并協同WHERE完成查詢

■ 常用的通配符

● %表示零個、一個或多個

● _表示單個字符

###查詢z開頭的,%表示零個、一個或多個###
mysql> select * from info where name like 'z%';
+----+----------+-------+------+-------+
| id | name     | score | addr | hobby |
+----+----------+-------+------+-------+
|  1 | zhangsan | 88.00 | NULL |     1 |
+----+----------+-------+------+-------+
1 row in set (0.00 sec)
###_下劃線代表單個字符###
mysql> select * from info where name like '_i_i';
+----+------+-------+------+-------+
| id | name | score | addr | hobby |
+----+------+-------+------+-------+
|  2 | lisi | 70.00 | NULL |     2 |
+----+------+-------+------+-------+
1 row in set (0.00 sec)

1.8 子查詢

■ 也稱作內查詢或者嵌套查詢
■ 先于主查詢被執行,其結果將作為外層主查詢的條件
■ 在增刪改查中都可以使用子查詢
■ 支持多層嵌套
■ IN陳述句是用來判斷某個值是否在給定的結果集中

###先建一個num表,里面只有id,在id欄位在添加一些資料###
mysql> select * from num;
+------+
| id   |
+------+
|    1 |
|    3 |
|    5 |
|    7 |
+------+
4 rows in set (0.00 sec)
###然后根據剛剛的info表和num表進行多表相連,按照num表的1、3、5、7顯示出info表的1、3、5、7行資料###
###后面輸出的結果賦予了前面的值###
mysql> select * from info where id in(select id from num);
+----+----------+-------+------+-------+
| id | name     | score | addr | hobby |
+----+----------+-------+------+-------+
|  1 | zhangsan | 88.00 | NULL |     1 |
|  3 | oowooo   | 60.00 |      |     2 |
|  5 | wangwu   | 77.00 | NULL |     3 |
+----+----------+-------+------+-------+
3 rows in set (0.00 sec)
###多層嵌套,從內部括號到外面匹配###
mysql> select * from info where id in(select id from num where name in(select name from num));
+----+----------+-------+------+-------+
| id | name     | score | addr | hobby |
+----+----------+-------+------+-------+
|  1 | zhangsan | 88.00 | NULL |     1 |
|  3 | oowooo   | 60.00 |      |     2 |
|  5 | wangwu   | 77.00 | NULL |     3 |
+----+----------+-------+------+-------+
3 rows in set (0.00 sec)

1.9 視圖

■ 資料庫中的虛擬表,這張虛擬表中不包含任何資料,只是做了資料映射;

###創建視圖v_score表###
mysql> create view v_score as select * from info where score >=80;
###查看一下剛剛創建的視圖###
mysql> select * from v_score;
+----+----------+-------+
| id | name     | score |
+----+----------+-------+
|  1 | zhangsan | 88.00 |
+----+----------+-------+
1 row in set (0.00 sec)
mysql> show table status;  ###查看視圖表的資訊

在這里插入圖片描述

###這種被稱為臨時結果集,放在記憶體當中,重啟就會沒有###
mysql> select id,name from info;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | lisi     |
|  3 | oowooo   |
|  4 | oowo     |
|  5 | wangwu   |
+----+----------+
5 rows in set (0.00 sec)
###要定義別名,比如下圖我定義了別名a,就可以使用了###
mysql> select a.id from (select id,name from info) a;
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
|  4 |
|  5 |
+----+
5 rows in set (0.00 sec)
###count()代表統計,exists代表真或假###
mysql> select count(*) from info where exists (select * from info where name='zhangsan');
+----------+
| count(*) |
+----------+
|        5 |
+----------+
1 row in set (0.00 sec)

1.10 NULL值

■ 表示缺失的值
■ 與數字0或者空白(spaces)是不同的
■ 使用IS NULL或IS NOT NULL進行判斷
■ NULL值和空值的區別
● 空值長度為0,不占空間;NULL值的長度為NULL,占用空間
● IS NULL無法判斷空值
● 空值使用“="或者“<>"來處理
● COUNT()計算時,NULL會忽略,空值會加入計算

###查詢info表的addr欄位為null值的記錄###
mysql> select * from info where addr is null;
+----+----------+-------+------+-------+
| id | name     | score | addr | hobby |
+----+----------+-------+------+-------+
|  1 | zhangsan | 88.00 | NULL |     1 |
|  2 | lisi     | 70.00 | NULL |     2 |
|  5 | wangwu   | 77.00 | NULL |     3 |
+----+----------+-------+------+-------+
3 rows in set (0.00 sec)

1.11 正則運算式

■ 根據指定的匹配模式匹配記錄中符合要求的特殊字符
■ 使用REGEXP關鍵字指定匹配模式
■ 常用匹配模式

匹配模式描述實體
^匹配文本的開始字符‘^bd’ 匹配以 bd 開頭的字串
$匹配文本的結束字符‘qn$’ 匹配以 qn 結尾的字串
.匹配任何單個字符‘s.t’ 匹配任何s 和t 之間有一個字符的字串
*匹配零個或多個在它前面的字符‘fo*t’ 匹配 t 前面有任意個 o
+匹配前面的字符 1 次或多次‘hom+’ 匹配以 ho 開頭,后面至少一個m 的字串
字串匹配包含指定的字串‘clo’ 匹配含有 clo 的字串
p1p2匹配 p1 或 p2
[…]匹配字符集合中的任意一個字符‘[abc]’ 匹配 a 或者 b 或者 c
[^…]匹配不在括號中的任何字符‘[^ab]’ 匹配不包含 a 或者 b 的字串
{n}匹配前面的字串 n 次‘g{2}’ 匹配含有 2 個 g 的字串
{n,m}匹配前面的字串至少 n 次,至多m 次‘f{1,3}’ 匹配 f 最少 1 次,最多 3 次
  • 查詢以z開頭的
mysql> select * from info where name regexp '^z';
+----+----------+-------+------+-------+
| id | name     | score | addr | hobby |
+----+----------+-------+------+-------+
|  1 | zhangsan | 88.00 | NULL |     1 |
+----+----------+-------+------+-------+
1 row in set (0.00 sec)
  • 查詢以wu為結尾的
mysql> select * from info where name regexp 'wu$';
+----+--------+-------+------+-------+
| id | name   | score | addr | hobby |
+----+--------+-------+------+-------+
|  5 | wangwu | 77.00 | NULL |     3 |
+----+--------+-------+------+-------+
1 row in set (0.00 sec)
  • .代表任意字符,查詢zhang.an的記錄
mysql> select * from info where name regexp 'zhang.an';
+----+----------+-------+------+-------+
| id | name     | score | addr | hobby |
+----+----------+-------+------+-------+
|  1 | zhangsan | 88.00 | NULL |     1 |
+----+----------+-------+------+-------+
1 row in set (0.00 sec)
  • 查詢oo任意個前面的字符,零次或多次
mysql> select * from info where name regexp 'oo*';
+----+--------+-------+------+-------+
| id | name   | score | addr | hobby |
+----+--------+-------+------+-------+
|  3 | oowooo | 60.00 |      |     2 |
|  4 | oowo   | 60.00 |      |     2 |
+----+--------+-------+------+-------+
2 rows in set (0.00 sec)
  • 查詢ow前面字符至少一次
mysql> select * from info where name regexp 'ow+';
+----+--------+-------+------+-------+
| id | name   | score | addr | hobby |
+----+--------+-------+------+-------+
|  3 | oowooo | 60.00 |      |     2 |
|  4 | oowo   | 60.00 |      |     2 |
+----+--------+-------+------+-------+
2 rows in set (0.00 sec)
  • 查詢z開頭的
mysql> select * from info where name regexp '^[z]';
+----+----------+-------+------+-------+
| id | name     | score | addr | hobby |
+----+----------+-------+------+-------+
|  1 | zhangsan | 88.00 | NULL |     1 |
+----+----------+-------+------+-------+
1 row in set (0.00 sec)
  • 查詢不是z開頭的
mysql> select * from info where name regexp '^[^z]';
+----+--------+-------+------+-------+
| id | name   | score | addr | hobby |
+----+--------+-------+------+-------+
|  2 | lisi   | 70.00 | NULL |     2 |
|  3 | oowooo | 60.00 |      |     2 |
|  4 | oowo   | 60.00 |      |     2 |
|  5 | wangwu | 77.00 | NULL |     3 |
+----+--------+-------+------+-------+
4 rows in set (0.01 sec)
  • 匹配兩個o
mysql> select * from info where name regexp 'oo{2}';
+----+--------+-------+------+-------+
| id | name   | score | addr | hobby |
+----+--------+-------+------+-------+
|  3 | oowooo | 60.00 |      |     2 |
+----+--------+-------+------+-------+
1 row in set (0.00 sec)

1.12 運算子

■ 算數運算子
MySQL 的運算子用于對記錄中的欄位值進行運算,MySQL 的運算子共有四種,分別是:算術運算子、比較運算子、邏輯運算子和位運算子,下面分別對這四種運算子進行說明,

1.12.1 算數運算子

  • MYSQL支持使用的運算子號
運算子描述
+加法
-減法
*乘法
/除法
%取余數
mysql> select 2+3,3-2,3*4,8/2,9%2;
+-----+-----+-----+--------+------+
| 2+3 | 3-2 | 3*4 | 8/2    | 9%2  |
+-----+-----+-----+--------+------+
|   5 |   1 |  12 | 4.0000 |    1 |
+-----+-----+-----+--------+------+
1 row in set (0.00 sec)

1.12.2 比較運算

  • 常用比較運算子
    運算子		| 描述	|運算子|	描述
1.12.2.1 等于運算子

等號(=)是用來判斷數字、字串和運算式是否相等的,如果相等則回傳 1,如果不相等則回傳 0,如果比較的兩者有一個值是 NULL,則比較的結果就是 NULL,其中字符的比較是根據 ASCII 碼來判斷的,如果 ASCII 碼相等,則表示兩個字符相同;如果 ASCII 碼不相等,則表示兩個字符不相同,例如,等于運算子在數字、字串和運算式上的使用,具 體操作如下所示.

mysql> select 2=4,2='2','e'='e''r'=NULL;
+-----+-------+-----------------+
| 2=4 | 2='2' | 'e'='e''r'=NULL |
+-----+-------+-----------------+
|   0 |     1 |            NULL |
+-----+-------+-----------------+
1 row in set (0.00 sec)
1.12.2.2 不等于運算子

不等于號有兩種寫法,分別是<>或者!=,用于針對數字、字串和運算式不相等的比較,如果不相等則回傳 1,如果相等則回傳 0,這點正好跟等于的回傳值相反,需要注意的是不等于運算子不能用于判斷 NULL,

mysql> mysqlt 'shuai'<>'chou',13!=17,NULL=NULL;
+-----------------+--------+-----------+
| 'shuai'<>'chou' | 13!=17 | NULL=NULL |
+-----------------+--------+-----------+
|               1 |      1 |      NULL |
+-----------------+--------+-----------+
1 row in set (0.00 sec)
  • 從下面兩組字串比較可知,字串比的是字符的個數和順序
mysql> select 'abc'='abc';
+-------------+
| 'abc'='abc' |
+-------------+
|           1 |
+-------------+
1 row in set (0.00 sec)

mysql> select 'abc'='bca';
+-------------+
| 'abc'='bca' |
+-------------+
|           0 |
+-------------+
1 row in set (0.00 sec)
1.12.2.3 大于、大于等于、小于、小于等于運算子
  • 大于(>)運算子用來判斷左側的運算元是否大于右側的運算元,若大于回傳 1,否則回傳 0,同樣不能用于判斷 NULL,

  • 小于(<)運算子用來判斷左側的運算元是否小于右側的運算元,若小于回傳 1,否則回傳 0,同樣不能用于判斷 NULL,

  • 大于等于(>=)判斷左側的運算元是否大于等于右側的運算元,若大于等于回傳 1,否則回傳 0,不能用于判斷 NULL,

  • 小于等于(<=)判斷左側的運算元是否小于等于右側的運算元,若小于等于回傳 1,否則回傳 0,不能用于判斷 NULL,

  • 數值比較會自動轉換ASCII表的數值

我們需要大體記住幾個常用Dec(十進制)的就行:

0是48

大寫A是65 B是66 依次往后推算

小寫a是97 b是9

mysql> mysql> select 5>3,'a'>'b',3>=4,(5+6)>=(3+2),4.4<3,1<2,'x'<='y',5<=5.5,'u'>=NULL;
+-----+---------+------+--------------+-------+-----+----------+--------+-----------+
| 5>3 | 'a'>'b' | 3>=4 | (5+6)>=(3+2) | 4.4<3 | 1<2 | 'x'<='y' | 5<=5.5 | 'u'>=NULL |
+-----+---------+------+--------------+-------+-----+----------+--------+-----------+
|   1 |       0 |    0 |            1 |     0 |   1 |        1 |      1 |      NULL |
+-----+---------+------+--------------+-------+-----+----------+--------+-----------+
1 row in set (0.00 sec)
  • 一個有趣的發現,比較是或的關系,一旦開頭的b比a大,后面就不在比較
mysql> select 'abc'<'baa';
+-------------+
| 'abc'<'baa' |
+-------------+
|           1 |
+-------------+
1 row in set (0.00 sec)
1.12.2.4 IS NULL、IS NOT NULL
  • SNULL 判斷一個值是否為 NULL,如果為 NULL 回傳 1,否則回傳 0,
  • IS NOT NULL 判斷一個值是否不為 NULL,如果不為 NULL 回傳 1,否則回傳 0
mysql> select 2 is NULL,'d' is not NULL,NULL IS NULL;
+-----------+-----------------+--------------+
| 2 is NULL | 'd' is not NULL | NULL IS NULL |
+-----------+-----------------+--------------+
|         0 |               1 |            1 |
+-----------+-----------------+--------------+
1 row in set (0.00 sec)
1.12.2.5 BETWEEN AND
  • BETWEEN AND 比較運算通常用于判斷一個值是否落在某兩個值之間,例如,判斷某數字是否在另外兩個數字之間,也可以判斷某英文字母是否在另外兩個字母之間,
mysql> select 5 between 2 and 8,7 between 5 and 10,'d' between 'a' and 'z';
+-------------------+--------------------+-------------------------+
| 5 between 2 and 8 | 7 between 5 and 10 | 'd' between 'a' and 'z' |
+-------------------+--------------------+-------------------------+
|                 1 |                  1 |                       1 |
+-------------------+--------------------+-------------------------+
1 row in set (0.00 sec)

數字能否與字符比較?
mysql> select 5 between 2 and 8,7 between 5 and 10,8 between 'a' and 'z'; 
+-------------------+--------------------+-----------------------+
| 5 between 2 and 8 | 7 between 5 and 10 | 8 between 'a' and 'z' |
+-------------------+--------------------+-----------------------+
|                 1 |                  1 |                     0 |
+-------------------+--------------------+-----------------------+
1 row in set, 2 warnings (0.00 sec)
#數字不能與字符比較的,而且between是包含頭和尾的  
1.12.2.6 LEAST、GREATEST
  • LEAST:當有兩個或者多個引數時,回傳其中的最小值,如果其中一個值為 NULL,則回傳結果就為 NULL,

  • GREATEST:當有兩個或者多個引數時,回傳其中的最大值,如果其中一個值為 NULL, 則回傳結果就為 NULL,

具體操作如下

mysql> select least(10,20,30),greatest(10,20,30);
+-----------------+--------------------+
| least(10,20,30) | greatest(10,20,30) |
+-----------------+--------------------+
|              10 |                 30 |
+-----------------+--------------------+
1 row in set (0.00 sec)
1.12.2.7 IN、NOT IN
  • IN 判斷一個值是否在對應的串列中,如果是回傳 1,否則回傳 0,

  • NOT IN 判斷一個值是否不在對應的串列中,如果不是回傳 1,否則回傳 0,

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

從以上結果可以看出,IN 和 NOT IN 的回傳值正好相反,

1.12.2.8 IN、NOT IN
  • LIKE 用來匹配字串,如果匹配成功則回傳 1,反之回傳 0,LIKE 支持兩種通配符:’%’ 用于匹配任意數目的字符,而’_’只能匹配一個字符,NOT LIKE 正好跟 LIKE 相反,如果沒有匹配成功則回傳 1,反之回傳 0,
mysql> select 'abcd' like '_bcd','abcd' like '%d','abcd' not like '%cd';
+--------------------+------------------+-----------------------+
| 'abcd' like '_bcd' | 'abcd' like '%d' | 'abcd' not like '%cd' |
+--------------------+------------------+-----------------------+
|                  1 |                1 |                     0 |
+--------------------+------------------+-----------------------+
1 row in set (0.00 sec)

1.12.3 邏輯運算子

  • 邏輯運算子又被稱為布爾運算子,通常用來判斷運算式的真偽,如果為真回傳 1,否則回傳 0,真和假也可以用 TRUE 和 FALSE 表示,

  • 又被稱布林值運算子

  • 用來判斷運算式的真偽

常用的邏輯運算子號

運算子描述
NOT 或 !邏輯非
AND 或 &&邏輯與
OR邏輯或
XOR邏輯異或

在這里插入圖片描述

1.12.3.1 邏輯非
  • 邏輯運算子中最簡單的運算子就是邏輯非,邏輯非使用 NOT 或!表示,邏輯非將跟在它后面的邏輯測驗取反,把真變為假,把假變為真,如果 NOT 后面的運算元為 0 時,所得值為 1;如果運算元為非 0 時,所得值為 0;如果運算元為 NULL 時,所得值為 NULL,例如,對非 0 值和 0 值分別作邏輯非運算,具體操作如下所示,
mysql> select not 0,!2,!(4-4);
+-------+----+--------+
| not 0 | !2 | !(4-4) |
+-------+----+--------+
|     1 |  0 |      1 |
+-------+----+--------+
1 row in set (0.00 sec)
1.12.3.2 邏輯與
  • 邏輯與通常用于判斷兩個值或多個值的有效性,如果所有值都是真回傳 1,否則回傳 0,邏輯與使用 AND 或者&&表示,例如,對非 0 值、0 值和 NULL 值分別作邏輯與運算,具體操作如下所示,
mysql> select 2&&3,0&&1,0&&null,1 and null;
+------+------+---------+------------+
| 2&&3 | 0&&1 | 0&&null | 1 and null |
+------+------+---------+------------+
|    1 |    0 |       0 |       NULL |
+------+------+---------+------------+
1 row in set (0.01 sec)
1.12.3.3 邏輯或
  • 邏輯與通常用于判斷兩個值或多個值的有效性,如果所有值都是真回傳 1,否則回傳 0,邏輯與使用 AND 或者&&表示,例如,對非 0 值、0 值和 NULL 值分別作邏輯與運算,
    一旦有個非0值,出來就是非0值
  • 邏輯或其實還可以用 ||,但是還是建議用or,因為使用||會出現問題,輸出不到你想要的結果
mysql> select 2 or 3,2 or 0;
+--------+--------+
| 2 or 3 | 2 or 0 |
+--------+--------+
|      1 |      1 |
+--------+--------+
1 row in set (0.00 sec)
1.12.3.4 邏輯異或
  • 兩個非 NULL 值的運算元,如果兩者都是 0 或者都是非 0,則回傳 0;如果一個為 0, 另一個為非 0,則回傳結果為 1;當任意一個值為 NULL 時,回傳值為 NULL,例如,對非0 值、0 值和 NULL 值分別作邏輯異或運算,具體操作如下所示,
mysql> select 0 xor 3,0 xor 0,0 xor null,1 xor null;
+---------+---------+------------+------------+
| 0 xor 3 | 0 xor 0 | 0 xor null | 1 xor null |
+---------+---------+------------+------------+
|       1 |       0 |       NULL |       NULL |
+---------+---------+------------+------------+
1 row in set (0.00 sec)

可以看出 有null結果就會為null

1.12.4 位運算子

  • 位運算子實際上是對二進制數進行計算的運算子,MySQL 內位運算會先將運算元變成二進制格式,然后進行位運算,最后在將計算結果從二進制變回到十進制格式,方便用戶查看,
運算子描述
&按位與
I按位或
~按位取反
^按位異或
<<按位左移
>>按位右移

示例:對數字進行按位與、或和取反運算

mysql> select 10&15,10|15,10^15,5 &~1;
+-------+-------+-------+-------+
| 10&15 | 10|15 | 10^15 | 5 &~1 |
+-------+-------+-------+-------+
|    10 |    15 |     5 |     4 |
+-------+-------+-------+-------+
1 row in set (0.00 sec)

在這里插入圖片描述

  • 對數字進行左移位運算,向左移動位數,空缺處補0
mysql> select 1<<2;
+------+
| 1<<2 |
+------+
|    4 |
+------+
1 row in set (0.00 sec)

轉換成二進制進行運算
在這里插入圖片描述

  • 對數字進行右移位運算,向右移動位數,多余的位數直接洗掉
mysql> select 15>>2;
+-------+
| 15>>2 |
+-------+
|     3 |
+-------+
1 row in set (0.00 sec)

轉換成二進制進行運算
在這里插入圖片描述

1.12.5 運算子的優先級

  • 以上不管哪種運算子,在使用程序中都有優先級問題,運算子的優先級決定了不同的運 算符在計算程序中的先后順序,級別高的運算子會先進行計算,如果運算子的級別相同, MySQL 會按照順序從左到右依次進行計算,如果不確定所使用的運算子的優先級,可以使用()改變優先級,
優先級運算子優優先級運算子
18I
2~9=,<=>,>=,>,<=,<,<>,!=,IS,LIKE,REGEXP,IN
3^10BETWEEN,CASE,WHEN,THEN,ELSE
4* , /(DIV), %(MOD)11NOT
5+,-12&&,AND
6>>,<<13II,OR,XOR
7&14:=

1.12.6 連接查詢

  • MySQL 的連接查詢,通常都是將來自兩個或多個表的行結合起來,基于這些表之間的共同欄位,進行資料的拼接,首先,要確定一個主表作為結果集,然后將其他表的行有選擇 性的連接到選定的主表結果集上,使用較多的連接查詢包括:內連接、左連接和右連接,
1.12.6.1 內連接

■ 兩張或多張表中同時符合某種條件的資料記錄組合
■ FROM子句中使用INNER JOIN關鍵字連接多張表,并使用ON設定連接條件
■ 是系統默認的表連接方式,可以省略INNER關鍵字
■ 多表支持連續使用INNER JOIN,建議不超過三個表
■ 語法結構
■ 實作原理,下圖所示:
在這里插入圖片描述

mysql> select info.id,info.name from info inner join num on info.id=num.id;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  3 | wangwu   |
+----+----------+
2 rows in set (0.00 sec)
1.12.6.2 左連接

■ 也被稱為左外連接
■ 在FROM子句中使用LEFT JOIN關鍵字來表示
■ 匹配左表中所有及右表中符合條件的行
■ 實作原理,下圖所示:
在這里插入圖片描述

mysql> select info.id,info.name,Hub.name from info left join Hub on info.hobby=Hub.id;
+----+----------+--------------+
| id | name     | name         |
+----+----------+--------------+
|  1 | zhangsan | 云計算       |
|  3 | wangwu   | 大資料       |
|  2 | lisi     | 人工智能     |
+----+----------+--------------+
3 rows in set (0.00 sec)
1.12.6.3 右連接

■ 也被稱為右外連接
■ 在FROM子句中使用RIGHT JOIN 關鍵字來表示
■ 匹配右表中所有行及左表中符合條件的行
■ 實作原理,下圖所示
在這里插入圖片描述

mysql> select info.id,info.name,Hub.name from info right join Hub on info.hobby=Hub.id;
+------+----------+--------------+
| id   | name     | name         |
+------+----------+--------------+
|    1 | zhangsan | 云計算       |
|    2 | lisi     | 人工智能     |
|    3 | wangwu   | 大資料       |
+------+----------+--------------+
3 rows in set (0.00 sec)

二、MySQL資料庫函式

2.1 資料庫函式

■ MySQL提供了實作各種功能的函式
■ 常用的函式分類

  • 數學函式
  • 聚合函式
  • 字串函式
  • 日期時間函式

2.2 數學函式

■ 常用的數學函式

  • abs(x)回傳x的絕對值
  • rand() 回傳0到1的亂數
  • mod(x, y) 回傳x除以y以后的余數
  • power(x, y)回傳x的y次方
  • round(x) 回傳離x最近的整數
  • round(x, y)保留x的y位小數四舍五入后的值
  • sqrt(x) 回傳x的平方根
  • truncate(x, y) 回傳數字x截斷為y位小數的值
  • ceil(x) 回傳大于或等于x的最小整數
  • floor(x) 回傳小于或等于x的最大整數
  • greatest(x 1, x 2…) 回傳集合中最大的值
  • least(x 1, x 2…) 回傳集合中最小的值

實體操作:

  • abs(x) 回傳x的絕對值
mysql> select abs(-10);
+----------+
| abs(-10) |
+----------+
|       10 |
+----------+
1 row in set (0.00 sec)
  • rand() 回傳0到1的亂數
mysql> select rand();
+----------------------+
| rand()               |
+----------------------+
| 0.012290180672230368 |
+----------------------+
1 row in set (0.00 sec)
  • mod(x,y) 回傳x除以y以后的余數
mysql> select mod (7,2);
+-----------+
| mod (7,2) |
+-----------+
|         1 |
+-----------+
1 row in set (0.00 sec)
  • power(x,y)回傳x的y次方
mysql> select power(2,3);
+------------+
| power(2,3) |
+------------+
|          8 |
+------------+
1 row in set (0.00 sec)
  • round(x) 回傳離x最近的整數
mysql> select round(6);
+----------+
| round(6) |
+----------+
|        6 |
+----------+
1 row in set (0.00 sec)
  • round(x,y) 保留x的y位小數四舍五入后的值
mysql> select round(1.49,1);
+---------------+
| round(1.49,1) |
+---------------+
|           1.5 |
+---------------+
1 row in set (0.00 sec)
  • sqrt(x) 回傳x的平方根
mysql> select sqrt(9);
+---------+
| sqrt(9) |
+---------+
|       3 |
+---------+
1 row in set (0.00 sec)
  • truncate(x,y) 返回數字x截斷為y位小數的值
mysql> select truncate(1.449,2);
+-------------------+
| truncate(1.449,2) |
+-------------------+
|              1.44 |
+-------------------+
1 row in set (0.00 sec)
  • ceil(x)回傳大于或等于x的最小整數
  • floor(x) 回傳小于或等于x的最大整數
mysql> select ceil(1.1),floor(1.1);
+-----------+------------+
| ceil(1.1) | floor(1.1) |
+-----------+------------+
|         2 |          1 |
+-----------+------------+
1 row in set (0.00 sec)
  • greatest(x1,x2…) 回傳集合中最大的值
  • least(x1,x2…) 回傳集合中最小的值
mysql> select greatest(1,2,3),least(1,2,3);
+-----------------+--------------+
| greatest(1,2,3) | least(1,2,3) |
+-----------------+--------------+
|               3 |            1 |
+-----------------+--------------+
1 row in set (0.00 sec)

2.3 聚合函式

■ 對表中資料記錄進行集中概述而設計的一類函式
■ 常用的聚合函式

  • avg() 回傳指定列的平均值
  • count() 回傳指定列中非NULL值的個數
  • min() 回傳指定列的最小值
  • max() 回傳指定列的最大值
  • sum() 回傳指定列的所有值之和
    操作實體:
  • avg() 回傳指定列的平均值
mysql> select avg(score) from info;
+------------+
| avg(score) |
+------------+
|  80.333333 |
+------------+
1 row in set (0.01 sec)
  • count() 回傳指定列中非NULL值的個數
mysql> select count(3);
+----------+
| count(3) |
+----------+
|        1 |
+----------+
1 row in set (0.00 sec)
  • min() 回傳指定列的最小值
mysql> select min(score) from info;
+------------+
| min(score) |
+------------+
|      70.00 |
+------------+
1 row in set (0.00 sec)
  • max() 回傳指定列的最大值
mysql> select max(score) from info;
+------------+
| max(score) |
+------------+
|      88.00 |
+------------+
1 row in set (0.00 sec)
  • sum() 回傳指定列的所有值之和
mysql> select sum(score) from info;
+------------+
| sum(score) |
+------------+
|     241.00 |
+------------+
1 row in set (0.00 sec)

2.4 字串函式

■ 常用的字串函式

  • length(x) 回傳字串x的長度
  • trim() 回傳去除指定格式的值
  • concat(x, y) 將提供的引數x和y拼接成一個字串
  • upper(x) 將字串x的所有字母變成大寫字母
  • lower(x) 將字串x的所有字母變成小寫字母
  • left(x, y) 回傳字串x的前y個字符
  • right(x, y) 回傳字串x的后y個字符
  • repeat(x, y) 將字串x重復y次
  • space(x) 回傳x個空格
  • replace(x, y, z) 將字串z替代字串x中的字串y
  • strcmp(x, y) 比較x和y, 回傳的值可以為-1, 0, 1
  • substring(x, y, z) 獲取從字串x中的第y個位置開始長度為z的字串
  • reverse(x)將字串x反轉

操作實體:

  • length(x) 回傳字串x的長度
mysql> select length('abc');
+---------------+
| length('abc') |
+---------------+
|             3 |
+---------------+
1 row in set (0.00 sec)
  • trim() 回傳去除指定格式的值
mysql> select length(trim(' a bc '));
+------------------------+
| length(trim(' a bc ')) |
+------------------------+
|                      4 |
+------------------------+
1 row in set (0.00 sec)

由上實驗可知,只能去掉頭尾空格,字符中間的空格不會去掉

  • concat(x, y) 將提供的引數x和y拼接成一個字串
mysql> select length(concat('abc','de f'));
+------------------------------+
| length(concat('abc','de f')) |
+------------------------------+
|                            7 |
+------------------------------+
1 row in set (0.00 sec)

由上實驗可知,空格也計算進去了

  • upper(x) 將字串x的所有字母變成大寫字母
  • lower(x) 將字串x的所有字母變成小寫字母
mysql> select upper('abc'),lower('ABC');
+--------------+--------------+
| upper('abc') | lower('ABC') |
+--------------+--------------+
| ABC          | abc          |
+--------------+--------------+
1 row in set (0.01 sec)
  • left(x, y) 回傳字串x的前y個字符,也就是從左數三個
  • right(x, y) 回傳字串x的后y個字符,也就是從右數兩個
mysql> select left('abcdefg',3),right('abcdefg',2);
+-------------------+--------------------+
| left('abcdefg',3) | right('abcdefg',2) |
+-------------------+--------------------+
| abc               | fg                 |
+-------------------+--------------------+
1 row in set (0.00 sec)
  • repeat(x, y) 將字串x重復y次
mysql> select repeat('abc',3);
+-----------------+
| repeat('abc',3) |
+-----------------+
| abcabcabc       |
+-----------------+
1 row in set (0.00 sec)
  • space(x) 回傳x個空格
mysql> select length(concat('abc',space(3),'abc'));
+--------------------------------------+
| length(concat('abc',space(3),'abc')) |
+--------------------------------------+
|                                    9 |
+--------------------------------------+
1 row in set (0.00 sec)
mysql> select concat('abc',space(3),'abc');
+------------------------------+
| concat('abc',space(3),'abc') |
+------------------------------+
| abc   abc                    |
+------------------------------+
1 row in set (0.00 sec)
  • replace(x, y, z) 將字串z替代字串x中的字串y
###把bc替換成12###
mysql> select replace('abc','bc','12');
+--------------------------+
| replace('abc','bc','12') |
+--------------------------+
| a12                      |
+--------------------------+
1 row in set (0.00 sec)
 ```bash
- strcmp(x, y) 比較x和y, 回傳的值可以為-1, 0, 1
 ```bash
mysql> select strcmp(5,5);
+-------------+
| strcmp(5,5) |
+-------------+
|           0 |
+-------------+
1 row in set (0.00 sec)
mysql> select strcmp(6,5);
+-------------+
| strcmp(6,5) |
+-------------+
|           1 |
+-------------+
1 row in set (0.00 sec)
  • substring(x, y, z) 獲取從字串x中的第y個位置開始長度為z的字串
  ###截取從左到右第三個字符開始的三個字符###
mysql> select substring('abcdefg',3,3);
+--------------------------+
| substring('abcdefg',3,3) |
+--------------------------+
| cde                      |
+--------------------------+
1 row in set (0.00 sec)
  • reverse(x)將字串x反轉
###數值倒過來###
mysql> select reverse('abc');
+----------------+
| reverse('abc') |
+----------------+
| cba            |
+----------------+
1 row in set (0.00 sec)

2.5 日期時間函式

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/172914.html

標籤:其他

上一篇:Cannot create PoolableConnectionFactory (ORA-28040: No matching authentication protocol

下一篇:Oracle資料庫系列之基礎篇1

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more