Database-2:SQL语句之DML及约束

〇、前言

    DML(Data Manipulation Language):数据操作语言,用来操作表中存储的数据,但是只能完成增、 删 、改;

一、增加数据

    insert into [表名] (字段列名集合) values (值的集合) ;

    多个列名之间‘,’分割,多个值之间‘,’分割,值的顺序和列名顺序一一对应。

        如:insert into stu (sid, name, sal) values (1, "ZhangSan", 45.67) ;

            结果 :  

    如果给表里的每个字段都添加值则中间的列名集合可以省略:

        如:insert into stu values (1, "LiSi", 88.88) ;

         结果:

    如上,两条数据具有同样的sid,这是不符合业务逻辑的,由此我们需要给字段添加约束。约束的作用就是为了保证数据的正确性和完整性。

二、完整性约束

    注意:约束都是添加在字段上的

    1、非空(NOT NULL):插入数据不能为null;(无插入值时和值为null时都不能插入)

        如:create table stu (sid int(11), name varchar(20) not null, sal double(5,2));(给name添加非空约束)

                

    2、唯一(UNIQUE):插入的数据唯一;

        如:create table stu (sid int(11) unique, name varchar(20), sal double(5,2));(给sid添加唯一约束)

                

    3、主键(PRIMARY KEY):一条数据在数据库中的唯一标识,特点:非空且唯一

        如:create table stu (sid int(11) primary key, name varchar(20), sal double(5,2)); (给sid添加主键约束,要求sid的值非空且唯一)

                

    4、主键自增长(PRIMARY KEY AUTO_INCREMENT):如果主键的是int,那么如果给主键赋值为null , 会自动根据上一条记录的值+1。(只能给int、long类型设置)

        如:create table stu (sid int(11) primary key auto_increment, name varchar(20), sal double(5,2));(给sid添加主键自增长约束)

                

三、完整性约束之外键约束

    1、外键:一张表的主键作为另一张表的外键,就保证数据的完整性。(注意: 主键和外键的数据类型必须一致,名称可以不一致)  

        如:CONSTRAINT fk_emp_dept FOREIGN KEY(deptno) REFERENCES dept(deptno)

    2、表和表之间的关系

  • 一对一的关系 :主外键可以在任意一方;
  •  一对多或者多对一的关系 :外键添加到多的一方;
  •   多对多的关系:定义中间表,中间表的两个字段都是外键,分别用于关联两个表的主键。

四、删除数据

    delete from 表名 [where 条件] ;

        如: delete from stu where sid = 1 ;  (删除sid为1的数据)

    没有where条件的话表示删除所有的数据:

  1. delete from 表名 ; (逐行删除表中的数据,效率低)
  2. truncate table 表名 ;(直接把表删除然后再创建表,效率高)

五、修改数据

    update 表名 set 字段名 = 字段值 , 字段名 = 字段值 , ... [where 条件] ; (没有where条件的话表示修改所有数据)

        如:update stu set name = 'lisisi', sal = 66.88 where sid = 2 ; (修改sid为2的数据的name和sal的值)    

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值