找到關於資料庫的6705 篇文章
725 次瀏覽
藉助 DATEDIFF(expr1, expr2),我們可以查詢兩個指定日期之間的工作日。例如,如果我們想查詢“2017-05-27”和“2017-05-23”之間的工作日,則以下將是 MySQL 查詢:mysql> Select DATEDIFF('2017-05-27','2017-05-23') AS 'Total Business Days'; +----------------------+ | Total Business Days | +----------------------+ | 4 | +----------------------+ 1 row in set (0.00 sec)
98 次瀏覽
眾所周知,MySQL 支援用於參照完整性的外部索引鍵,但不支援 CHECK 約束。但是,我們可以使用觸發器來模擬它們。這可以用下面的例子來說明:示例假設我們有一個名為“car”的表,它可以具有固定的語法註冊號,例如兩個字母、一個短劃線、三個數字、一個短劃線、兩個字母,如下所示:mysql> Create table car2 (number char(9)); Query OK, 0 rows affected (0.32 sec) mysql> Insert into car2 values('AB-235-YZ'); Query OK, 1 row affected (0.10 sec)上述值是有效的,但是…… 閱讀更多
80 次瀏覽
我們可以按如下方式計算日期:mysql> SET @year=2017, @week=15, @day=4; Query OK, 0 rows affected (0.00 sec)上述查詢將分別在“year”、“week”和“day”變數中傳遞值“2017”、“15”、“4”。然後在應用以下查詢中的公式後,我們可以得到日期。mysql> SELECT Str_To_Date( Concat(@year,'-',@week,'-',If(@day=7,0,@day) ), '%Y-%U-%w' ) AS Date; +--------------+ | Date | +--------------+ | 2017-04-13 | +--------------+ 1 row in set (0.00 sec)
75 次瀏覽
眾所周知,MySQL 支援用於參照完整性的外部索引鍵,但不支援 CHECK 約束。但是,我們可以使用觸發器來模擬它們。這可以用下面的例子來說明:示例假設我們有一個名為“car1”的表,它可以具有固定的語法註冊號,例如兩個字母、一個短劃線、三個數字、一個短劃線、兩個字母,如下所示:mysql> Create table car1 (number char(9)); Query OK, 0 rows affected (0.32 sec) mysql> Insert into car1 values('AB-235-YZ'); Query OK, 1 row affected (0.10 sec)上述值是有效的,但是…… 閱讀更多
285 次瀏覽
我們可以按如下方式根據出生日期計算年齡(以年為單位):mysql> SET @dob = '1984-01-17'; Query OK, 0 rows affected (0.00 sec)上述查詢將在“dob”變數中傳遞值“1984-01-17”。然後在應用以下查詢中的公式後,我們可以得到年齡(以年為單位)。mysql> Select Date_format( From_Days( To_Days(Curdate()) - To_Days(@dob) ), '%Y' ) + 0 AS ‘Age in years; +---------------+ | ‘Age in years’| +---------------+ | 33 | +---------------+ 1 row in set (0.00 sec)
273 次瀏覽
啟用 SQL MODE 為 ALLOW_INVALID_DATES 後,MySQL 也將能夠在表中儲存無效日期。以下示例可以幫助理解:mysql> Insert into order1234(ProductName, Quantity, Orderdate) values('B',500,'2015-11-31'); Query OK, 1 row affected (0.06 sec) mysql> Select * from order1234; +-------------+----------+--------------+ | ProductName | Quantity | OrderDate | +-------------+----------+--------------+ | A | 500 | 0000-00-00 | | B | 500 | 2015-11-31 | +-------------+----------+--------------+ 2 rows in set (0.00 sec)我們可以看到 MySQL 也將無效日期插入表中。
367 次瀏覽
MySQL 在遇到超出範圍或無效日期時的響應將取決於 SQL MODE。如果我們啟用了 ALLOW_INVALID_DATES 模式,則 MySQL 將把超出範圍的值轉換為全零(即“0000:00:00 00:00:00”),並將其儲存在表中,而不會產生任何錯誤或警告。例如,我們可以按如下方式更改 SQL MODE,然後插入超出範圍的值:mysql> set sql_mode = 'ALLOW_INVALID_DATES'; Query OK, 0 rows affected (0.00 sec) mysql> Insert into order1234(productname, quantity, orderdate) values('A', 500, '999-05-100'); Query OK, 1 row affected, 1 warning (0.13 sec) mysql> Select * from order1234; ... 閱讀更多
166 次瀏覽
眾所周知,MySQL 支援用於參照完整性的外部索引鍵,但不支援 CHECK 約束。但是,我們可以使用觸發器來模擬它們。這可以用下面的例子來說明:示例假設我們有一個名為“car”的表,它可以具有固定的語法註冊號,例如兩個字母、一個短劃線、三個數字、一個短劃線、兩個字母,如下所示:mysql> Create table car (number char(9)); Query OK, 0 rows affected (0.32 sec) mysql> Insert into car values('AB-235-YZ'); Query OK, 1 row affected (0.10 sec)上述值是有效的,但是…… 閱讀更多
4K+ 次瀏覽
MySQL 允許我們在表中的多個列上新增 FOREIGN KEY 約束。條件是子表中的每個外部索引鍵必須引用不同的父表。示例假設我們有一個表“customer2”,它在欄位“cust_unq_id”上具有主鍵約束,如下所示:mysql> describe customer2; +-------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+-------+ | cust_id | int(11) | YES | | NULL | | | First_name | varchar(20) | ... 閱讀更多
10K+ 次瀏覽
這兩種資料型別都以“YYYY-MM-DD HH:MM:SS”格式儲存資料,並且包含日期和時間。儘管有這些相似之處,但它們具有以下區別:範圍 - Datetime 資料型別支援介於 1000-01-01 00:00:00 和 9999-12-31 23:59:59 之間的日期和時間。但是 timestamp 資料型別支援介於“1970-01-01 00:00:01”和“2038-01-19 08:44:07”之間的日期和時間。大小 - Datetime 需要 5 個位元組,以及用於儲存小數秒資料的額外 3 個位元組。另一方面,timestamp 資料型別需要 4 個位元組,以及用於儲存小數秒資料的額外 3 個位元組…… 閱讀更多
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP