常用資料庫表
1. oracle有哪些常用的系統表啊
dba_開頭.....
dba_users 資料庫用戶信息
dba_segments 表段信息
dba_extents 數據區信息
dba_objects 資料庫對象信息
dba_tablespaces 資料庫表空間信息
dba_data_files 數據文件設置信息
dba_temp_files 臨時數據文件信息
dba_rollback_segs 回滾段信息
dba_ts_quotas 用戶表空間配額信息
dba_free_space資料庫空閑空間信息
dba_profiles 資料庫用戶資源限制信息
dba_sys_privs 用戶的系統許可權信息
dba_tab_privs用戶具有的對象許可權信息
dba_col_privs用戶具有的列對象許可權信息
dba_role_privs用戶具有的角色信息
dba_audit_trail審計跟蹤記錄信息
dba_stmt_audit_opts審計設置信息
dba_audit_object 對象審計結果信息
dba_audit_session會話審計結果信息
dba_indexes用戶模式的索引信息
user_開頭
user_objects 用戶對象信息
user_source 資料庫用戶的所有資源對象信息
user_segments 用戶的表段信息
user_tables 用戶的表對象信息
user_tab_columns 用戶的表列信息
user_constraints 用戶的對象約束信息
user_sys_privs 當前用戶的系統許可權信息
user_tab_privs 當前用戶的對象許可權信息
user_col_privs 當前用戶的表列許可權信息
user_role_privs 當前用戶的角色許可權信息
user_indexes 用戶的索引信息
user_ind_columns用戶的索引對應的表列信息
user_cons_columns 用戶的約束對應的表列信息
user_clusters 用戶的所有簇信息
user_clu_columns 用戶的簇所包含的內容信息
user_cluster_hash_expressions 散列簇的信息
v$開頭
v$database 資料庫信息
v$datafile 數據文件信息
v$controlfile控制文件信息
v$logfile 重做日誌信息
v$instance 資料庫實例信息
v$log 日誌組信息
v$loghist 日誌歷史信息
v$sga 資料庫SGA信息
v$parameter 初始化參數信息
v$process 資料庫伺服器進程信息
v$bgprocess 資料庫後台進程信息
v$controlfile_record_section 控制文件記載的各部分信息
v$thread 線程信息
v$datafile_header 數據文件頭所記載的信息
v$archived_log歸檔日誌信息
v$archive_dest 歸檔日誌的設置信息
v$logmnr_contents 歸檔日誌分析的DML DDL結果信息
v$logmnr_dictionary 日誌分析的字典文件信息
v$logmnr_logs 日誌分析的日誌列表信息
v$tablespace 表空間信息
v$tempfile 臨時文件信息
v$filestat 數據文件的I/O統計信息
v$undostat Undo數據信息
v$rollname 在線回滾段信息
v$session 會話信息
v$transaction 事務信息
v$rollstat 回滾段統計信息
v$pwfile_users 特權用戶信息
v$sqlarea 當前查詢過的sql語句訪問過的資源及相關的信息
v$sql 與v$sqlarea基本相同的相關信息
v$sysstat 資料庫系統狀態信息
all_開頭
all_users 資料庫所有用戶的信息
all_objects 資料庫所有的對象的信息
all_def_audit_opts 所有默認的審計設置信息
all_tables 所有的表對象信息
all_indexes所有的資料庫對象索引的信息
session_開頭
session_roles 會話的角色信息
session_privs 會話的許可權信息
index_開頭
index_stats 索引的設置和存儲信息
偽表
al 系統偽列表信息
2. 常用的資料庫有哪些
常用的資料庫有mysql、SQLServer、Oracle、Sybase、液仿DB2,所謂「資料庫」系以一定方式儲存在一起、能予多個用戶共享、具有盡可能小的冗餘度、與應用程序彼此獨立的數據集合。一個資料庫由多個鬧絕纖表空間(Tablespace)構成。
資料庫(Database),簡而言之可視為電子化的文件櫃——存儲電子文件的處所,用戶可以對文件中的數據運行新增、截取、更新、刪除等操作。例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個資料庫。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾宏握多的這種"資料庫",使其可以利用計算機實現財務、倉庫、生產的自動化管理。
3. 請列出SQL servel資料庫中常見的資料庫對象。
資料庫對象是資料庫的組成部分,常見的有以下幾種:
1 表(Table )
資料庫中的表與我們日常生活中使用的表格類似,它也是由行(Row) 和列(Column)組成的。列由同類的信息組成,每列又稱為一個欄位,每列的標題稱為欄位名。行包括了若干列信息項。一行數據稱為一個或一條記錄,它表達有一定意義的信息組合。一個資料庫表由一條或多條記錄組成,沒有記錄的表稱為空表。每個表中通常都有一個主關鍵字,用於惟一地確定一條記錄。
2 索引(Index)
索引是根據指定的資料庫表列建立起來的順序。它提供了快速訪問數據的途徑,並且可監督表的數據,使其索引所指向的列中的數據不重復。如聚簇索引。
3 視圖(View)
視圖看上去同表似乎一模一樣,具有一組命名的欄位和數據項,但它其實是一個虛擬的表,在資料庫中並不實際存在。視圖是由查詢資料庫表產生的,它限制了用戶能看到和修改的數據。由此可見,視圖可以用來控制用戶對數據的訪問,並能簡化數據的顯示,即通過視圖只顯示那些需要的數據信息。
4 圖表(Diagram)
圖表其實就是資料庫表之間的關系示意圖。利用它可以編輯表與表之間的關系。
5 預設值(Default)
預設值是當在表中創建列或插入數據時,對沒有指定其具體值的列或列數據項賦予事先設定好的值。
6 規則(Rule)
規則是對資料庫表中數據信息的限制。它限定的是表的列。
7 觸發器(Trigger)
觸發器是一個用戶定義的SQL事務命令的集合。當對一個表進行插入、更改、刪除時,這組命令就會自動執行。
8 存儲過程(Stored Procere)
存儲過程是為完成特定的功能而匯集在一起的一組SQL 程序語句,經編譯後存儲在資料庫中的SQL 程序。
9 用戶(User)
所謂用戶就是有許可權訪問資料庫的人。
10 序列
序列定義存儲在數據字典中,序列通過提供唯一數值的順序表用於簡化程序設計工作。
4. 怎樣建立資料庫表格(mysql怎麼建立資料庫表格)
一、建立資料庫
方法一:使用向導,調出方法⑴可採用「文件」菜單「新建」
⑵李毀或採用「工具」菜單「向導」
方法二:使用資料庫設計器
1、使用向導建立資料庫
特點:可以方便快捷地創建資料庫,但只適用於一般常用的資料庫。
2、使用資料庫設計器建立資料庫
特點:最大特點就是靈活性
操作步驟:⑴「文件」菜單「新建」,顯示新建對話框
⑵選擇「資料庫」和單擊「新建文件」鈕
⑶在創建對話框中輸入新資料庫的名稱和單擊「保存」鈕
效果:資料庫文件已經建立完成。
顯禪鬧示出「賀擾罩資料庫設計器」窗口和「資料庫設計工具」
打開「資料庫設計器」工具方法:「顯示」菜單「工具欄」
選擇「資料庫設計器」
三、建立表
1、資料庫與數據表
可以先建立自由表,然後再添加到資料庫中
建立新的資料庫表,系統會將其自動加入到資料庫中。
2、建立自由表
注意:自由表獨立於任何資料庫,如需要課添加到資料庫中,但不能同時
將一個表添加到多個資料庫。
預備知識:建立表必須首先建立表的結構
即要描述各個欄位的欄位名、欄位類型、欄位寬度、如果是數
值型還有小數位數,以及索引、是否再欄位中允許空值(選擇NULL)
3、建立資料庫表
有三種方法:
法一、「文件」菜單「新建」,顯示新建對話框
選擇「表」和單擊「新建文件」鈕
在創建對話框中輸入新數表名稱和單擊「保存」鈕
法二、再建立完資料庫後,不關閉「資料庫設計器」窗口,單擊滑鼠右鍵後
選擇快捷菜單種的「新表」,單擊「新表」鈕,再創建對話框輸入表名
後「保存」
法三、使用資料庫設計器工具欄
(「顯示」菜單「工具欄」)
選擇「資料庫設計器」工具欄種的第一個鈕「新建表」
二、使用命令建立資料庫、資料庫表
1、建立資料庫
CREATEDATABASE資料庫名稱
2、建立資料庫表
CREATETABLE│DBF表名[FREE]
(欄位名1欄位類型[(欄位寬度[,小數位數])]
[(欄位名2]
二、使用向導建立查詢
1、查詢形式分類:查詢向導:標准查詢
交叉表向導:以電子表格形式輸出查詢結果
圖形向導:以電子圖形形式輸出查詢結果
2、使用查詢向導建立查詢步驟:
[0]使用查詢向導前必須先打開用到的庫表或自由表
⑴欄位選取
⑵記錄篩選
⑶選擇排序方式
⑷查詢完成(選擇保存並運行)(瀏覽查詢)
⑸打開查詢設計器,修改查詢
5. 常見的關系型資料庫有哪些
關系資料庫,是建立在關系模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的數據。現實世界中的各種實體以及實體之間的各種聯系均用關系模型來表示。標准數據查詢語言SQL就是一種基於關系資料庫的語言,這種語言執行對關系資料庫中數據的檢索和操作。
關系模型由關系數據結構、關系操作集合、關系完整性約束三部分組成。
簡單說,關系型資料庫是由多張能互相聯接的二維行列表格組成的資料庫。當前主流的關系型資料庫有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。
1、Oracle
Oracle是1983年推出的世界上第一個開放式商品化關系型資料庫管理系統。它採用標準的SQL結構化查詢語言,支持多種數據類型,提供面向對象存儲的數據支持,具有第四代語言開發工具,支持Unix、Windows NT、OS/2、Novell等多種平台。除此之外,它還具有很好的並行處理功能。Oracle產品主要由Oracle伺服器產品、Oracle開發工具、Oracle應用軟體組成,也有基於微機的資料庫產品。主要滿足對銀行、金融、保險等企業、事業開發大型資料庫的需求。
2、DB2
DB2是美國IBM公司開發的一套關系型資料庫管理系統,它主要的運行環境為UNIX(包括IBM自家的AIX)、Linux、IBM i(舊稱OS/400)、z/OS,以及Windows伺服器版本。
DB2主要應用於大型應用系統,具有較好的可伸縮性,可支持從大型機到單用戶環境,應用於所有常見的伺服器操作系統平台下。 DB2提供了高層次的數據利用性、完整性、安全性、可恢復性,以及小規模到大規模應用程序的執行能力,具有與平台無關的基本功能和SQL命令。
DB2採用了數據分級技術,能夠使大型機數據很方便地下載到LAN資料庫伺服器,使得客戶機/伺服器用戶和基於LAN的應用程序可以訪問大型機數據,並使資料庫本地化及遠程連接透明化。
DB2以擁有一個非常完備的查詢優化器而著稱,其外部連接改善了查詢性能,並支持多任務並行查詢。 DB2具有很好的網路支持能力,每個子系統可以連接十幾萬個分布式用戶,可同時激活上千個活動線程,對大型分布式應用系統尤為適用。
3、Microsoft SQL Server
SQL Server 是Microsoft 公司推出的關系型資料庫管理系統。具有使用方便可伸縮性好與相關軟體集成程度高等優點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2012 的大型多處理器的伺服器等多種平台使用。
Microsoft SQL Server 是一個全面的資料庫平台,使用集成的商業智能 (BI)工具提供了企業級的數據管理。Microsoft SQL Server 資料庫引擎為關系型數據和結構化數據提供了更安全可靠的存儲功能,使您可以構建和管理用於業務的高可用和高性能的數據應用程序。
4、Microsoft Access
Access是由微軟發布的關系資料庫管理系統。它結合了 MicrosoftJet Database Engine 和 圖形用戶界面兩項特點,是 Microsoft Office 的系統程序之一。
Access是微軟把資料庫引擎的圖形用戶界面和軟體開發工具結合在一起的一個資料庫管理系統。它是微軟OFFICE的一個成員, 在包括專業版和更高版本的office版本裡面被單獨出售。2018年9月25日,最新的微軟Office Access 2019在微軟Office 2019里發布。
MS ACCESS以它自己的格式將數據存儲在基於Access Jet的資料庫引擎里。它還可以直接導入或者鏈接數據(這些數據存儲在其他應用程序和資料庫)。
5、MySQL
MySQL是一個關系型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關系型資料庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系資料庫管理系統) 應用軟體之一。
MySQL是一種關系資料庫管理系統,關系資料庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
MySQL所使用的 SQL 語言是用於訪問資料庫的最常用標准化語言。MySQL 軟體採用了雙授權政策,分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站資料庫。
6. 查看sqlserver資料庫有哪些表
查看sqlserver資料庫有哪些表可以使用以下sql語句:
select name from sysobjects where xtype='u';
或者select * from sys.tables;
或者SELECT * FROM INFORMATION_SCHEMA.TABLES;
(6)常用資料庫表擴展閱讀
sqlserver中各個系統表的作用介紹:
sysaltfiles 主資料庫 保存資料庫的文件
syscharsets 主資料庫 字元集與排序順序
sysconfigures 主資料庫 配置選項
syscurconfigs 主資料庫 當前配置選項
sysdatabases 主資料庫 伺服器中的資料庫
syslanguages 主資料庫 語言
syslogins 主資料庫 登陸帳號信息
sysoledbusers 主資料庫 鏈接伺服器登陸信息
7. 資料庫表結構設計,常見的資料庫管理系統
一、數據場景 1、表結構簡介 任何工孫此段具類的東西都是為了解決某個場景下的問題,比如Redis緩存系統熱點數據,ClickHouse解決海量數據的實時分析,MySQL關系型資料庫存儲結構化數據。數據的存儲則需要設計對應的表結構,清楚的表結構,有助於快速開發業務,和理解系統。表結構的設計通常從下面幾個方面考慮:業務場景、設計規范、表結構、欄位屬性、數據管理。
2、用戶場景
例如存儲用戶基礎信息數據,通常都會下面幾個相關表結構:用戶信息表、單點登錄表、狀態管理表、支付賬戶表等。
用戶信息表
存儲用戶三要素相關信息:姓名,手機號,身份證,登錄密碼,郵箱等。
CREATE TABLE `ms_user_center` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用戶ID', `user_name` varchar(20) NOT NULL COMMENT '用戶名', `real_name` varchar(20) DEFAULT NULL COMMENT '真實姓名', `pass_word` varchar(32) NOT NULL COMMENT '密碼', `phone` varchar(20) NOT NULL COMMENT '手機號', `email` varchar(32) DEFAULT NULL COMMENT '郵箱', `head_url` varchar(100) DEFAULT NULL COMMENT '用戶頭像URL', `card_id` varchar(32) DEFAULT NULL COMMENT '身份證號', `user_sex` int(1) DEFAULT '1' COMMENT '用戶性別:0-女,1-男', `create_time` datetime DEFAULT NULL COMMENT '扒猜創建時間', `update_time` datetime DEFAULT NULL COMMENT '更則譽新時間', `state` int(1) DEFAULT '1' COMMENT '是否可用,0-不可用,1-可用', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶表'; 單點登錄表
用意是在多個業務系統中,用戶登錄一次就可以訪問所有相互信任的業務子系統,是聚合業務平台常用的解決方案。
CREATE TABLE `ms_user_sso` ( `user_id` int(11) NOT NULL COMMENT '用戶ID', `sso_id` varchar(32) NOT NULL COMMENT '單點信息編號ID', `sso_code` varchar(32) NOT NULL COMMENT '單點登錄碼,唯一核心標識', `log_ip` varchar(32) DEFAULT NULL COMMENT '登錄IP地址', `create_time` datetime DEFAULT NULL COMMENT '創建時間', `update_time` datetime DEFAULT NULL COMMENT '更新時間', `state` int(1) DEFAULT '1' COMMENT '是否可用,0-不可用,1-可用', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶單點登錄表'; 狀態管理表
系統用戶在使用時候可能出現多個狀態,例如賬戶凍結、密碼鎖定等,把狀態聚合到一起,可以更加方便的管理和驗證。
CREATE TABLE `ms_user_status` ( `user_id` int(11) NOT NULL COMMENT '用戶ID', `account_status` int(1) DEFAULT '1' COMMENT '賬戶狀態:0-凍結,1-未凍結', `real_name_status` int(1) DEFAULT '0' COMMENT '實名認證狀態:0-未實名,1-已實名', `pay_pass_status` int(1) DEFAULT '0' COMMENT '支付密碼是否設置:0-未設置,1-設置', `wallet_pass_status` int(1) DEFAULT '0' COMMENT '錢包密碼是否設置:0-未設置,1-設置', `wallet_status` int(1) DEFAULT '1' COMMENT '錢包是否凍結:0-凍結,1-未凍結', `email_status` int(1) DEFAULT '0' COMMENT '郵箱狀態:0-未激活,1-激活', `message_status` int(1) DEFAULT '1' COMMENT '簡訊提醒開啟:0-未開啟,1-開啟', `letter_status` int(1) DEFAULT '1' COMMENT '站內信提醒開啟:0-未開啟,1-開啟', `emailmsg_status` int(1) DEFAULT '0' COMMENT '郵件提醒開啟:0-未開啟,1-開啟', `create_time` datetime DEFAULT NULL COMMENT '創建時間', `update_time` datetime DEFAULT NULL COMMENT '更新時間', `state` int(1) DEFAULT '1' COMMENT '是否可用,0-不可用,1-可用', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶狀態表'; 支付賬戶表
用戶交易的核心表,存儲用戶相關的賬戶資金信息。
CREATE TABLE `ms_user_wallet` ( `wallet_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '錢包ID', `user_id` int(11) NOT NULL COMMENT '用戶ID', `wallet_pwd` varchar(32) DEFAULT NULL COMMENT '錢包密碼', `total_account` decimal(20,2) DEFAULT '0.00' COMMENT '賬戶總額', `usable_money` decimal(20,2) DEFAULT '0.00' COMMENT '可用余額', `freeze_money` decimal(20,2) DEFAULT '0.00' COMMENT '凍結金額', `freeze_time` datetime DEFAULT NULL COMMENT '凍結時間', `thaw_time` datetime DEFAULT NULL COMMENT '解凍時間', `create_time` datetime DEFAULT NULL COMMENT '創建時間', `update_time` datetime DEFAULT NULL COMMENT '更新時間', `state` int(1) DEFAULT '1' COMMENT '是否可用,0-不可用,1-可用', PRIMARY KEY (`wallet_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶錢包'; 二、設計規范 1、涉及模塊
通過上面幾個表設計的案例,可以看到表設計關聯到資料庫的各個方面知識:數據類型,索引,編碼,存儲引擎等。表設計是一個很大的命題,不過也遵循一個基本規范:三範式。
2、三範式 基礎概念
一範式
表的列的具有原子性,不可再分解,即列的信息,不能分解,關系型資料庫MySQL、Oracle等自動的滿足。
二範式
每個事實的數據記錄只會出現一次, 不會冗餘, 通常設計一個主鍵來實現。
三範式
要求一個表中不包含已經存在於其它表的非主鍵信息,例如部門和員工的信息,員工表包含部門表的主鍵ID,則可以關聯獲取相關信息,沒必要在員工表保存相關信息。
優缺點對比
範式化設計
範式化結構設計通常更新快,因為冗餘數據較少,表結構輕巧,也更好的寫入內存中。但是查詢起來涉及到關聯,代價非常高,非常損耗查詢性能。
反範式化設計
所有的數據都在一張表中,避免關聯查詢,索引的有效性更高,但是數據的冗餘性極高。
建議結論
上述的兩種設計方式在實際開發中都是不存在的,在實際開發中都是混合使用。比如匯總統計,緩存數據,都會基於反範式化的設計。
三、欄位屬性
合適的欄位類型對於高性能來說非常重要,基本原則如下:簡單的類型佔用資源更少;在可以正確存儲數據的情況下,選最小的數據類型。
1、數據類型選擇 整數類型
TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,根據數據類型範圍合理選擇即可。
實數類型
FLOAT、DOUBLE、DECIMAL,建議資金貨幣相關類型使用高精度DECIMAL存儲,或者把數據成倍擴大為整數,採用BIGINT存儲,不過處理相對麻煩。
字元類型
CHAR、VARCHAR,長度不確定建議採用VARCHAR存儲,不過VARCHAR類型需要額外開銷記錄字元串長度。CHAR適合存儲短字元,或者定長字元串,例如MD5的加密結構。
時間類型
DATETIME、TIMESTAMP,DATETIME保存大范圍的值,精度秒。TIMESTAMP以時間戳的格式,范圍相對較小,效率也相對較高,所以通常情況建議使用。
MySQL的欄位類型有很多種,可以根據數據特性選擇合適的,這里只描述常見的幾種類型。
2、基礎用法操作 數據類型
修改欄位類型
ALTER TABLE ms_user_sso MODIFY state CHAR(1) DEFAULT '0' ; ALTER TABLE ms_user_sso MODIFY state INT(1) DEFAULT '1' COMMENT '狀態:0不可用,1可用';
修改名稱位置
ALTER TABLE ms_user_sso CHANGE log_ip login_ip VARCHAR(32) AFTER update_time ; 索引使用
索引類型:主鍵索引,普通索引,唯一索引,組合索引,全文索引。這里演示普通索引的操作。MySQL的核心模塊,後續詳說。
添加索引
ALTER TABLE ms_user_wallet ADD INDEX user_id_index(user_id) ; CREATE INDEX state_index ON ms_user_wallet(state) ;
查看索引
SHOW INDEX FROM ms_user_wallet;
刪除索引
DROP INDEX state_index ON ms_user_wallet ;
修改索引
不具有真正意義上的修改,可以把原有的索引刪除之後,再次添加索引。
外鍵關聯
用處:外鍵關聯的作用保證多個數據表的數據一致性和完整性,建表時先有主表,後有從表;刪除數據表,需要先刪從表,再刪主表。復雜場景不建議使用,實際開發中用的也不多。
添加外鍵
ALTER TABLE ms_user_wallet ADD CONSTRAINT user_id_out_key FOREIGN KEY(user_id) REFERENCES ms_user_center(id) ;
刪除外鍵
ALTER TABLE ms_user_wallet DROP FOREIGN KEY user_id_out_key ; 四、表結構管理 1、查看結構 DESC ms_user_status ; SHOW CREATE TABLE ms_user_status ; 2、欄位結構 添加欄位 ALTER TABLE ms_user_status ADD `delete_time` datetime DEFAULT NULL COMMENT '刪除時間' ; 刪除欄位 ALTER TABLE ms_user_status DROP COLUMN delete_time ; 3、修改表名 ALTER TABLE ms_user_center RENAME ms_user_info ; 4、存儲引擎 存儲引擎 SELECT VERSION() ; SHOW ENGINES ;
MySQL 5.6 支持的存儲引擎有InnoDB、MyISAM、Memory、Archive、CSV、BLACKHOLE等。一般默認使用InnoDB,支持事務管理。該模塊MySQL核心,後續詳解。
修改引擎
數據量大的場景下,存儲引擎修改是一個難度極大的操作,容易會導致表的特性變動,引起各種後續反應,後續會詳說。
ALTER TABLE ms_user_sso ENGINE = MyISAM ; 5、修改編碼
表字元集默認使用utf8,通用,無亂碼風險,漢字3位元組,英文1位元組,utf8mb4是utf8的超集,有存儲4位元組例如表情符號時使用。
查看編碼 SHOW VARIABLES LIKE 'character%'; 修改編碼 ALTER TABLE ms_user_sso DEFAULT CHARACTER SET utf8mb4; 五、數據管理 1、增刪改查
添加數據
INSERT INTO ms_user_sso ( user_id,sso_id,sso_code,create_time,update_time,login_ip,state ) VALUES ( '1','SSO7637267','SSO78631273612', '2019-12-24 11:56:57','2019-12-24 11:57:01','127.0.0.1','1' );
更新數據
UPDATE ms_user_sso SET user_id = '1',sso_id = 'SSO20191224',sso_code = 'SSO20191224', create_time = '2019-11-24 11:56:57',update_time = '2019-11-24 11:57:01', login_ip = '127.0.0.1',state = '1' WHERE user_id = '1';
查詢數據
一般情況下都是禁止使用 select* 操作。
SELECT user_id,sso_id,sso_code,create_time,update_time,login_ip,state FROM ms_user_sso WHERE user_id = '1';
刪除數據
DELETE FROM ms_user_sso WHERE user_id = '2' ;
不帶where條件,就是刪除全部數據。原則上不允許該操作,優化篇會詳解。TRUNCATE TABLE也是清空表數據,但是佔用的資源相對較少。
2、數據安全 不可逆加密
這類加密演算法,多用來做數據驗證操作,比如常見的密碼驗證。
SELECT MD5('cicada')='' ; SELECT SHA('cicada')=''; SELECT PASSWORD('smile')='*' ; 可逆加密
安全性要求高的系統,需要做三級等保,對數據的安全性極高,數據在存儲時必須加密入庫,取出時候需要解密,這些就需要可逆加密。
SELECT DECODE(ENCODE('123456','key_salt'),'key_salt') ; SELECT AES_DECRYPT(AES_ENCRYPT('cicada','salt123'),'salt123');
上述數據安全的管理,也可以基於應用系統的服務(代碼)層進行處理,相對專業的流程是從數據生成源頭處理,規避數據傳遞過程泄露,造成不必要的風險。
8. 資料庫都有哪些
一、資料庫種類有哪些
早期較為時興的資料庫種類有三種,分別是層次式資料庫、網路式資料庫和關系型資料庫。而在如今的互聯網中,最常見的資料庫種類主要有2種,即關系型資料庫和非關系型資料庫。
二、層次資料庫介紹
層次資料庫是最開始研製的資料庫系統軟體,它把數據根據層次構造(樹結構)的方法呈現。層次資料庫以前是非常熱門的資料庫,但伴隨著關系資料庫的逐漸流行,如今早已非常少應用了。
較為具備象徵性的層次資料庫是IMS(Information Management System)資料庫,由IBM企業研發。
三、關系型資料庫詳細介紹
網路資料庫和層次資料庫在數據獨立性和抽象性級別上有所欠缺,用戶開展存儲時,需要聲明數據的存儲結構和相對路徑。而關系資料庫就可以較切實解決這種問題。
和Excel工作簿一樣,關系型資料庫也選用由列和行構成的二維表來管理數據,簡單易懂。另外,它還利用SQL(Structured Query Language,結構化查詢語言)對數據開展實際操作。
四、非關系型資料庫詳細介紹
伴隨著互聯網技術Web2.0的興起,傳統關系型資料庫在應對大數據量,比如大規模和高並發的微博、微信或者SNS類型的web2.0動態網頁時,已經有些力不從心,曝露了許多難以克服的難題。因此出現了針對大規模數據量場景,以性能卓越和應用便捷為目的的的資料庫產品——NOSQL資料庫。
9. 什麼是資料庫表
在關系資料庫中,資料庫表是一系列二維數組的集合,用來代表和儲存數據對象之間的關系。它由縱向的列和橫向的行組成;
例如一個有關作者信息的名為 authors 的表中,每個列包含的是所有作者的某個特定類型的信息,比如「姓氏」,而每行則包含了某個特定作者的所有信息:姓、名、住址等等。
對於特定的資料庫表,列的數目一般事先固定,各列之間可以由列名來識別。而行的數目可以隨時、動態變化,每行通常都可以根據某個(或某幾個)列中的數據來識別,稱為候選鍵。
DataTable 架構定義
表的架構(即結構)由列和約束表示。 使用 DataColumn 對象以及 ForeignKeyConstraint 和 UniqueConstraint 對象定義 DataTable 的架構。 表中的列可以映射到數據源中的列、包含從表達式計算所得的值、自動遞增它們的值,或包含主鍵值。
按名稱引用表中的列、關系和約束是區分大小寫的。 因此,一個表中可以存在兩個或兩個以上名稱相同(但大小寫不同)的列、關系或約束。 例如,您可以有Col1和col1。
以上內容參考:網路-資料庫表