找到 4219 篇文章 關於 MySQLi
79 次檢視
我們可以按如下方式計算日期:mysql> SET @year=2017, @week=15, @day=4; Query OK, 0 rows affected (0.00 sec)上述查詢將分別將值 '2017'、'15'、'4' 傳遞給 'year'、'week' 和 'day' 變數。然後在下面查詢中應用公式後,我們可以得到日期。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)上述查詢將值 '1984-01-17' 傳遞給 'dob' 變數。然後在下面查詢中應用公式後,我們可以得到年齡(以年為單位)。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 模式為 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 模式。如果我們啟用了 ALLOW_INVALID_DATES 模式,則 MySQL 會將超出範圍的值轉換為全零(即 '0000:00:00 00:00:00'),並在不產生任何錯誤或警告的情況下將它們儲存在表中。例如,我們可以按如下方式更改 SQL 模式,然後插入超出範圍的值: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' 上具有 PRIMARY KEY 約束,如下所示: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 個位元組用於儲存小數秒資料... 閱讀更多
134 次檢視
AUTO_INCREMENT 意味著該列將自動獲取值。為了說明這一點,我們建立了一個名為 'employees' 的表,如下所示: mysql> Show Create Table employees\G *************************** 1. row *************************** Table: employees Create Table: CREATE TABLE `employees` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `Name` varchar(35) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec)從上述結果集中,我們可以看到列 id 被賦予了 auto-increment 選項。現在,當我們在 Name 中插入值時... 閱讀更多
888 次檢視
假設我們有一個名為“Order123”的表,其中包含ProductName、Quantity和OrderDate列,如下所示:
mysql> Select * from Order123;
+-------------+----------+------------+
| ProductName | Quantity | OrderDate |
+-------------+----------+------------+
| A | 100 | 2017-05-25 |
| B | 105 | 2017-05-25 |
| C | 55 | 2017-05-25 |
| D | 250 | 2017-05-26 |
| E | 500 | 2017-05-26 |
| ... 閱讀更多
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP