【MySQL】数据库和表的操作

这篇具有很好参考价值的文章主要介绍了【MySQL】数据库和表的操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、数据库的操作

1. 创建数据库

语法:CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...]

	create_specification:
	[DEFAULT] CHARACTER SET charset_name
	[DEFAULT] COLLATE collation_name

说明:

  • 大写的表示关键字,mysql 不区分大小写,所以也可以用小写
  • [] 是可选项
  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE: 指定数据库字符集的校验规则

假设现在我们现在需要创建一个名为 d1 的数据库,首先我们先查看一下数据库,查看数据库:show databases;

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

下面开始创建 d1 数据库:create database d1;

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

如上,d1 数据库就创建好了。

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

  • 创建一个使用 utf8 字符集的 d2 数据库:create database d2 charset=utf8;

  • 创建一个使用 utf8 字符集,并带校对规则的 d3 数据库:create database d3 charset=utf8 collate utf8_general_ci;

创建好如下:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

我们在前面也说过,创建一个数据库其实就是在 Linux 下创建一个目录,这里就不再重复介绍了。

2. 字符集和校验规则

当我们创建数据库的时候,有两个编码集:

  1. 数据库编码集 - - - 数据库未来存储数据所采用的编码集;
  2. 数据库校验集 - - - 支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据所采用的编码格式;

所以数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的。

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

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

		show variables like 'character_set_database';  # 默认字符集
		show variables like 'collation_database';      # 检验规则

如下:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

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

		show charset;

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

		show collation;

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

  • 不区分大小写

创建一个数据库,校验规则使用 utf8_ general_ ci (不区分大小写,即在检验的时候不严格匹配,不对大小写字母进行区分)

		create database test1 collate utf8_general_ci;

随后我们需要使用这个数据库:use test1

然后我们为这个数据库创建一张表,并插入一些数据,创建表和插入的语法我们先不做介绍,后面再介绍;如下:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

接下来我们对这个表的插入结果进行查看,注意,该表的校验方法是不进行区分大小写进行匹配的;所以我们先查看整个表的情况:select * from for_test;

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

接下来我们筛选出 a 这个字符:select * from for_test where name='a';

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

我们可以看到,数据库在匹配 a 这个字符的时候不进行大小写区分,无论大写还是小写都给我们显示出来了。

  • 区分大小写

创建一个数据库,校验规则使用 utf8_ bin (区分大小写,校验时按照严格匹配的方式,区分大小写)

我们按照上面的方式进行创建,如下图:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

接下来我们查看该表的数据:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

接下来我们筛选出 a 字符:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

如上图,因为该数据库的检验规则为 utf8_ bin,进行区分大小写的方式进行严格匹配,所以筛选出来的字符 a 就是字符 a.

3. 操纵数据库

(1)查看数据库

		show databases;

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

(2)显示创建的语句

		show create database 数据库名;

例如:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

说明:

  • 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 数据库的字符集改成 gbkalter database test1 charset=gbk;

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

如上图 test1 数据库的字符集就修改成了 gbk.

4. 数据库删除

语法:

		DROP DATABASE [IF EXISTS] db_ name;

例如我们删掉我们前面建的 test2 数据库:drop database test2;

如下:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

如上图,test2 数据库就被删除了。

执行删除之后的结果:

  • 数据库内部看不到对应的数据库
  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

5. 备份和恢复

(1)备份数据库

在备份数据库之前我们先需要退出 mysql.

语法:

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

其中密码部分我们可以不在命令行输入,当我们执行这条命令的时候命令行会提示我们输入。

例如我们把 test1 库备份到文件中:mysqldump -P3306 -uroot -p -B test1 > /home/lmy/test1.sql

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

这时,可以打开看看 test1.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。

接下来我们进入 mysql 中,把这个数据库删掉:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

如上图,test1 库就被我们删除了,接下来我们进行还原。

(2)还原

语法:

		source 数据库备份的文件路径;

我们在 mysql 中输入指令:source /home/lmy/test1.sql; 即可在 mysql 中恢复 test1 库:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

(3)拓展

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

		mysqldump -uroot -p 数据库名 表名1 表名2 > 备份文件路径

如果同时备份多个数据库,如下:

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

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

6. 查看连接情况

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

语法:

		show processlist;

例如:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

二、表的操作

1. 创建表

语法:

		CREATE TABLE table_name (
			field1 datatype,
			field2 datatype,
			field3 datatype
		) character set 字符集 collate 校验规则 engine 存储引擎;

在创建表之前需要指定数据库,即使用:use 数据库; 为该数据库创建表。

注意,数据库的数据类型我们暂时先不介绍,后续会介绍。

说明:

  • field 表示列名
  • datatype 表示列的类型
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

例如我们创建一个 users 表,里面存储用户的 id用户名密码生日

		create table users(
		    -> id int,
		    -> name varchar(20) comment '用户名',
		    -> password char(20) comment '密码',
		    -> birther date comment '生日'
		    -> ) character set utf8 engine MyISAM;

说明:不同的存储引擎,创建表的文件不一样。users 表存储引擎是 MyISAM ,在数据库目录中有三个不同的文件,我们可以进入该目录查看:cd /var/lib/mysql/d1,分别是:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

其中,它们分别表示:

  • users.frm:表结构
  • users.MYD:表数据
  • users.MYI:表索引

db.opt 则是该数据库对应的字符集和检验规则。

2. 查看表

上面我们已经创建好了一张 users 表,此时我们可以查看该数据库有哪些表:show tables;

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

3. 查看表结构

语法:desc 表明;

例如查看 users 表的结构:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

以上就是表的结构中的介绍,我们后面会详细介绍每一列的功能的。

4. 修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等;这时我们就需要修改表。

		ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
		datatype]...);  # 添加
		
		ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
		datatype]...);  # 修改
		
		ALTER TABLE tablename DROP (column);  # 删除

例如:

先在 users 表添加两条记录:

	mysql> insert into users values(1, 'a', 'b', '2000-01-01'), 
	    -> (2, 'c', 'd', '2000-01-02');

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

  • 在 users 表添加一个字段,用于保存图片路径:alter table users add assets varchar(100) comment '图片路径' after birther;

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

插入新字段后,我们查看原表的数据,对原来表中的数据没有影响:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

  • 修改 name,将其长度改成 60: alter table users modify name varchar(60);

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

  • 删除 password 列: alter table users drop password;

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

我们再查看表中的数据,发现 password 这一列的数据都不见了:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

所以删除字段一定要小心,删除字段及其对应的列数据都没了。

  • 修改表名为 employee: alter table users rename to employee; ,其中 to 可以省略

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

  • 将 name 列修改为 xingming: alter table employee change name xingming varchar(60); ,新字段需要完整定义

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

5. 删除表

语法:DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

例如:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos

再次查看:

【MySQL】数据库和表的操作,MySQL,数据库,mysql,oracle,linux,centos文章来源地址https://www.toymoban.com/news/detail-761342.html

到了这里,关于【MySQL】数据库和表的操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在MySQL中查看数据库和表的数据大小

    在管理和维护MySQL数据库时,了解数据库和表的数据大小是非常重要的。这可以帮助您监控数据库的增长、优化性能以及规划存储需求。本博客将介绍如何使用SQL查询来查看MySQL数据库和表的数据大小。 首先,我们将学习如何查看整个MySQL数据库的总数据大小,包括所有数据库

    2024年02月09日
    浏览(75)
  • 数据库和表的操作

    语法: 说明: 大写的表示 [] 是可选项 CHARACTER SET: 指定数据库采用的字符集 COLLATE: 指定数据库字符集的校验规则 我们看到创建一个目录后,Linux的/var/lib/mysql下也会出现对应的目录。 我们也可以在创建数据库时进行判断,如果当前数据库已存在,那么就不再创建。 我

    2024年01月22日
    浏览(41)
  • 新手快速学会使用DDL对数据库和表的操作

    SQL是一种操作关系型数据库的结构化查询语言。今天这篇文章将详细讲述数据定义语言DDL对数据库和表的相关操作。 首先要学习的是使用DDL来对数据库进行操作,和以往一样,对数据进行操作时,我们主要是对数据进行增删改查,同样,我们使用DDL操作数据库也主要是对数据

    2024年02月07日
    浏览(40)
  • MySQL数据库 - 表的操作

    目录 一、创建表 二、创建表案例 1、显示当前使用的数据库名 2、创建表  2.1 MyISAM存储引擎表 2.2 InnoDB存储引擎表 三、查看表结构  四、修改表 1、新增列   2、修改列类型 3、修改列名 4、修改表名  5、删除列   五、删除表 表的操作至少会涉及如下两类SQL语句: • DDL(

    2024年02月13日
    浏览(41)
  • MySQL 数据库表的基本操作

    在数据库中,数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的。每一行代表一条唯一的记录,每一列代表记录中的一个域。 通常在创建表时,应该使用语句USE 数据库名,指定在哪个

    2024年02月12日
    浏览(81)
  • MySQL数据库关于表的一系列操作

    varchar 动态字符串类型(最长255位),可以根据实际长度来动态分配空间,例如:varchar(100) char 定长字符串(最长255位),存储空间是固定的,例如:char(10) int 整数型(最长11位) long 长整型 float 单精度 double 双精度 date 短日期,只包括年月日 datetime 长日期,包括年月日时分

    2024年02月15日
    浏览(43)
  • MySQL | 数据库的管理和操作【表的增删改查】

    第一章:MySQL | 数据库的管理和操作(基本介绍) 第二章:MySQL | 数据库的基本操作和表的基本操作 第三章: MySQL | 数据库的表的增删改查 第四章:MySQL | 数据库的表的增删改查【进阶】【万字详解】 CRUD : Create, Retrieve,Update,Delete 新增数据 查询数据 修改数据 删除数据 注释:

    2024年02月08日
    浏览(54)
  • ②【MySQL表操作】 数据库表的创建、查询、修改、删除

    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 数据库表中的数据类型 : 数值类型: TINYINT :小整数 SMALLINT :大整数 MEDIUMINT :大整数,范围大于SMALLINT

    2024年02月06日
    浏览(63)
  • 【数据库】MySQL数据约束和表关系详解

    目录 1.数据库约束 1.1约束类型 1.2NULL约束 1.3UNIQUE:唯一约束 1.4DEFAULT:默认值约束 1.5PRIMARY:主键约束 1.6FOREIGH KEY:外键约束 2.表的关系 2.1一对一 2.2一对多 2.3多对多 数据库中的数据保存在数据表中,在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候

    2024年02月04日
    浏览(49)
  • VS2022连接数据库MySQL,并进行基本的表的操作

    1.连接MYSQL 2.添加MySQL的引用 环境配置 测试代码 在vs里面运行sql语句 启动vs2022,在菜单栏里面选择视图,打开服务器资源管理器   右键数据连接,点击添加连接 然后发现有MySQL选项,进入里面配置数据库的相关信息即可 配置信息 1.server name输入MySQL的IP地址 localhost即本地 2.然后

    2024年02月09日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包