暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MYSQL数据库必须掌握的操作:增、删、改(二)

故里学Java 2020-02-26
329

公众号
公告

    注:本公众号纯属个人公益公众号,不存在任何收费项目,所有的资源都是免费的,请大家尽情放心阅读和获取,有什么问题都可以私信我,大家还可以交个朋友。

资源获取途径:

        1. 加小编微信(xu18370612812)

        2.关注公众号,首页领取资源

文章
介绍

    MYSQL数据库是我们日常开发中最常用的数据库之一,这篇文章介绍MYSQL数据库的常用操作,这些技巧都是我们日常开发中经常用到的,也是每一个后端程序员必须掌握的主要内容:

    1 登陆和退出数据库

    2 数据库操作命令详解

    3 表结构的操作

    4 表数据的操作

文章
正文


MYSQL数据库操作

数据库操作的基本步骤:

  1. 连接数据库 输入用户名和密码.
  2. 对数据库、表结构、表数据进行操作.
  3. 退出数据库.

1 登陆和退出数据库

(1)数据库登陆

# 输入以下命令
# -u 后面是登录的用户名
# -p 后面是登录密码, 如果不填写, 回车之后会提示输入密码
mysql -uroot -p

(2)退出数据库

quit 和 exit

ctrl + d

2 数据库操作

  • 查看所有数据库
show databases;

  • 查看当前使用的数据库
select database();

  • 使用数据库
use 数据库名;

  • 创建数据库
create database 数据库名 charset=utf8;

  • 删除数据库
drop database 数据库名;

3 表结构的操作

  • 查看当前数据库中所有表
show tables;

  • 查看表结构
desc 表名;

  • 创建表结构的语法

    提示 auto_increment表示自动增长

    CREATE TABLE table_name(
    字段名称 数据类型 可选的约束条件,
    column1 datatype contrai,
    column2 datatype,
    column3 datatype,
    .....
    columnN datatype,
    -- 主键说明可以放在字段中单独说明 也可以放在最后统一说明
    PRIMARY KEY(one or more columns)
    );

例:创建班级表

create table classes(
id int unsigned auto_increment primary key not null,
name varchar(10)
);

例:创建学生表

create table students(
id int unsigned primary key auto_increment not null,
name varchar(20) default '',
age tinyint unsigned default 0,
height decimal(5,2),
gender enum('男','女','人妖','保密'),
cls_id int unsigned default 0
)

  • 修改表-添加字段
alter table 表名 add 列名 类型;

例:
alter table students add birthday datetime;

什么时候需要给表新增字段 表已经创建好 但是表中没有需要的字段时

  • 修改表-修改字段:重命名版

在表中已有字段 但是字段名不满足要求 类型或约束满足或者不满足均可。

alter table 表名 change 原名 新名 类型及约束;
例:
alter table students change birthday birth datetime not null;

  • 修改表-修改字段:不重命名版

在表中已有字段 并且字段名也满足要求 但是类型或约束不满足要求

alter table 表名 modify 列名 类型及约束;
例:
alter table students modify birth date not null;

  • 修改表-删除字段

当表中多出一个字段 已经不再需要的时候

alter table 表名 drop 列名;
例:
alter table students drop birthday;

  • 删除表-慎重
drop table 表名;
例:
drop table students;

  • 查看表的创建语句-详细过程
show create table 表名;
例:
show create table classes;

提醒 在开发过程中不需要高频度的操作表结构,所以该章节的目的就是让我们能够在需要的时候根据这些语法写出复合要求的SQL语句即可。

4 表数据的操作

(1)增加数据

INSERT [INTO] 表名 [(字段名1,...)]VALUESVALUE(exprDEFAULT,...),(...),...

  • 说明:主键列是自动增长,但是在全列插入时需要占位,通常使用空值(0或者null) ; 字段默认值 default 来占位,插入成功后以实际数据为准

  • 全列插入:值的顺序与表结构字段的顺序完全一一对应

    此时 字段名列表不用填写

insert into 表名 values (...)
例:
insert into students values(0,’郭靖‘,1,'蒙古','2016-1-2');

  • 部分列插入:值的顺序与给出的列顺序对应

    此时需要根据实际的数据的特点 填写对应字段列表

insert into 表名 (列1,...) values(值1,...)
例:
insert into students(name,hometown,birthday) values('黄蓉','桃花岛','2016-3-2');

  • 上面的语句一次可以向表中插入一行数据,还可以一次性插入多行数据,这样可以减少与数据库的通信
  • 全列多行插入
insert into 表名 values(...),(...)...;
例:
insert into classes values(0,'python1'),(0,'python2');

  • 部分列多行插入
insert into 表名(列1,...) values(值1,...),(值1,...)...;
例:
insert into students(name) values('杨康'),('杨过'),('小龙女');

(2)修改数据

格式: UPDATE 表名 SET 字段1名=expr1DEFAULT[,col2=expr2default] [where 条件判断]

update 表名 set1=值1,列2=值2... where 条件
例:
update students set gender=0,hometown='北京' where id=5;

(3)删除数据

DELETE FROM 表名 [where 条件判断]

delete from 表名 where 条件
例:
delete from students where id=5;

抛出问题: 上面的操作称之为物理删除,一旦删除就不容易恢复。那么删除操作有没有一个类似于回收站一样的功能,能够让用户选择清空或者恢复删除的功能呢?

回答:

其实删除文件进入回收站的本质只是在操作系统的帮助下对文件加上了 某个标记,资源管理器中对含有这种标记的文件不会显示。当从回收站恢复的时候只是移除了加上的标记而已。

  • 逻辑删除,本质就是修改操作
update students set isdelete=1 where id=1;


    本文属于原创,如有疑问请在下面留言,如有转载请标明原作者,版权归本公众号所有,如果您喜欢我写的文章,欢迎关注微信公众号 Python微甜Java略苦我们会不断的为您推出更好的技术文章,如果您觉得本文章对您有所帮助的话,不妨点个赞,您的支持就是我坚持原创的动力。


文章转载自故里学Java,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论