【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.mfbz.cn/a/602024.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

抖音小店是什么?为什么要去做呢?这几点原因告诉你真相!

大家好,我是电商小V 抖音小店就是抖音平台进军电商行业的踏板,也是抖音内的电商购物业务,咱们就可以理解成可以在抖音平台上面卖货,和淘宝,多多店铺,线下超市都是一个性质的,但是运营的模式不同…

虚拟机镜像文件qcow2格式转vmdk

一、在esxi上虚拟机导出qcow2镜像文件 1、卸载数据盘、网卡 2、登录虚拟机所在物理服务器,查找系统盘名为vm-101-disk-0的文件位置 find / -name "vm-101-disk-0"使用命令导出qcow2镜像(进度条走完就完成了): qemu…

ROS服务器通信

目录 一、角色 二、流程 注意 三、例子描述 四、srv文件 编译配置文件 vscode配置 五、Server.cpp编写例子 编写CMakeList 六、观察server的效果 七、Client编写例子 编写CMakeList 八、观察Client的结果 九、Client优化(动态输入) 了解argc…

linux之ssh

SSH远程连接协议 SSH远程管理 定义 SSH(Secure Shell )是一种安全通道协议,主要用来实现字符界面的远程的登录、远程复制等功能。 SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具…

docker容器技术篇:rancher管理平台部署kubernetes集群

rancher管理平台部署kubernetes集群 Rancher 是一个 Kubernetes 管理工具,让你能在任何地方和任何提供商上部署和运行集群。 Rancher 可以创建来自 Kubernetes 托管服务提供商的集群,创建节点并安装 Kubernetes,或者导入在任何地方运行的现…

CAN报文总线仲裁机制

对于标准帧而言,有11位的标识符,也就是报文的ID。报文的ID值越小,优先级越高。如果有两个以上的ECU同时发送CAN报文,ID值小的报文可以发送成功。总线仲裁机制是一种非破坏性仲裁,是一种既不会造成已发送数据的延迟&…

矾液回收矾树脂

五氧化二钒溶液提取矾树脂A-654的过程,是一个涉及五氧化二钒提纯的重要步骤。我们将详细介绍这一提取过程。 首先,我们需要了解五氧化二钒和净化矾树脂A-654的基本性质。五氧化二钒是一种无机化合物, 净化矾树脂A-654 是一款加载了复杂的多胺…

el-tabs 借助 sortablejs 实现 tab 拖拽功能

sortable.js 是一款 js 拖拽库,支持ie9及以上版本ie浏览器和现代浏览器,也可以运行在移动触摸设备中。不依赖jQuery。支持 Meteor、AngularJS、React、Vue、Knockout框架和任何CSS库,如Bootstrap、Element UI。你可以用来拖拽div、table等元素…

终端安全管理措施有哪些?好用终端安全管理软件推荐(建议收藏)

在当今数字化时代,信息安全已成为企业运营不可或缺的一部分。其中,终端安全为您详细介绍,并推荐几款好用的终端安全管理软件,帮助您更好地保护企业信息安全。管理是确保企业信息安全的重要环节。那么,终端安全管理措施…

基于 Wireshark 分析 ICMP 协议

一、ICMP 协议 ICMP(Internet Control Message Protocol)即互联网控制报文协议,是TCP/IP协议簇的一个子协议。它主要用于在IP主机、路由器之间传递控制消息,这些消息涉及网络是否通畅、主机是否可达、路由是否可用等关于网络本身…

Quartz怎么简单创建一个定时执行的任务

1.安装Quartz包 2.编写Job任务 继承 IJob编辑自定义任务 3.调用job,以指定时间策略执行 定时600s执行一次 StdSchedulerFactory factory new StdSchedulerFactory(); IScheduler scheduler await factory.GetScheduler(); await scheduler.Start();// 定义…

2024年营销技术远景图发布:14,106种营销技术产品(同比增长27.8%)

每年五月的第一个星期二(美国东部时间),Scott Brinker设定为Martech Day,以此来庆祝营销技术行业和所有有才华的营销技术专家和营销运营专业人士的工作,「为你们在开拓这片荒野所做的一切而欢呼!」 同时&a…

解决硬盘灯不停的闪硬盘不停的读cpu占用率高的Microsoft Windows Search

可能你发现了,你的硬盘灯一直亮着,为什么??可能你发现了,你的CPU占用率一直居高不下,为什么?也许就是因为Microsoft Windows Search这个进程 一、windowsSearch的罪证 SearchIndexer和Search…

GWO-CNN|多输入回归预测|灰狼算法优化卷积神经网络|Matlab

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 四、完整程序下载: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台编译&am…

vmware虚拟机内删除文件后宿主机空间不释放

问题描述 linux下,vmware内虚拟机删除文件,宿主机空间不释放,D盘快满了 解决方法 通过vmware-toolbox进行空间回收 安装 在虚拟机内操作 yum install -y open-vm-tools 清理 在虚拟机内操作 #查看磁盘的挂载点 sudo /usr/bin/vmware…

[C++核心编程-04]----C++类和对象之封装

目录 引言 正文 01-类和对象简介 02-封装简介 03-封装的意义 04-封装案例之设计学生类 05-封装的权限控制 06-struct和class的区别 07-成员属性设置为私有 08-封装案例1-设计立方体 09-封装案例2-判断点和圆的关系 总结 引言 在C中,…

力扣70 爬楼梯 C语言 动态规划 递归

题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示例 2…

天诚人脸物联网锁+网约房管理系统为智慧酒店、民宿管理赋能

随着互联网技术的发展,“网约房”逐渐步入受众视野,在改变旅客入住模式和生活方式的同时,为旅客旅游住宿创造了新的选择,也为拥有冗余房间资源的房东提供了新的营收路径。但是,网约房的管理问题频发,需要数…

栈的2道面试题【有效的括号】【用栈实现队列】

栈的面试题: 1.有效的括号 题目: 有效的括号 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合…

CAN报文中的信号解析

ECU发送的一帧CAN报文中是有多个信号的。信号在报文的数据域中,数据域中可以有多个信号。协议规范一帧CAN报文数据域最多有8个字节,企业中一般都设计为所有的CAN报文都是8字节。8个字节(B)换算成比特(bit)就…