Mysql操作——常用指令

本文主讲:常用的SQL指令等等….【重点】

SQL指令——数据库的一般操作【重点】

SQL指令——show——查看所有数据库

指令功能:
1:查看当前连接的服务器所有的数据库信息
2:查看创建数据库的过程

指令示例:

1(查看所有数据库):show databases

2(查看数据库的创建过程):show create database 数据库名

截图:

image-20211011194938794

image-20211011194953090

SQL指令——select——查看当前所在的数据库

功能:查看当前所在的数据库

指令格式:select database();

截图:

image-20211011195019906

SQL指令——create——创建数据库

功能:创建数据库

指令:

1(创建不指定编码的数据库):create database 数据库名;
2(创建指定编码的字符集):create database 数据库名 charset = 字符集;

指令示例:

1:create database name1; 表示创建一个名为name1不指定编码的数据库

2:create database name1 charset = utf8; 表示创建一个名为name1编码为utf8的数据库

截图:

image-20211011195036096

SQL指令——drop——删除数据库

功能:删除指定MySQL数据库

指令:drop database 数据库名

示例:drop database python_ceshi1

截图:

image-20211011195048859

SQL指令——use——选择指定数据库

功能:选择指定的数据库

指令:use 数据库名

指令示例:use python_database

截图:

image-20211011195058818

总结:
1:在使用 create 创建数据库的时候建议加上charset = utf8,要不然数据库容易出现乱码
2:最常用的数据库操作指令 show 、create 、use

SQL指令——表的创建【重点】

SQL指令——create 在数据库内创建数据表

功能:在指定的数据库内创建数据表,用来存放数据

1
2
3
4
5
6
指令语法:create table 表名(
字段1的名称 字段1的数据类型 字段1的约束条件 ,
字段2的名称 字段2的数据类型 字段2的约束条件 ,
字段3的名称 字段3的数据类型 字段3的约束条件

);

注意事项:

1:每一个字段类型创建完毕后,都要在后面加上,最后一个字段除外

2:字段的约束条件很多,可以是不为空(not null)、自动增长(auto_increment)、无符号(unsight)、主键约束(primary key)等等

3:创建表时不要忘记最后括号外面的;号

4:id字段(数据表第一个字段)一般约束为 (primary key主键) 与 (auto_increment自动增长)

5:字段的约束条件可不写

快速代码体验:

image-20211011195129435

SQL指令——show查看数据库内的数据表

功能:查看指定数据库内的所有数据表

语法:show tables;

快速代码体验

image-20211011195142293

SQL指令——desc查看一个数据表内的所有字段信息

功能:查看指定数据表内的所有字段信息

语法:desc 数据表名;

快速代码体验

image-20211011195153531

SQL指令——show create table 查看一个数据表的创建过程

功能:查看指定数据表的创建过程

语法:

1:show create table 数据表名 ; (虚线模式查看建表过程,较乱)
2:show create table 数据表名 \G ; (星号模式查看建表过程)

快速代码体验:

image-20211011195209887

image-20211011195216854

SQL指令——drop 删除指定的数据表

功能:删除指定的数据表

语法:drop table 数据表名

快速代码体验

image-20211011195226698

SQL指令——清除表内数据【重点】

如何清除表内的数据

语法:truncate table 数据表名

SQL指令——表结构(字段)的修改【重点】

前言:本节课适用场景

答:在创建好一个数据表情况下,发现这个数据表内的结构不满足条件,这时我们就要对这个数据表进行修改!

本节必须注意:一个项目运行起来之后,我们就要谨慎修改数据表内的字段!否则会造成项目的瘫痪,那有什么办法可以避免修改数据库字段的情况呢?

答:在创建数据表时,多创建几个空闲字段!

目标:

1:掌握SQL指令——add 向数据表内添加字段
2:掌握SQL指令——change 修改数据表内字段的名称
3:掌握SQL指令——modify 修改数据表内字段类型
4:掌握SQL指令——drop 删除数据表内某一个字段

SQL指令——add 向数据表内添加字段

功能:向指定数据表内添加一个新的字段

语法:alter table 表名 add 新字段名 字段类型 约束条件;

注意事项:在添加字段时约束条件可有可无

快速代码体验

image-20211011195257504

SQL指令——change 修改数据表内字段的名称

功能:修改指定数据表内指定字段的名称

语法:alter table 表名 change 原字段名 新字段名 新字段类型 约束条件;

快速代码体验

image-20211011195308611

SQL指令——modify 修改数据表内字段类型

功能:修改指定数据表内的指定字段的数据类型

语法:alter table 表名 modify 字段名 新的数据类型 约束条件

注意事项:约束条件可不写

快速代码体验

image-20211011195319203

SQL指令——drop 删除数据表内某一个字段

功能:删除指定数据表内的指定字段

语法:alter table 表名 drop 字段名

快速代码体验

image-20211011195328433

SQL指令——数据表内数据的增删改查【重点】

SQL指令——select 查看数据表内字段的数据

功能:查看数据表内字段的数据信息

语法:

1:select * from 数据表名 ; (表示查看数据表内所有字段的数据信息)

2:select id ,name from 数据表名; (表示查看数据表内id和name字段的所有信息)

3:select id as “编号”,name as "姓名" from 数据表名 ; (表示查询id与name字段的数据,以id别名编号与name别名姓名显示出来!!!)

4:select id “编号”,name “姓名” from 数据表名;(表示查询id与name字段的数据,以id别名编号与name别名姓名显示出来!!!)注意: id与name后面的空格类似于as的功能

5:select * from 数据表名 where id = 1; (表示查看id为1那个记录的所有字段的信息)

注意事项:

1:select id ,name from 数据表名; 这样查出来的数据 id字段数据在 name字段数据前面显示

2:查询字段的数据信息,如果一个数据表内没有数据,查询为空

快速代码体验

字段有数据查询全部

image-20211011195406050

字段有数据查询全部

image-20211011195429410

有数据查询指定别名字段数据

image-20211011195439947

SQL指令——insert 向数据表内增加数据

功能:向指定数据表内添加数据

语法:

1:insert into 数据表名 value(字段1的值,字段2的值…….) 【表示向数据表内添加所有字段的一行(记录)数据信息】

2:insert into 数据表名 value (字段1的值,字段2的值…),(字段1的值,字段2的值…) 【表示向数据表内添加所有字段的两行数据信息】

3:insert into 数据表名(id,name)value(id字段的值,name字段的值…) 【表示向数据表内添加id字段与name字段的一行信息】

注意事项:

1:如果某个字段设置为自动增长,那么在向这个字段添加数据时可为空(null),系统会实现数据自动增长

2:书写增加数据语句时可以写 value 也可以写 values

快速代码体验:

向数据表内添加多个记录(多行)数据

image-20211011195504599

向指定字段添加数据

image-20211011195511467

SQL指令——update 更改数据表内的数据

功能:对数据表内的已存在数据进行更改更新

语法:

1:update 数据表名 set 字段名 = 更改值 (表示对数据表内某个字段的所有数据【全部记录】全部更改)

2:update 数据表名 set 字段名 = 更改值 where id = 1 (表示对数据表内id等于1的记录的某个字段的数据进行更改)

3:update 数据表名 set 字段名1 = 更改值1,字段名2 = 更改值2 (表示更改多个字段的所有数据)

快速代码体验

更改一个字段的所有数据

image-20211011195534216

更改指定一个记录的数据

image-20211011195540970

SQL指令——delete 删除数据表中的指定数据

功能:物理删除指定数据表内的指定数据

语法:

1:delete from 数据表名 (表示删除数据表内的所有数据)

2:delete from 数据表名 where id = 1 (表示删除数据表内 id字段等于 1 那个记录的数据)

注意事项:delete指令是物理删除数据,不能恢复,我们可以选择逻辑删除从而更好地保存数据

快速代码体验

删除数据表内所有数据

image-20211011195556152

删除指定条件(指定记录)的数据

image-20211011195602737

逻辑删除数据表内的数据

实现方法:

第一步:向数据表内添加一个新的字段 字段名为 is_delete 字段属性为bit 字段默认值为 0

第二步:将需要删除的一个记录(一行)数据的 is_delete那个字段数据默认值更改为 1

第三步:查找is_delete 那个字段值为0的所有记录信息,默认值为0的那个记录不出现 就实现了逻辑删除

实现代码:

1.添加新字段:alter table 数据表名 add is_delete bit default 0 ;

2.更给默认值: update 数据表名 set is_delect default = 1 where id = 2;

3.查找数据:select * from 数据表名 where is_delete = 0 ;

注意事项:
1:新建一个字段名为 is_delete的字段而不是 is_delect的字段(截图创建的就是错误的)

2:创建is_delete字段时,字段的类型为bit,且默认值为0

3:bit数据类型只能存放两个值即0与1

快速代码体验

image-20211011195700792

SQL指令——数据库的备份与恢复【重点】

在Linux终端将指定数据库备份(导出)为SQL文件

功能:将数据库导出到计算机磁盘中(后缀为sql的文件)

导出语法: mysqldump -u 用户名 -p 数据库名 > 数据库文件名.sql

示例: mysqldump -u root -p python_ceshi1 > python_ceshi2.sql

快速代码体验

image-20211011195716350

在Linux终端将SQL文件导入到创建好的数据库中,以实现恢复数据库数据

功能:将后缀为SQL文件导入创建好的数据库中,实现恢复数据库数据(数据表)功能

导入语法:mysql -u 用户名 -p 数据库名 < 后缀为SQL的文件

示例:mysql -u root -p python_ceshi < python_ceshi2.sql (表示将python_ceshi2.sql脚本文件导入到名为python_ceshi这个数据库中)

注意事项:因意外原因造成数据库删除,这是我们要新建一个同名的数据库,然后再把后缀为sql的备份文件导入才会成功,否则导入失败!

快速代码体验

image-20211011195734526

未完待续….