欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MsSQL數(shù)據(jù)庫(kù)基礎(chǔ)與庫(kù)的基本操作方法

 更新時(shí)間:2025年02月13日 11:08:49   作者:web15085096641  
文章主要介紹了數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí),包括數(shù)據(jù)庫(kù)的定義、主流數(shù)據(jù)庫(kù)系統(tǒng)(如MySQL、PostgreSQL等)、數(shù)據(jù)庫(kù)操作(如創(chuàng)建、修改、刪除數(shù)據(jù)庫(kù),備份和恢復(fù)等)以及查看連接情況,感興趣的朋友一起看看吧

一,數(shù)據(jù)庫(kù)基礎(chǔ)

1,什么是數(shù)據(jù)庫(kù)

存儲(chǔ)數(shù)據(jù)用文件就可以了,為什么還要弄個(gè)數(shù)據(jù)庫(kù)

文件保存數(shù)據(jù)有以下幾個(gè)缺點(diǎn):

文件的安全性問(wèn)題

文件不利于數(shù)據(jù)查詢和管理

文件不利于存儲(chǔ)海量數(shù)據(jù)

文件在程序中控制不方便

數(shù)據(jù)庫(kù)存儲(chǔ)介質(zhì):

磁盤

內(nèi)存

為了解決上述問(wèn)題,專家們?cè)O(shè)計(jì)出更加利于管理數(shù)據(jù)的東西——數(shù)據(jù)庫(kù),它能更有效的管理數(shù)據(jù)。數(shù)據(jù)庫(kù)的水平是衡量一個(gè)程序員水平的重要指標(biāo)。

2,主流的數(shù)據(jù)庫(kù)

SQL Sever: 微軟的產(chǎn)品,.Net程序員的最愛,中大型項(xiàng)目。

Oracle: 甲骨文產(chǎn)品,適合大型項(xiàng)目,復(fù)雜的業(yè)務(wù)邏輯,并發(fā)一般來(lái)說(shuō)不如MySQL。

MySQL:世界上最受歡迎的數(shù)據(jù)庫(kù),屬于甲骨文,并發(fā)性好,不適合做復(fù)雜的業(yè)務(wù)。主要用在電商,SNS,論 壇。對(duì)簡(jiǎn)單的SQL處理效果好。

PostgreSQL :加州大學(xué)伯克利分校計(jì)算機(jī)系開發(fā)的關(guān)系型數(shù)據(jù)庫(kù),不管是私用,商用,還是學(xué)術(shù)研究使用,可 以免費(fèi)使用,修改和分發(fā)。

SQLite: 是一款輕型的數(shù)據(jù)庫(kù),是遵守ACID的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它包含在一個(gè)相對(duì)小的C庫(kù)中。它的設(shè) 計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可 能只需要幾百K的內(nèi)存就夠了。

H2: 是一個(gè)用Java開發(fā)的嵌入式數(shù)據(jù)庫(kù),它本身只是一個(gè)類庫(kù),可以直接嵌入到應(yīng)用項(xiàng)目中。

3,連接服務(wù)器

輸入:

mysql -h 127.0.0.1 -P 3306 -u root -p

一般我們用 mysql -u root -p 就可以了

輸出:

輸入指令后,再輸入密碼即可;

注意:

如果沒有寫 -h 127.0.0.1 默認(rèn)是連接本地

如果沒有寫 -P 3306 默認(rèn)是連接3306端口號(hào)

4,服務(wù)器,數(shù)據(jù)庫(kù),表關(guān)系

1,所謂安裝數(shù)據(jù)庫(kù)服務(wù)器,只是在機(jī)器上安裝了一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)程序,這個(gè)管理程序可以管理多個(gè)數(shù)據(jù)庫(kù), 一般開發(fā)人員會(huì)針對(duì)每一個(gè)應(yīng)用創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)

2,為保存應(yīng)用中實(shí)體的數(shù)據(jù),一般會(huì)在數(shù)據(jù)庫(kù)中創(chuàng)建多個(gè)表,以保存程序中實(shí)體的數(shù)據(jù)

3,數(shù)據(jù)庫(kù)服務(wù)器、數(shù)據(jù)庫(kù)和表的關(guān)系如下:

5,使用案例

創(chuàng)建數(shù)據(jù)庫(kù)

create database helloworld;

使用數(shù)據(jù)庫(kù)

use helloworld;

創(chuàng)建數(shù)據(jù)庫(kù)表

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;

二,庫(kù)的操作

1,創(chuàng)建數(shù)據(jù)庫(kù)

語(yǔ)法:

CREATE DATABASE
[IFNOTEXISTS]db_name[create_specification[,create_specification] …]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

說(shuō)明:

大寫的表示關(guān)鍵字

[ ] 是可選項(xiàng)

CHARACTER SET: 指定數(shù)據(jù)庫(kù)采用的字符集

COLLATE: 指定數(shù)據(jù)庫(kù)字符集的校驗(yàn)規(guī)則

2,創(chuàng)建數(shù)據(jù)庫(kù)案例

創(chuàng)建名為 db1 的數(shù)據(jù)庫(kù)

create database db1;

說(shuō)明:

當(dāng)我們創(chuàng)建數(shù)據(jù)庫(kù)沒有指定字符集和校驗(yàn)規(guī)則時(shí),系統(tǒng)使用默認(rèn)字符集:utf8

校驗(yàn)規(guī)則是:utf8_ general_ ci

創(chuàng)建一個(gè)使用utf8字符集的 db2 數(shù)據(jù)庫(kù)

show databases; 指令是查看數(shù)據(jù)庫(kù)

創(chuàng)建一個(gè)使用utf8字符集的 db2 數(shù)據(jù)庫(kù)

create database db2 charset=utf8;

創(chuàng)建一個(gè)使用utf字符集,并帶校對(duì)規(guī)則的 db3 數(shù)據(jù)庫(kù)。

create database db3 charset=utf8 collate utf8_general_ci;

3,字符集和校驗(yàn)規(guī)則

1,查看系統(tǒng)默認(rèn)字符集以及校驗(yàn)規(guī)則

show variables like ‘character_set_database';
show variables like ‘collation_database';

2,查看數(shù)據(jù)庫(kù)支持的字符集

show charset;

字符集主要是控制用什么語(yǔ)言。比如utf8就可以使用中文。

3,查看數(shù)據(jù)庫(kù)支持的字符集校驗(yàn)規(guī)則

show collation;

如果想快速知道指定數(shù)據(jù)庫(kù)的字符集和校驗(yàn)集的話:

var/lib/mysql 在這個(gè)目錄里面,mysql 的數(shù)據(jù)庫(kù)在里面就是一個(gè)目錄;

進(jìn)入想要查看的數(shù)據(jù)庫(kù)目錄,里面有文件 db.opt 里面存放了字符集和校驗(yàn)集;

4,校驗(yàn)規(guī)則對(duì)數(shù)據(jù)庫(kù)的影響

不區(qū)分大小寫

創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),校驗(yàn)規(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)建一個(gè)數(shù)據(jù)庫(kù),校驗(yàn)規(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');

一對(duì)比一目了然;

結(jié)果排序不區(qū)分大小寫排序以及結(jié)果:

區(qū)分大小寫排序以及結(jié)果:

4,操縱數(shù)據(jù)庫(kù)

1,查看數(shù)據(jù)庫(kù)

show databases;

database 下面全是數(shù)據(jù)庫(kù);

2,顯示創(chuàng)建語(yǔ)句

說(shuō)明:

MySQL 建議我們關(guān)鍵字使用大寫,但是不是必須的。

數(shù)據(jù)庫(kù)名字的反引號(hào)``,是為了防止使用的數(shù)據(jù)庫(kù)名剛好是關(guān)鍵字

/*!40100 default… */ 這個(gè)不是注釋,表示當(dāng)前mysql版本大于4.01版本,就執(zhí)行這句話

3,修改數(shù)據(jù)庫(kù)

語(yǔ)法:

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]…]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

說(shuō)明:

對(duì)數(shù)據(jù)庫(kù)的修改主要指的是修改數(shù)據(jù)庫(kù)的字符集,校驗(yàn)規(guī)則

實(shí)例: 將 test1 數(shù)據(jù)庫(kù)字符集改成 gbk

4,數(shù)據(jù)庫(kù)刪除

DROP DATABASE [IF EXISTS] db_ name;

執(zhí)行刪除之后的結(jié)果:

數(shù)據(jù)庫(kù)內(nèi)部看不到對(duì)應(yīng)的數(shù)據(jù)庫(kù)

對(duì)應(yīng)的數(shù)據(jù)庫(kù)文件夾被刪除,

級(jí)聯(lián)刪除,里面的數(shù)據(jù)表全部被刪

注意:不要隨意刪除數(shù)據(jù)庫(kù)

5,備份和恢復(fù)

1,備份

語(yǔ)法:

# mysqldump -P3306 -u root -p 密碼 -B 數(shù)據(jù)庫(kù)名 > 數(shù)據(jù)庫(kù)備份存儲(chǔ)的文件路徑

示例:將 test2 庫(kù)備份到文件(退出連接)

# mysqldump -P3306 -u root -p123456 -B mytest > D:/mytest.sql

因?yàn)槲疫@個(gè) mytest 數(shù)據(jù)庫(kù)是新建的里面沒有東西;

我們看看另一個(gè) D:test2.sql 的;

里面就有很多東西了;

2,還原

mysql> source D:/mysql-5.7.22/mytest.sql;

先刪除原數(shù)據(jù)庫(kù);

還原;

也是成功還原了;

3,注意事項(xiàng)

如果備份的不是整個(gè)數(shù)據(jù)庫(kù),而是其中的一張表,怎么做?

# mysqldump -u root -p 數(shù)據(jù)庫(kù)名 表名1 表名2 > D:/mytest.sql

同時(shí)備份多個(gè)數(shù)據(jù)庫(kù)

# mysqldump -u root -p -B 數(shù)據(jù)庫(kù)名1 數(shù)據(jù)庫(kù)名2 … > 數(shù)據(jù)庫(kù)存放路徑

如果備份一個(gè)數(shù)據(jù)庫(kù)時(shí),沒有帶上-B參數(shù), 在恢復(fù)數(shù)據(jù)庫(kù)時(shí),需要先創(chuàng)建空數(shù)據(jù)庫(kù),然后使用數(shù)據(jù)庫(kù),再使用 source來(lái)還原。

6,查看連接情況

語(yǔ)法:

show processlist

可以告訴我們當(dāng)前有哪些用戶連接到我們的MySQL,如果查出某個(gè)用戶不是你正常登陸的,很有可能你的數(shù)據(jù)庫(kù)被 人入侵了。以后大家發(fā)現(xiàn)自己數(shù)據(jù)庫(kù)比較慢時(shí),可以用這個(gè)指令來(lái)查看數(shù)據(jù)庫(kù)連接情況

到此這篇關(guān)于MsSQL數(shù)據(jù)庫(kù)基礎(chǔ)與庫(kù)的基本操作的文章就介紹到這了,更多相關(guān)MsSQL數(shù)據(jù)庫(kù)基礎(chǔ)與庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論