mysql数据库实验+cmd界面运行基本操作总结(sql:数据增删改查,表格,视图,备份&恢复)

文章目录

mysql数据库实验——建表准备

tips:在SQL中,所有的命令和关键字以及自定义名称都不区分大小写,但是强烈推荐:关键字部分使用全部大写,自定义名称(数据库名、数据库表名、字段名)用小写字母开头

!!!很牛很🐂的数据库大佬总结:mysql-朱双印博客-第4页 (zsythink.net)

1.dos界面中数据库的登录操作

​ 1.win+R(cmd)进入dos界面

image-20211015150310813

​ 2.进入mysql安装目录中

tips:进入安装目录下首先启动数据库mysql服务:net start 服务名称

服务名称可在本机系统服务中查看(此电脑->管理->服务和应用程序->服务),这里我的是mysql80

#这里解决一个bug

发生意料之外的错误:

image-20211016111740578

baidu+搜索:权限不够,以管理员模式启动cmd

image-20211016113317222

  • 运行mysql -u -root -p命令

  • 输入root用户密码进入数据库服务

    image-20211015150717660

2.数据库及表格创建

(1)利用sql语句创建数据库DBtest

  • CREATE DATABASE DBtest

@更加确切的创建方式(判断是否重名创建,指定字符集,指定校对规则)

CREATE DATABASE [IF NOT EXISTS] <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>] 
[[DEFAULT] COLLATE <校对规则名>];

CREATE DATABASE IF NOT EXISTS DBtest
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_0900_ai_ci;

创建之后利用**show databases**命令查看当前所有数据库

image-20211015155646791

**SHOW CREATE DATABASE**查看数据库的定义声明

image-20211015160055884

(2)表格创建

1.依据本地表格文件DBtest.xls

image-20211015153914867

创建数据库表格

利用sql语句结合表格所考虑到的完整性约束

CREATE TABLE stu_scores(
studentID varchar(10)PRIMARY KEY,/*学号为主码*//*此处引发下面的bug*/
schoolyear varchar(20),
id_course varchar(20)UNIQUE,/*课程号取唯一值*//*后续更改后为主码*/
name_course varchar(30),
nature_course varchar(20),
value_course double,
score_course double,
grade_point double
);

使用show columns from stu_scores语句查看已创建的表格列属性

image-20211015163621554

也可在mysql-front中创建关联数据库dbtest的账号查看表格属性

image-20211015163909701

3.导入数据至数据据库中

  • 要点:

    1.需要在数据库中事先创建好表和表结构,应该和excel的结构一样

    2.先把本地DBtest.xls另存为.csv文件,再将此文文件在记事本中打开,另存为.txt文件

    CSV(逗号分隔值文件格式)_百度百科 (baidu.com)

    3.执行该语句

    LOAD DATA LOCAL INFILE'E:\DBtest.txt' INTO TABLE stu_scores 
    FIELDS TERMINATED BY ','  
    LINES TERMINATED BY '\r\n'
    IGNORE 1 LINES;
    
    

    INFILE后面跟文件路径,

    TERMINATED BY指数据分隔方式,

    LINES TERMINATED BY指行的分隔方式,

    image-20211015213504943

    • windows换行是\r\n,十六进制数值是:0D0A。
      LINUX换行是\n,十六进制数值是:0A

    GNORE 1 LINES忽略第一行(由于txt文件头是对应的excel的表头将其忽略)

**tips:**ctrl+[ 格式化上面段落的格式继承

#这里解决一个bug

在使用这段命令时候报错:ERROR 1148 (42000): The used command is not allowed with this MySQL version

image-20211015193301465

一番搜索:

相关解决方案1

相关解决方案2

tips😥点击链接跳转要按住ctrl

原因分析

根据官方的解释是mysql在编译的时候默认把local-infile的参数设为0,就是关闭了从本地load的功能,所以如果需要使用只能自己打开

  • 很多类似的都是方案一的解决手法,在连接自己的mysql服务时候用此命令启动:mysql -u root --local-infile=1 -p(本机测试无用)

  • 方案二中提供如下方式

  • image-20211015214851041

亲测有用

先使用命令**SHOW GLOBAL VARIABLES LIKE 'local_infile'**查看一下当前==local_infile==状态

image-20211015215307468

不出所料,off

然后使用命令**SET GLOBAL local_infile=true**更改标识

image-20211015215534085

然后再次尝试加载本地DBtest.txt(感觉上应该没问题,但是!)

#这里解决一个bug

image-20211015215957690

跳过了47条记录

使用**SELECT* FROM stu_scores**查询结果如下:

image-20211015220157810

同样学号数据仅仅出现一次

于是联想到前面我们将studentID设置为了主码

PRIMARY KEY:指示某一列为表的主码,是==非空且唯一==的

那么也就可以猜想,加载数据时候读取到一个学号之后,那么后续此学号开头的元组也就全部被过滤掉了

使用命令

ALTER TABLE stu_scores
DROP PRIMARY KEY;

取消主码约束

然后使用**show columns from stu_scores;**

image-20211015222456966

此时studentID已取消主码约束,Key部分未显示任何值

然后清空刚才录入错误的表格
1.truncate table table_name;
2.delete from table_name;
//两者均可但稍有不同

详见:mysql – 清空表中数据 - ma_fighting - 博客园 (cnblogs.com)

这里尤其注意不能用drop语句,drop直接将表删除而不是清空

若使用drop后果如下

image-20211015224112732

再次录入本地DBtest.txt(呜呜~finally)

image-20211015224355782

aaaaaaaaa

get it!!!

通过mysql-front细看如下

image-20211015224531763

成功导入!

#一点小瑕疵更改
  • 第二个学生学号为2,试着将它改为1,看着齐整一点

这里就涉及到数据更新

UPDATE stu_scores
SET studentID='1'
WHERE id_course="4120348171";

image-20211016114246452

修改成功!


基于dbtest.stu_scores的数据库实验

实验一 数据库管理系统(DBMS)实验

1)熟悉DBMS的界面和操作

本次实验采用mysql数据库,结合mysql-front实现,界面及使用已悉知

2)创建数据库和查看数据库属性

上述已创建数据库dbtest

这里扩展一下创建数据库命令

CREATE {
   DATABASE|SCHEMA}[IF NOT EXISTS] dbname [create_specification]
//对于create_specification的解释
create_specification:
[DEFAULT] CHARACTER SET [=] charset_name 
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值