MySQL数据库管理之——增删改查!

Posted 丁CCCCC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据库管理之——增删改查!相关的知识,希望对你有一定的参考价值。

一、概述

  • 数据库
    • 数据表
      • 行(记录):描述一个对象的信息
      • 列(字段):描述对象的一个属性

常用的数据类型

  • int
    • 整型
  • float
    • 单精度浮点4字节32位
  • double
    • 双精度浮点8字节64位
  • char
    • 固定长度的字符类型
  • varchar
    • 可变长度的字符类型
  • text
    • 文本
  • image
    • 图片
  • decimal(5,2)
    • 5个有效长度数字,小数点后面有2位

二、查看数据库结构

2.1 查看服务器的数据库

  • show databases;

不区分大小写,命令结束需加上 “ ; ”
在这里插入图片描述

2.2 查看数据库中包含的表

  • USE 数据库名;
  • SHOW TABLES;

在这里插入图片描述

2.3 查看表的结构

  • USE 数据库名;
  • DESCRIBE [数据库名.]表名;
  • 可以直接缩写成:DESC 表名;

在这里插入图片描述

三、创建及删除数据库和表

3.1 创建新的数据库

  • create database dcc;
    在这里插入图片描述

3.2 创建新表

  • CREATE TABLE cc01 (id int NOT NULL,name char(10) NOT NULL,score decimal(5,2),passwd chhar(48) DEFAULT ‘’,PRIMARY KEY(主键));

    • 主键一般选择能代表唯一性的字段,不允许取空值(NULL),一个表只能有一个主键
  • DESC 表名;
    在这里插入图片描述

3.3 删除数据表

  • DROP TABLE [数据库名.]表名;
    • 没用use进入库,需要加上数据库名

在这里插入图片描述

3.3 删除指定的数据库

  • DROP DATABASE 数据库名;

在这里插入图片描述

四、管理表中的数据

4.1 向数据表中插入新的数据记录

命令

INSERT INTO 表名(字段1,字段2,…)VALUES(字段1的值,2的值…)

测试

  • INSERT INTO cc01(id,name,user,passwd) VALUES(1,‘cc11’,111,PASSWORD(‘123456’));

    • PASSWAORD()表示密码是加密形式显示,不添加则是正常显示
  • INSERT INTO cc01(id,name,user,passwd) VALUES(2,‘cc22’,222,654321);

  • select * from cc01;

    • 查看表的数据内容

在这里插入图片描述

4.2 查询数据记录

select * from cc01;

  • 查看表的数据内容
    在这里插入图片描述
    select id,name,user,passwd from cc01 where id=2;

  • 查看特定行数
    在这里插入图片描述

select * from cc01 limit 3;

  • 只显示前三行
    在这里插入图片描述

select * from cc01 limit 3,2;

  • 只显示第三行后的前两行
    在这里插入图片描述

select id,name from cc01\\G

  • 列表方式竖向显示
    在这里插入图片描述

4.3 修改更新数据表中的数据记录

命令

UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];

模板

  • UPDATE cc01 SET name=‘cc33’,passwd=‘333333’ WHERE id=3;
    • 修改第三行的密码为333333
      在这里插入图片描述

4.4 在数据表中删除指定的数据记录

DELETE FROM 表名 [WHERE 条件表达式];

  • DELETE FROM cc01 WHERE id=3;
    • 删除第三行
      在这里插入图片描述

五、修改表名和表结构

5.1 修改表名

ALTER TABLE 旧表名 RENAME 新表名;

  • alter table cc01 rename ccc01;
    在这里插入图片描述

5.2 扩展表结构(增加字段)

ALTER TABLE 表名 ADD address varchar(50) default ‘地址不详’;

  • alter table ccc01 add address varchar(50) default ‘地址不详’;
    • default ‘地址不详’:表示此字段设置默认
    • 地址不详可以和not null配合使用

在这里插入图片描述

5.3 修改字段(列)名,添加唯一键

ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];

  • alter table ccc01 change user sss varchar(10) unique key;
    • 修改 user 为 sss
    • change 可以修改字段名、数据类型等所有项
      在这里插入图片描述

5.4 删除字段

ALTER TABLE 表名 DROP 字段名;

  • alter table ccc01 drop address;
    • 删除address
      在这里插入图片描述

六、数据表高级操作

6.1 克隆表,将数据表的数据记录生成到新的表中

方法一

  • create table ccc02 like ccc01;
    • 通过like方法,复制ccc01表生成ccc02表
      在这里插入图片描述
  • insert into ccc02 select * from ccc01;
    • 内容复制进
      在这里插入图片描述

方法二

  • create table ccc03 (select * from ccc01);
    • 复制ccc01
  • show create table ccc03\\G
    • 获取数据表的结构,索引等信息
      在这里插入图片描述
  • select * from ccc03;
    在这里插入图片描述

6.2 清空表,删除表内的所有数据

方法一

  • delete from ccc03;
    • DELETE清空表后,返回的结果内有删除的记录条日; DELETE 工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETEFROM删除所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增写入记录
      在这里插入图片描述

方法二

  • truncate table ccc02;
    • TRUNCATE清空表后,没有返回被删除的条目: TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上TRUNCATE会比DELETE清空表快;使用TRUNCATE TABLE 清空表内数据后,ID会从1开始重新记录
      在这里插入图片描述

6.3 创建临时表

  • 临时表创建后,用 show tables 看不到是创建的临时表的,临时表在连接退出后就会销毁
  • 退出之前,可以执行增删改查操作
  • drop table 可手动删除临时表

命令

CREATE TEMPORARY TABLE 表名 (字段1 数据类型,字段2 数据类型[,…][,PRIMARY KEY (主机名)]);

模板

  • create temporary table ccc04 (id int(4) zerofill primary key auto_increment,name varchar(10) not null,cardid int(18) not null unique key,hobby varchar(50));

  • insert into ccc04 values(1,‘ccc’,123456,‘running’);

  • select * from ccc04;
    在这里插入图片描述

  • show tables;
    在这里插入图片描述

  • 退出mysql,重进,临时文件没有

在这里插入图片描述

6.4 创建外键约束,保证数据的完整性和一致性

定义

如果同一个属性字段x在表一中是主键,在表二中不是主键,那字段x称为表二的外键

主键表和外键表

  • 以公共关键字作主键的表为主键表(父表、主表)
  • 以公共关键字作外键的表为外键表(从表、外表)

注意:与外键关联的主表的字段必须设置为主键,要求从表不能是临时表,主从表的字段具备相通的数据类型、字符长度和约束

实操

  • create table dd01 (hobid int(4),hobname varchar(50));

    • 创建主表 dd01
  • create table dd02 (id int(4) primary key auto_increment,name varchar(10),age int(3),hobid int(4));

    • 创建从表 dd02
  • alter table dd01 add constraint PK_hobid primary key (hobid);

    • 为主表dd01 添加一个主键约束,主键名用 PK_ 开头
  • alter table dd02 add constraint FK_hob foreign key (hobid) references dd01 (hobid);

    • 为从表dd02添加外键,并将dd02表的hobid字段和dd01的hobid字段建立外键关联,外键名建议以“FK_”开头

数据插入

  • insert into dd01 values(1,‘runing’);

    • 给主表插入数据
      在这里插入图片描述
  • insert into dd02 values(1,‘dingcong’,18,1);

    • 从表插入数据
      在这里插入图片描述
  • 不能先插入从表,再插入主表,否则无法进行

在这里插入图片描述

  • 主表设置完后,从表可设置
    在这里插入图片描述
    在这里插入图片描述
    数据删除

删除数据记录时,需要先删除从表,才能删除主表
也就是删除主表时必须删除其他与其关联的表

以上是关于MySQL数据库管理之——增删改查!的主要内容,如果未能解决你的问题,请参考以下文章

数据库之增删改查

MySQL基础操作之对数据库和表的增删改查

mysql 的增删改查 实现代码

mysql操作入门基础之对数据库和表的增删改查

如何在控制台实现一个数据管理系统(包括MYSQL数据库的增删改查)

mysql数据库的基本管理详解(增删改查)