前言,以下学习数据库基本操作都是在Navicat可视化工具中进行的,相比传统的控制台,效果更好,另外本文是基于《MYSQL从入门到精通》这本书进行学习的,以下是学习记录。
一、数据库操作
1.1、认识数据库
数据库系统由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)和软件平台(软件)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;
基础知识的部分就已经结束了,为了避免文章过于冗长,核心技术将在第二篇写到。
喜欢的小伙伴可以点赞收藏关注走一波,您的鼓励就是对我最大的支持,谢谢!
|