1. 程式人生 > 其它 >oracle中關於日期的獲取

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 型別:

名稱MyISAMInnoDB
事務處理 不支援 支援
資料行鎖定 不支援 不支援不支援支援
外來鍵約束 不支援 支援
全文索引 支援 不支援
表空間大小 較小 較大,約2倍!

經驗 ( 適用場合 ) :

  • 適用 MyISAM : 節約空間及相應速度

  • 適用 InnoDB : 安全性 , 事務處理及多使用者操作資料表

?>資料表的儲存位置

  • MySQL資料表以檔案方式存放在磁碟中

    • 包括表文件 , 資料檔案 , 以及資料庫的選項檔案

    • 位置 : Mysql安裝目錄\data\下存放資料表 . 目錄名對應資料庫名 , 該目錄下檔名對應資料表 .

  • 注意 :

    • * . frm -- 表結構定義檔案

    • * . MYD -- 資料檔案 ( data )

    • * . MYI -- 索引檔案 ( index )

    • InnoDB型別資料表只有一個 *.frm檔案 , 以及上一級目錄的ibdata1檔案

    • MyISAM型別資料表對應三個檔案

?>設定資料表字符集

我們可為資料庫,資料表,資料列設定不同的字符集,設定方法 :

  • 建立時通過命令來設定 , 如 : CREATE TABLE 表名()CHARSET = utf8;

  • 如無設定 , 則根據MySQL資料庫配置檔案 my.ini 中的引數設定