数据表的基本操作

本文深入讲解数据库操作核心,包括数据表的增删改查、字段管理、数据插入与更新、约束设定等关键技术,助您掌握数据库操作精髓。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据表操作介绍

和数据库操作一样,在数据表在操作中,也是是围绕增删改查来操作。

但是在这一章节主要讲解数据表的增删改操作。

查询操作是数据库中最为重要的操作。会单独一章节讲解。

数据表操作

  • 查看表 作用:查看所选数据库中所有的表 语法: show tables

      show tables;
    

  • 创建表 作用:在数据库中创建一张新表 语法: create table 表名(

      字段1 字段类型,
      字段2 字段类型,
      字段3 字段类型……);
    
      create table stu(sid int,sname char(20),sage int);
    

  • 显示创建表信息 作用:用来显示创建表时的信息 语法:show create table 表名;

      show create table stu;
    

  • 增加字段 作用:为已存在的表添加一个新字段 语法:alter table 表名 add 列名 数据类型

          alter table stu add gender char(4);
    

  • 删除字段 作用:在表中删除一个已存在的字段 语法:alter table 表名 drop 列名

      alter table stu drop gender;
    

  • 修改字段的数据类型 作用:修改表中现有字段的类型 语法:alter table 表名 modify 字段名 数据类型

      alter table stu modify sname varchar(20);
    

  • 修改列的数据类型并且改名 作用:修改表中现有字段的字段名和类型 语法:alter table 表名 change 原字段名 新字段名 数据类型

      alter table stu change sid snumber smallint;
    

 MySQL 常用字段类型

数据表是由若干个字段组成的,每个字段表示不同类型的数据。

所以在创建表的时候,需要为每个字段指定相应的数据类型。

  • 整数类型 

  • 小数类型 

  • 字符串类型 

  • 枚举类型 enum(枚举值1,枚举值2,...)

      enum('男','女')
    
  • 时间类型 

查询数据

作用:查询数据就是通过客户端通过 DBMS 从数据库中取出满足条件的数据。

语法:select 字段名列表 from 表名;

  •   select * from stu;
    

插入数据

作用:向数据库中插入数据

语法:insert into 表名 [(字段名列表, ...)] values(值列表, ...)

  • 插入所有字段数据

    可以不指定插入的字段,直接写入插入的数据

  •   insert into tStudent values(1,'tom',20)
    

  • 插入指定字段

    可以插入指定的字段,指定字段顺序和列中顺序可以不同,值顺序要和指定的列顺序相同。

  •   insert into stu(sage,sname) values(20,'jack');
    

  • 插入多条数据

  •   insert into stu values(2,'rose',20),(3,'tony',22);
    

修改数据

作用: 可以根据指定的条件,修改更新满足条件的数据

语法: update 表名 set 字段=值 [条件]

  • 更新所有的数据
  •   update stu set sAge=25;
    

  • 更新满足条件的数据

  •   update stu set sname='alice' where name='tony';
    

删除数据

作用:将数据从数据表中删除

语法1:truncate 表名

语法2:delete from 表名 [条件]

  • 删除全部数据 truncate
  •   truncate stu;
    
    不需要加条件,也不能加条件,删除全部数据,重置自动编号到默认值,没有事务,速度快。
  •   delete from stu;
    

    相当于 truncate stu,但是delete操作有事务操作,所以速度慢,而且不会重置自动编号。

  • 删除满足条件的数据

  •   delete from stu where snumber = 1;
    

添加约束

约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的准确性,完整性、唯一性,可靠性、联动性。

 

数据库常用约束

  1. 主键约束 作用:让数据具有唯一标识 语法:primary key
     create table tpk(id int primary key , name char(10));
    

字段被设置了主键约束,同时也具有了唯一性约束和非空约束。 在字段中插入重复数据时,或不给数据时会报错。

  1. 自动增长 作用:让数字值自动累加 语法:auto_increment 自动增长设置在数值型字段上,需要配合主键约束一起使用。 如果字段没有设置主键约束,是不允许设置自动增长的。

     create table tai(id int auto_increment primary key,name varchar(10));
    

  2. 唯一性约束 作用:保证数据的准确性,不会出现重复数据 语法:unique

     create table tuni(id int unique,name char(10));
    

一个表中可以给多个字段设置唯一性,如果有需要的话。

  1. 非空约束 作用:不允许字段为空,添加数据时必须给值 语法:not null

     create table tnn(id int,name char(10) not null);
    

  2. 默认约束 作用:在添加数据时,如果没有给定有默认约束字段的数据,该字段使用默认值填充 语法:default

     create table tdt(id int,name char(10) default 'NoName');
    

  3. 外键约束 作用:让两表之间产生联动关系 语法:foreign key(字段名) references 表名(字段名)

     -- 表1 
     create table fClass(id int primary key,name char(10));
     -- 表2
     create table fStudent(id int primary key auto_increment, name char(10), cid int, foreign key(cid) references fClass(id));
    

    设置外键约束字段所关联的字段,必须是主键约束字段。

想要删除有设置外键的表,必须先删除外键所关联的表。

  •   drop table fStudent;
      drop table fClass;
    

  • 检查约束(在MySQL中无效,不起作用) 作用:设置字段的域范围,也就是有效值范围 语法:check(值范围条件)

     create table tchk(id int,age int check(age > 0 and age < 150),gender char(10) check('boy' or 'girl'));
    

增加删除约束

添加约束前应该保证该字段上没有新添加的约束 删除约事前应该保证该字段上有这个约束

  1. 添加主键约束 语法:alter table 表名 add constraint 约束名 primary key(字段名)
  2.   alter table tpk add constraint PK_id primary key(id);
    

     

  1. 删除主键约束 因为一个表中最多只能有一个主键约束,所以可以直接删除 语法:alter table 表名 drop primary key
  2.   alter table tpk drop primary key;
    

  3. 添加外键约束 语法:alter table 表名 add constraint 外键约束名 foreign key(外键字段名) references 关联表(关联字段名)

  4.   alter table tfk add constraint FK_id foreign key (id) references tpk(id);
    

  5. 删除外键约束 语法:alter table 表名 drop foreign key 外键名

  6.   alter table tfk drop foreign key FK_id;
    

 

  1.    mysqldump -uroot -p School tpk > tpk.sql
      mysqldump -uroot -p School tpk tfk > tpktfk.sql
    

  2. 导入数据库

  3. 导入数据库前需要先创建一个空数据库
  4. 语法:mysql -uroot -p 数据库名 < 要导入的文件.sql
    mysql -uroot -p sch < school_bak.sql
    

 

三大范式(了解)

数据库在设计时,需要满足三大范式的设计思想。

三大范式的理论非常抽象,有兴趣可以查阅资料进行了解,

下面以简单的形式描述三大范式,方便大家有一个简单的概念上的理解。

  • 第一范式 : 每一列都具有原子性,也就是不能再分割 

  • 第二范式 : 每个表只描述一件事情 

  • 第三范式 : 表中不能存在冗余字段 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值