MYSQL第一篇(基础知识)

前言,以下学习数据库基本操作都是在Navicat可视化工具中进行的,相比传统的控制台,效果更好,另外本文是基于《MYSQL从入门到精通》这本书进行学习的,以下是学习记录。

一、数据库操作

1.1、认识数据库

数据库系统由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)和软件平台(软件)5部分构成的运行实体。

数据库常用对象:


  1. 表是包含数据库中所有数据的数据库对象,由行和列组成,用于组织和存储数据。
  2. 字段
    表中每列称为一个字段,字段具有自己的属性,如字段类型、字段大小等。其中,字段类型是字段中最重要的属性,它决定了字段能够存储哪些数据。(字符型、文本型、数值型、逻辑型、日期时间型)
  3. 索引
    索引的目的是为了快速的找到所需的数据。
  4. 视图
    视图是从一张或多张表中导出的表(也叫虚拟表),是用户查看数据表中数据的一种方式。
  5. 存储过程
    是一组为了完成特定功能的SQL语句集合(包含查询、插入、删除和更新等操作)

1.2、创建数据库

一般来说数据库的命令是用大写的。
1.2.1 通过create database语句创建一个名为db_admin的数据库

create database db_admin;   

在这里插入图片描述
1.2.2 在创建数据库的同时指定字符集为GBK,这一作用是为了方便输入中文

CREATE DATABASE db_test CHARACTER SET = GBK;

在这里插入图片描述
1.2.3 创建数据库前判断是否存在同名数据库
如果创建一个已存在的数据库,那么会报错。
在这里插入图片描述
使用IF NOT EXISTS选项来实现在创建数据库前判断数据库名称是否存在,只有不存在才会创建。

CREATE DATABASE IF NOT EXISTS db_admin;

1.3、查看数据库

使用show命令可以查看MYSQL服务器中所有的数据库信息

SHOW DATABASES;

在这里插入图片描述

1.4、选择数据库

USE语句可以实现选择一个数据库,使其成为当前数据库。只有使用USE语句指定某个数据库为当前数据库后,才能对其中的数据对象进行操作

USE db_admin;

1.5、修改数据库

创建了一个数据库之后,还可以对其进行修改,这里的修改指的是修改被创建的数据库的相关参数,不能修改其名字。

修改db_admin数据库的字符集为GBK,修改字符集的校对规则为简体中文

ALTER DATABASE db_admin
DEFAULT CHARACTER SET gbk
DEFAULT COLLATE gbk_chinese_ci;

1.6、删除数据库

使用DROP DATABASE删除现有的数据库,注意一旦删除了,该数据库的表,以及表中的数据都会被永久删除。

DROP DATABASE db_admin;

二、操作数据表

2.1、创建数据表

创建数据表使用CREATE TABLE语句。语法如下:
具体的参数说明在这就不给出了。

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据表名
[(create_definition,...)] [table_options] [select_statement]

例2.1 使用CREATE TABLE语句在MYSQL数据库db_admin中创建一个名为tb_admin的数据表,该表包括id、user、password和createtime等字段,具体代码如下:
CREATE TABLE 数据表名(列名1 属性,列名2 属性…)

USE db_admin;
CREATE TABLE tb_admin(
id int auto_increment primary key,
user VARCHAR(30) NOT NULL,
password VARCHAR(30) NOT NULL,
createtime datetime);

在这里插入图片描述

2.2、查看表结构

对于一个创建成功的数据表,可以使用SHOW COLUMNS语句或者DESCRIBE语句查看指定数据表的表结构。 (COLUMNS是列的意思)
2.2.1 使用SHOW COLUMNS语句查看
基本语法格式:

SHOW [FULL] COLUMNS FROM 数据表名 [FROM 数据库名]  或
SHOW [FULL] COLUMNS FROM 数据表名.数据库名; 

下图是使用 SHOW COLUMNS FROM tb_admin FROM db_admin;命令的演示结果

在这里插入图片描述
下图是使用 DESC tb_admin user;命令的演示结果
在这里插入图片描述

2.3、修改表结构

修改表结构使用ALERT TABLE语句。 (增加或删除字段、修改字段名称或字段类型、设置取消主键外键、设置取消索引以及修改表的注释等操作)

2.3.1 添加新字段及修改字段定义
ti俺家一个新的字段email,类型为varchar(50),NOT NULL,将字段user的类型由varchar(30)改为varchar(40)
例2.3.1:

补充: varchar是一种比char更加灵活的数据类型,同样用于表示字符数据,只要长度小于该最大值的字符串都可以被保存在该数据类型中。

(1) 选择数据库db_admin,具体代码如下:

USE db_admin;

(2)编写SQL语句,实现向数据表tb_admin中添加一个新字段,并且修改字段user的类型,具体代码如下:

ALTER TABLE tb_admin ADD email VARCHAR(50) NOT NULL,
MODIFY user VARCHAR(40);

(3)通过DESC命令查看tb_user的表结构,以查看表结构是否被修改,具体代码如下:

DESC tb_admin;

可以发现,user的数据类型已经被修改了
在这里插入图片描述
2.3.2 修改字段名
在MYSQL的ALTER TABLE语句中,使用CHANGE [COLUMN] old_col_name create_definition子句可以修改字段名或者字段类型。

例2.3.2: 将数据表tb_admin的字段名user修改为username,具体代码如下:

ALTER TABLE db_admin.tb_admin
CHANGE COLUMN user username VARCHAR(30) NULL DEFAULT NULL;
//使用DESC tb_admin;可再次查看表中的结构是否被修改了

2.3.3 删除字段
在MYSQL的ALTER TABLE语句中,使用DROP [COLUMN] col_name子句可以删除指定字段。
例2.3.3: 实现将数据表tb_admin中的字段email删除,具体代码如下:

ALTER TABLE tb_admin DROP email;

2.3.4 修改表名
在MYSQL的ALTER TABLE语句中,使用RENAME [AS] new_tbl_name子句可以删除指定字段。
例2.3.3: 实现将数据表db_admin中的tb_admin数据表改名为tbnew_admin,具体代码如下:

ALTER TABLE tb_admin RENAME AS tbnew_admin;

2.4、重命名表

重命名数据表可以使用RENAME TABLE语句来实现,基本语法格式如下:

RENAME TABLE 数据表名1 TO 数据表名2
//该语句可以同时对多个数据表进行重命名,多个表之间以逗号  ,  分隔

虽然2.3.4中也提到了修改表名的方法,但是这个功能更强大。
例2.4: 对数据表tbnew_admin重命名为tb_user.

RENAME TABLE tbnew_admin TO tb_user;
DESC tb_user;

2.5、复制表

在一张已经存在的数据表的基础上创建一份该表的备份,也就是复制表。这种用法的语法格式如下:

CREATE TABLE [IF NOT EXISTS] 数据表名
	{
    
    LIKE 源数据表名 | (LIKE 源数据表名)}
//参数说明
(1)  [IF NOT EXISTS]:  可选项,如果使用该子句,表示当要创建的数据表名不存在时,才会创建。如果不使用该子句,当要创建的数据表名存在时,将出现错误。
(2)  数据表名:  表示新创建的数据表的名字
(3)  {
    
    LIKE 源数据表名 | (LIKE 源数据表名)}: 必选项,用于指定依照哪个数据表来创建新表。中间那个  | 表示或,用前者或后者都行

例2.5: 在数据库db_admin中创建一份数据表 tb_user的备份tb_userNew。具体代码如下:

在这之前,先让我们在 数据表tb_user中插入一条数据,这样做的目的是为了观察复制命令。
在这里插入图片描述
一开始是没数据的,让我们现在插一条数据进去。

//使用INSERT ... VALUES语句实现向数据表tb_user中插入一条完整的数据
INSERT INTO tb_user VALUES(1,'root','123456','2022-05-28 20:52');  

//查看数据表tb_user中的数据
SELECT * FROM tb_user;

在这里插入图片描述
好,现在让我们复制一张tb_user数据表,让新表的名字为tb_userNew

USE db_admin;
CREATE TABLE tb_userNew
	LIKE tb_user;

SELECT * FROM tb_userNew;   //查看数据表tb_userNew中的数据

会发现表中的字段什么的都和tb_user是一样的,但是表里面的内容并没有被复制进来。
在这里插入图片描述

如果想要连同表中的数据一起被复制进来,那么需要使用如下代码来实现:

CREATE TABLE tb_userNew2
	AS SELECT * FROM tb_user;
	
SELECT * FROM tb_userNew2;   //查看数据表tb_userNew2中的数据

在这里插入图片描述

2.6、删除表

删除数据表的操作很简单,同删除数据库的操作类似,使用DROP TABLE 语句即可实现。

DROP TABLE [IF EXISTS] 数据表名;

参数1:[IF EXISTS]  可选项
参数2: 数据表名   用于指定要删除的表

例2.6: 删除上一节复制生成的tb_userNew2数据表,操作如下:
选中数据表所在的数据库db_admin,然后执行删除命令

USE db_admin;
DROP TABLE tb_userNew2;

基础知识的部分就已经结束了,为了避免文章过于冗长,核心技术将在第二篇写到。

喜欢的小伙伴可以点赞收藏关注走一波,您的鼓励就是对我最大的支持,谢谢!

猜你喜欢

转载自blog.csdn.net/qq_40077565/article/details/125020236