oracle中關於日期的獲取
1、結構化查詢語句分類
名稱 | 解釋 | 命令 |
---|---|---|
DDL(資料定義語言) | 定義和管理資料物件,如資料庫、資料表等 | CREATE、DROP、ALTER |
DML(資料操作語言) | 用於操作資料庫物件中所包含的資料 | INSERT、UPDATE、DELETE |
DQL(資料查詢語言) | 用於查詢資料庫資料 | SELECT |
DCL(資料控制語言) | 用於管理資料庫的語言,包括管理許可權及資料更改 | GRANT、commit、rollback |
?>具體的資料庫sql教程:(菜鳥教程)https://www.runoob.com/mysql/mysql-tutorial.html
2、資料庫列型別
?> 數值型別
型別 | 說明 | 範圍(有符號) | 範圍(無符號) | 儲存需求 |
---|---|---|---|---|
tinyint | 非常小的資料 | (-128,127) | (0,255) | 1位元組 |
smallint | 較小的資料 | (-32 768,32 767) | (0,65 535) | 2位元組 |
mediumint | 中等大小的資料 | (-8 388 608,8 388 607) | (0,16 777 215) | 3位元組 |
int | 標準整數 | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 4位元組 |
bigint | 較大的整數 | (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) |
(0,18 446 744 073 709 551 615) | 8位元組 |
float | 單精度浮點數 | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 4位元組 |
double | 雙精度浮點數 | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) |
0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 8位元組 |
decimal | 字串形式的浮點數 | 依賴於M和D的值 | 依賴於M和D的值 | 對DECIMAL(M,D) ,如果M>D,為M+2否則為D+2 |
?>字串型別
型別 | 大小 | 用途 |
---|---|---|
CHAR | 0-255 bytes | 定長字串 |
VARCHAR | 0-65535 bytes | 變長字串 |
TINYBLOB | 0-255 bytes | 不超過 255 個字元的二進位制字串 |
TINYTEXT | 0-255 bytes | 短文字字串 |
BLOB | 0-65 535 bytes | 二進位制形式的長文字資料 |
TEXT | 0-65 535 bytes | 長文字資料 |
MEDIUMBLOB | 0-16 777 215 bytes | 二進位制形式的中等長度文字資料 |
MEDIUMTEXT | 0-16 777 215 bytes | 中等長度文字資料 |
LONGBLOB | 0-4 294 967 295 bytes | 二進位制形式的極大文字資料 |
LONGTEXT | 0-4 294 967 295 bytes | 極大文字資料 |
?>日期和時間型數值型別
型別 | 大小 ( bytes) | 範圍 | 格式 | 用途 |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 時間值或持續時間 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和時間值 |
TIMESTAMP | 4 | 1970-01-01 00:00:00/2038結束時間是第 2147483647 秒,北京時間 2038-1-19 11:14:07,格林尼治時間 2038年1月19日 凌晨 03:14:07 | YYYYMMDD HHMMSS | 混合日期和時間值,時間戳 |
?> NULL值
理解為 "沒有值" 或 "未知值"
不要用NULL進行算術運算 , 結果仍為NULL
!>注意: char(n) 和 varchar(n) 中括號中 n 代表字元的個數,並不代表位元組個數,比如 CHAR(30) 就可以儲存 30 個字元。
CHAR 和 VARCHAR 型別類似,但它們儲存和檢索的方式不同。它們的最大長度和是否尾部空格被保留等方面也不同。在儲存或檢索過程中不進行大小寫轉換。
BINARY 和 VARBINARY 類似於 CHAR 和 VARCHAR,不同的是它們包含二進位制字串而不要非二進位制字串。也就是說,它們包含位元組字串而不是字元字串。這說明它們沒有字符集,並且排序和比較基於列值位元組的數值值。
BLOB 是一個二進位制大物件,可以容納可變數量的資料。有 4 種 BLOB 型別:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它們區別在於可容納儲存範圍不同。
有 4 種 TEXT 型別:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。對應的這 4 種 BLOB 型別,可儲存的最大長度不同,可根據實際情況選擇。
3、資料欄位屬性
UnSigned
無符號的
宣告該資料列不允許負數 .
ZEROFILL
0填充的
不足位數的用0來填充 , 如int(3),5則為005
Auto_InCrement
自動增長的 , 每新增一條資料 , 自動在上一個記錄數上加 1(預設)
通常用於設定主鍵 , 且為整數型別
可定義起始值和步長
當前表設定步長(AUTO_INCREMENT=100) : 隻影響當前表
SET @@auto_increment_increment=5 ; 影響所有使用自增的表(全域性)
NULL 和 NOT NULL
預設為NULL , 即沒有插入該列的數值
如果設定為NOT NULL , 則該列必須有值
DEFAULT
預設的
用於設定預設值
例如,性別欄位,預設為"男" , 否則為 "女" ; 若無指定該列的值 , 則預設值為"男"的值
以Navicat for MySQL為例:
DROP TABLE IF EXISTS `sys_job`; CREATE TABLE `sys_job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '崗位ID', `name` varchar(255) NOT NULL COMMENT '崗位名稱', `enabled` bit(1) NOT NULL COMMENT '崗位狀態', `job_sort` int(5) DEFAULT NULL COMMENT '排序', `is_deleted` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '邏輯刪除 1(true)已刪除, 0(false)未刪除', `create_time` datetime NOT NULL COMMENT '建立日期', `create_by` varchar(20) NOT NULL COMMENT '建立人', `update_time` datetime NOT NULL COMMENT '更新時間', `update_by` varchar(20) NOT NULL COMMENT '更新人', `version` bigint(32) NOT NULL COMMENT '版本', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uniq_name` (`name`), KEY `inx_enabled` (`enabled`) ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='崗位';
4、資料表的型別
?>設定資料表的型別
CREATE TABLE 表名( -- 省略一些程式碼 -- Mysql註釋 -- 1. # 單行註釋 -- 2. /*...*/ 多行註釋 )ENGINE = MyISAM (or InnoDB) -- 檢視mysql所支援的引擎型別 (表型別) SHOW ENGINES;
MySQL的資料表的型別 : MyISAM , InnoDB , HEAP , BOB , CSV等...
常見的 MyISAM 與 InnoDB 型別:
名稱 | MyISAM | InnoDB |
---|---|---|
事務處理 | 不支援 | 支援 |
資料行鎖定 | 不支援 | 不支援不支援支援 |
外來鍵約束 | 不支援 | 支援 |
全文索引 | 支援 | 不支援 |
表空間大小 | 較小 | 較大,約2倍! |
經驗 ( 適用場合 ) :
適用 MyISAM : 節約空間及相應速度
適用 InnoDB : 安全性 , 事務處理及多使用者操作資料表
?>資料表的儲存位置
MySQL資料表以檔案方式存放在磁碟中
包括表文件 , 資料檔案 , 以及資料庫的選項檔案
位置 : Mysql安裝目錄\data\下存放資料表 . 目錄名對應資料庫名 , 該目錄下檔名對應資料表 .
注意 :
* . frm -- 表結構定義檔案
* . MYD -- 資料檔案 ( data )
* . MYI -- 索引檔案 ( index )
MyISAM型別資料表對應三個檔案
?>設定資料表字符集
我們可為資料庫,資料表,資料列設定不同的字符集,設定方法 :
建立時通過命令來設定 , 如 : CREATE TABLE 表名()CHARSET = utf8;
如無設定 , 則根據MySQL資料庫配置檔案 my.ini 中的引數設定