MsSQL數(shù)據(jù)庫基礎(chǔ)與庫的基本操作方法
一,數(shù)據(jù)庫基礎(chǔ)
1,什么是數(shù)據(jù)庫
存儲數(shù)據(jù)用文件就可以了,為什么還要弄個數(shù)據(jù)庫
文件保存數(shù)據(jù)有以下幾個缺點:
文件的安全性問題
文件不利于數(shù)據(jù)查詢和管理
文件不利于存儲海量數(shù)據(jù)
文件在程序中控制不方便
數(shù)據(jù)庫存儲介質(zhì):
磁盤
內(nèi)存
為了解決上述問題,專家們設(shè)計出更加利于管理數(shù)據(jù)的東西——數(shù)據(jù)庫,它能更有效的管理數(shù)據(jù)。數(shù)據(jù)庫的水平是衡量一個程序員水平的重要指標。
2,主流的數(shù)據(jù)庫
SQL Sever: 微軟的產(chǎn)品,.Net程序員的最愛,中大型項目。
Oracle: 甲骨文產(chǎn)品,適合大型項目,復雜的業(yè)務(wù)邏輯,并發(fā)一般來說不如MySQL。
MySQL:世界上最受歡迎的數(shù)據(jù)庫,屬于甲骨文,并發(fā)性好,不適合做復雜的業(yè)務(wù)。主要用在電商,SNS,論 壇。對簡單的SQL處理效果好。
PostgreSQL :加州大學伯克利分校計算機系開發(fā)的關(guān)系型數(shù)據(jù)庫,不管是私用,商用,還是學術(shù)研究使用,可 以免費使用,修改和分發(fā)。
SQLite: 是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個相對小的C庫中。它的設(shè) 計目標是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可 能只需要幾百K的內(nèi)存就夠了。
H2: 是一個用Java開發(fā)的嵌入式數(shù)據(jù)庫,它本身只是一個類庫,可以直接嵌入到應(yīng)用項目中。
3,連接服務(wù)器
輸入:
mysql -h 127.0.0.1 -P 3306 -u root -p
一般我們用 mysql -u root -p 就可以了
輸出:
輸入指令后,再輸入密碼即可;
注意:
如果沒有寫 -h 127.0.0.1 默認是連接本地
如果沒有寫 -P 3306 默認是連接3306端口號
4,服務(wù)器,數(shù)據(jù)庫,表關(guān)系
1,所謂安裝數(shù)據(jù)庫服務(wù)器,只是在機器上安裝了一個數(shù)據(jù)庫管理系統(tǒng)程序,這個管理程序可以管理多個數(shù)據(jù)庫, 一般開發(fā)人員會針對每一個應(yīng)用創(chuàng)建一個數(shù)據(jù)庫
2,為保存應(yīng)用中實體的數(shù)據(jù),一般會在數(shù)據(jù)庫中創(chuàng)建多個表,以保存程序中實體的數(shù)據(jù)
3,數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫和表的關(guān)系如下:
5,使用案例
創(chuàng)建數(shù)據(jù)庫
create database helloworld;
使用數(shù)據(jù)庫
use helloworld;
創(chuàng)建數(shù)據(jù)庫表
create table student( id int, name varchar(32), gender varchar(2) );
表中插入數(shù)據(jù)
insert into student (id, name, gender) values (1, ‘張三', ‘男'); insert into student (id, name, gender) values (2, ‘李四', ‘女'); insert into student (id, name, gender) values (3, ‘王五', ‘男');
查詢表中的數(shù)據(jù)
select * from student;
二,庫的操作
1,創(chuàng)建數(shù)據(jù)庫
語法:
CREATE DATABASE [IFNOTEXISTS]db_name[create_specification[,create_specification] …] create_specification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name
說明:
大寫的表示關(guān)鍵字
[ ] 是可選項
CHARACTER SET: 指定數(shù)據(jù)庫采用的字符集
COLLATE: 指定數(shù)據(jù)庫字符集的校驗規(guī)則
2,創(chuàng)建數(shù)據(jù)庫案例
創(chuàng)建名為 db1 的數(shù)據(jù)庫
create database db1;
說明:
當我們創(chuàng)建數(shù)據(jù)庫沒有指定字符集和校驗規(guī)則時,系統(tǒng)使用默認字符集:utf8
校驗規(guī)則是:utf8_ general_ ci
創(chuàng)建一個使用utf8字符集的 db2 數(shù)據(jù)庫
show databases; 指令是查看數(shù)據(jù)庫
創(chuàng)建一個使用utf8字符集的 db2 數(shù)據(jù)庫
create database db2 charset=utf8;
創(chuàng)建一個使用utf字符集,并帶校對規(guī)則的 db3 數(shù)據(jù)庫。
create database db3 charset=utf8 collate utf8_general_ci;
3,字符集和校驗規(guī)則
1,查看系統(tǒng)默認字符集以及校驗規(guī)則
show variables like ‘character_set_database'; show variables like ‘collation_database';
2,查看數(shù)據(jù)庫支持的字符集
show charset;
字符集主要是控制用什么語言。比如utf8就可以使用中文。
3,查看數(shù)據(jù)庫支持的字符集校驗規(guī)則
show collation;
如果想快速知道指定數(shù)據(jù)庫的字符集和校驗集的話:
var/lib/mysql 在這個目錄里面,mysql 的數(shù)據(jù)庫在里面就是一個目錄;
進入想要查看的數(shù)據(jù)庫目錄,里面有文件 db.opt 里面存放了字符集和校驗集;
4,校驗規(guī)則對數(shù)據(jù)庫的影響
不區(qū)分大小寫
創(chuàng)建一個數(shù)據(jù)庫,校驗規(guī)則使用utf8_ general_ ci[不區(qū)分大小寫]
create database test1 collate utf8_general_ci; use test1;
create table person(name varchar(20));
insert into person values(‘a(chǎn)'); insert into person values(‘A'); insert into person values(‘b'); insert into person values(‘B');
不區(qū)分大小寫的查詢以及結(jié)果
區(qū)分大小寫
創(chuàng)建一個數(shù)據(jù)庫,校驗規(guī)則使用utf8_ bin[區(qū)分大小寫]
create database test2 collate utf8_bin; use test2 create table person(name varchar(20)); insert into person values(‘a(chǎn)'); insert into person values(‘A'); insert into person values(‘b'); insert into person values(‘B');
一對比一目了然;
結(jié)果排序不區(qū)分大小寫排序以及結(jié)果:
區(qū)分大小寫排序以及結(jié)果:
4,操縱數(shù)據(jù)庫
1,查看數(shù)據(jù)庫
show databases;
database 下面全是數(shù)據(jù)庫;
2,顯示創(chuàng)建語句
說明:
MySQL 建議我們關(guān)鍵字使用大寫,但是不是必須的。
數(shù)據(jù)庫名字的反引號``,是為了防止使用的數(shù)據(jù)庫名剛好是關(guān)鍵字
/*!40100 default… */ 這個不是注釋,表示當前mysql版本大于4.01版本,就執(zhí)行這句話
3,修改數(shù)據(jù)庫
語法:
ALTER DATABASE db_name [alter_spacification [,alter_spacification]…] alter_spacification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name
說明:
對數(shù)據(jù)庫的修改主要指的是修改數(shù)據(jù)庫的字符集,校驗規(guī)則
實例: 將 test1 數(shù)據(jù)庫字符集改成 gbk
4,數(shù)據(jù)庫刪除
DROP DATABASE [IF EXISTS] db_ name;
執(zhí)行刪除之后的結(jié)果:
數(shù)據(jù)庫內(nèi)部看不到對應(yīng)的數(shù)據(jù)庫
對應(yīng)的數(shù)據(jù)庫文件夾被刪除,
級聯(lián)刪除,里面的數(shù)據(jù)表全部被刪
注意:不要隨意刪除數(shù)據(jù)庫
5,備份和恢復
1,備份
語法:
# mysqldump -P3306 -u root -p 密碼 -B 數(shù)據(jù)庫名 > 數(shù)據(jù)庫備份存儲的文件路徑
示例:將 test2 庫備份到文件(退出連接)
# mysqldump -P3306 -u root -p123456 -B mytest > D:/mytest.sql
因為我這個 mytest 數(shù)據(jù)庫是新建的里面沒有東西;
我們看看另一個 D:test2.sql 的;
里面就有很多東西了;
2,還原
mysql> source D:/mysql-5.7.22/mytest.sql;
先刪除原數(shù)據(jù)庫;
還原;
也是成功還原了;
3,注意事項
如果備份的不是整個數(shù)據(jù)庫,而是其中的一張表,怎么做?
# mysqldump -u root -p 數(shù)據(jù)庫名 表名1 表名2 > D:/mytest.sql
同時備份多個數(shù)據(jù)庫
# mysqldump -u root -p -B 數(shù)據(jù)庫名1 數(shù)據(jù)庫名2 … > 數(shù)據(jù)庫存放路徑
如果備份一個數(shù)據(jù)庫時,沒有帶上-B參數(shù), 在恢復數(shù)據(jù)庫時,需要先創(chuàng)建空數(shù)據(jù)庫,然后使用數(shù)據(jù)庫,再使用 source來還原。
6,查看連接情況
語法:
show processlist
可以告訴我們當前有哪些用戶連接到我們的MySQL,如果查出某個用戶不是你正常登陸的,很有可能你的數(shù)據(jù)庫被 人入侵了。以后大家發(fā)現(xiàn)自己數(shù)據(jù)庫比較慢時,可以用這個指令來查看數(shù)據(jù)庫連接情況
到此這篇關(guān)于MsSQL數(shù)據(jù)庫基礎(chǔ)與庫的基本操作的文章就介紹到這了,更多相關(guān)MsSQL數(shù)據(jù)庫基礎(chǔ)與庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
sqlserver實現(xiàn)樹形結(jié)構(gòu)遞歸查詢(無限極分類)的方法
下面小編就為大家?guī)硪黄猻qlserver實現(xiàn)樹形結(jié)構(gòu)遞歸查詢(無限極分類)的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07SQL Server數(shù)據(jù)庫文件過大而無法直接導出解決方案
這篇文章主要介紹了SQL Server數(shù)據(jù)庫文件過大而無法直接導出解決方案,文中通過代碼示例講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2024-08-08Transactional replication(事務(wù)復制)詳解之如何跳過一個事務(wù)
事務(wù)復制由 SQL Server 快照代理、日志讀取器代理和分發(fā)代理實現(xiàn)。 快照代理準備快照文件(其中包含了已發(fā)布表和數(shù)據(jù)庫對象的架構(gòu)和數(shù)據(jù)),然后將這些文件存儲在快照文件夾中,并在分發(fā)服務(wù)器中的分發(fā)數(shù)據(jù)庫中記錄同步作業(yè)。2014-08-08SQL Server 數(shù)據(jù)庫優(yōu)化
設(shè)計1個應(yīng)用系統(tǒng)似乎并不難,但是要想使系統(tǒng)達到最優(yōu)化的性能并不是一件容易的事。2009-07-07用sql腳本創(chuàng)建sqlserver數(shù)據(jù)庫觸發(fā)器范例語句
創(chuàng)建SqlServer數(shù)據(jù)庫觸發(fā)器腳本范例,方便大家用sql來創(chuàng)建觸發(fā)器,學習sqlserver的朋友可以參考下。2010-09-09對SQL Server中敏感數(shù)據(jù)進行加密解密的操作方法
近幾年有不少關(guān)于個人數(shù)據(jù)泄露的新聞(個人數(shù)據(jù)通常包含如姓名、地址、身份證號碼、財務(wù)信息等),給事發(fā)公司和被泄露人都帶來了不小的影響,所以本文給大家介紹了如何對SQL Server中的敏感數(shù)據(jù)進行加密解密,需要的朋友可以參考下2024-05-05SQL Server 2016 Alwayson新增功能圖文詳解
sqlserver2016發(fā)布有一段時間了,下面跟著腳本之家小編一起看看2016在Alwyson上做了哪些改進?需要的朋友通過本文了解下吧2017-09-09