【MsSQL】数据库基础 库的基本操作

目录

一,数据库基础

1,什么是数据库

2,主流的数据库

3,连接服务器

4,服务器,数据库,表关系

5,使用案例

二,库的操作

1,创建数据库

2,创建数据库案例

3,字符集和校验规则

1,查看系统默认字符集以及校验规则

2,查看数据库支持的字符集

3,查看数据库支持的字符集校验规则

4,校验规则对数据库的影响

4,操纵数据库

1,查看数据库

2,显示创建语句

3,修改数据库

4,数据库删除

5,备份和恢复

1,备份

2,还原

3,注意事项

6,查看连接情况


一,数据库基础

1,什么是数据库

存储数据用文件就可以了,为什么还要弄个数据库?

文件保存数据有以下几个缺点:

文件的安全性问题

文件不利于数据查询和管理

文件不利于存储海量数据

文件在程序中控制不方便

数据库存储介质:

磁盘

内存

为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标。

2,主流的数据库

SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。

Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。

MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用   在电商,SNS,论 坛。对简单的SQL处理效果好。

PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可 以免费使用,修改和分发。

SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设 计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可 能只需要几百K的内存就够了。

H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

3,连接服务器

输入:

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

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

输出:

输入指令后,再输入密码即可;

注意:

如果没有写 -h 127.0.0.1 默认是连接本地

如果没有写 -P 3306 默认是连接3306端口号

4,服务器,数据库,表关系

1,所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库, 一般开发人员会针对每一个应用创建一个数据库

2,为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据

3,数据库服务器、数据库和表的关系如下:

5,使用案例

创建数据库

create database helloworld;

使用数据库

use helloworld;

创建数据库表

create table student(

        id int,

        name varchar(32),

        gender varchar(2)

);

表中插入数据

insert into student (id, name, gender) values (1, '张三', '男');

insert into student (id, name, gender) values (2, '李四', '女');

insert into student (id, name, gender) values (3, '王五', '男');

查询表中的数据

select * from student;

二,库的操作

1,创建数据库

语法:

CREATE DATABASE

[IFNOTEXISTS]db_name[create_specification[,create_specification] ...]

create_specification:

        [DEFAULT] CHARACTER SET charset_name

        [DEFAULT] COLLATE collation_name

说明:

大写的表示关键字

[ ] 是可选项

CHARACTER SET: 指定数据库采用的字符集

COLLATE: 指定数据库字符集的校验规则

2,创建数据库案例

创建名为 db1 的数据库

create database db1;

说明:

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8

校验规则是:utf8_ general_ ci

创建一个使用utf8字符集的 db2 数据库

show databases; 指令是查看数据库

创建一个使用utf8字符集的 db2 数据库

create database db2 charset=utf8;

创建一个使用utf字符集,并带校对规则的 db3 数据库。

create database db3 charset=utf8 collate utf8_general_ci;

3,字符集和校验规则

1,查看系统默认字符集以及校验规则

show variables like 'character_set_database';

show variables like 'collation_database';

2,查看数据库支持的字符集

show charset;

字符集主要是控制用什么语言。比如utf8就可以使用中文。

3,查看数据库支持的字符集校验规则

show collation;

如果想快速知道指定数据库的字符集和校验集的话:

var/lib/mysql 在这个目录里面,mysql 的数据库在里面就是一个目录;

进入想要查看的数据库目录,里面有文件 db.opt 里面存放了字符集和校验集; 

4,校验规则对数据库的影响

不区分大小写

创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]

create database test1 collate utf8_general_ci;

use test1;

create table person(name varchar(20));

insert into person values('a');

insert into person values('A');

insert into person values('b');

insert into person values('B');

不区分大小写的查询以及结果

区分大小写

创建一个数据库,校验规则使用utf8_ bin[区分大小写]

create database test2 collate utf8_bin;

use test2

create table person(name varchar(20));

insert into person values('a');

insert into person values('A');

insert into person values('b');

insert into person values('B');

一对比一目了然;

结果排序不区分大小写排序以及结果:

区分大小写排序以及结果:

4,操纵数据库

1,查看数据库

show databases;

database 下面全是数据库;

2,显示创建语句

说明:

MySQL 建议我们关键字使用大写,但是不是必须的。

数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字

/*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话

3,修改数据库

语法:

ALTER DATABASE db_name

[alter_spacification [,alter_spacification]...]

alter_spacification:

[DEFAULT] CHARACTER SET charset_name

[DEFAULT] COLLATE collation_name

说明:

对数据库的修改主要指的是修改数据库的字符集,校验规则

实例: 将 test1 数据库字符集改成 gbk

4,数据库删除

DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

        数据库内部看不到对应的数据库

        对应的数据库文件夹被删除,

        级联删除,里面的数据表全部被删

注意:不要随意删除数据库

5,备份和恢复

1,备份

语法:

# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

示例:将 test2 库备份到文件(退出连接)

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

因为我这个 mytest 数据库是新建的里面没有东西;

我们看看另一个 D:test2.sql 的;

里面就有很多东西了;

2,还原

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

先删除原数据库;

还原;

也是成功还原了;

3,注意事项

如果备份的不是整个数据库,而是其中的一张表,怎么做?

# mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

同时备份多个数据库

# mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用 source来还原。

6,查看连接情况

语法:

show processlist

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被 人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/688106.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法学习笔记六-二叉树的顺序存储表示法和实现(C语言)

目录 前言 1.数组和结构体相关的一些知识 1.数组 2.结构体数组 3.递归遍历数组 2.二叉树的顺序存储表示法和实现 1.定义 2.初始化 3.先序遍历二叉树 4.中序遍历二叉树 5.后序遍历二叉树 6.完整代码 前言 二叉树的非递归的表示和实现。 1.数组和结构体相关的一些知…

PyQt5中的组件

文章目录 1. 简介2. QCheckBox3. QPushButton4. QSlider5. QProgressBar6. QCalendarWidget7. QPixmap8. QLineEdit9. QSplitter10. QComboBox11. 总结 1. 简介 在PyQt5中,有许多不同类型的组件,可以用于构建各种GUI界面。以下是一些常见的PyQt5组件&am…

NSSCTF中的web学习(md5())

目录 MD5的学习 [BJDCTF 2020]easy_md5 [LitCTF 2023]Follow me and hack me [LitCTF 2023]Ping [SWPUCTF 2021 新生赛]easyupload3.0 [NSSCTF 2022 Spring Recruit]babyphp MD5的学习 md5()函数: md5($a):返回a字符串的散列值 md5($a,TRUE)&…

地科前沿|AI与GIS的融合

AI与GIS的融合:推动地理信息科技的创新 人工智能(AI)与地理信息系统(GIS)的结合,形成了一种强大的合作关系,为科学、技术和社会领域带来了深刻的变革。这种融合不仅为地理空间数据的处理提供了更…

十大排序算法(java实现)

注:本篇仅用来自己学习,大量内容来自菜鸟教程(地址:1.0 十大经典排序算法 | 菜鸟教程) 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大…

Java——类与对象

目录 一、面向对象的初步认识 1.1 什么是面向对象 1.2 面向对象与面向过程 二、类的定义与使用 2.1 简单认识类 2.2 类的定义格式 三、类的实例化 3.1 什么是实例化 3.2 类和对象的说明 四、this引用 4.1 为什么要有this引用 4.2 什么是this引用 ​编辑 4.3 this引用…

Google console 带包 号

https://play.google.com/store/apps/details?idcom.winmoney.moneyincome 懂的 来tg goomoni

【redis】Redis五种常用数据类型和内部编码,以及对String字符串类型的总结

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

在线教程|图灵奖得主Yann LeCun盛赞!小红书开源InstantID,一张原图即可定制多种风格写真

不久前,一群来自小红书的 95 后工程师联合北大团队发布了开源项目「InstantID」,只需上传一张照片,这款 AI 写真神器就能轻松定制多种风格的 AI 写真,告别繁琐修图。 InstantID 一经发布就引起了广泛关注,GitHub 收藏量…

【LeetCode算法】28. 找出字符串中第一个匹配项的下标

提示:此文章仅作为本人记录日常学习使用,若有存在错误或者不严谨得地方欢迎指正。 文章目录 一、题目二、思路三、解决方案四、JAVA截取字符串的常用方法4.1 通过subString()截取字符串* 一、题目 给你两个字符串 haystack 和 needle ,请你在…

如果通过Glide 设置图片圆角

要给图片设置一个圆角,通常方法是在ImageView 标签外添加一个CardView 标签,然后设置圆角值,但是今天遇到一个问题就是 RecyclerView Item 中这样操作的话会遇到这样的一个报错: Cannot call this method while RecyclerView is computing a layout or scrolling androidx.rec…

web前端之sass中的颜色函数、active按钮激活、hover鼠标悬浮、disabled禁用、scss循环、css

MENU 效果图htmlsassscss编译后的css页面css 效果图 注意查看蓝色按钮。 html <div class"box"><button class"btn type_1">按钮</button><button class"btn type_2">按钮</button><button class"btn ty…