MySql-DML

DML(Data Manipulation Language)数据操纵语言,通俗来说就是直接对表里的数据进行增,删,改操作

insert into 表名 (字段名1,字段名2,字段名3) values (值1,值2,值3);

如果不指定字段则默认是全部字段都进行赋值

也可以同时插入多行数据,例如

insert into 表名 (字段名1,字段名2,字段名3) values (值1,值2,值3),(值1,值2,值3),(值1,值2,值3);

delete from 表名 [where 条件语句];

没有条件语句默认全部删除

也可以使用truncate来删除

truncate table 表名;

truncate相当于将表删除,然后重新创建一个一模一样的的表,对于拥有自动增长字段的表,可以删除增长字段的值。

update 表名 set 字段名 = 值 [where 条件语句];

没有条件语句则该字段所有的数据都改为该值

约束

  1. 主键
primary key				//主键约束,一个表里面只能有一个,有该约束的字段的值不能为空也不能重复

写法

create table 表名(
	id int primary key,
    name varchar(20),
	sex varchar(2)
);

create table 表名(
	id int,
    name varchar(20),
	sex varchar(2),
    constraint 该约束的名字 primary key(id)
);

其中constraint和名字可以省略

也可以多字段组成联合主键,将两个或多个值看作是一个整体

create table 表名(
	id int,
    firstname varchar(20),
	lastname varchar(20)
    constraint 该约束的名字 primary key(firstname,lastname)
);

删除主键

alter table 表名 drop primary key;
  1. 非空约束
not null 					//可以有多个,被约束的字段的值不能为空
  1. 唯一约束
unique						//可以有多个,被约束的字段的值不能重复
  1. 外键约束
foreign key					//在多表中使用,用来和其他表进行连接

主表表示商品的种类,从表表示商品的信息

从表可以随意删除数据,但是增加数据需要符合主表中的种类

主表可以随意增加数据,但是删除数据需要确保从表中没有该种类

添加外键约束时,会自动为从表中外键字段添加一个key关键字

create table category(
	id int primary key,
	name varchar(20)
);/*主表必须有主键,并且从表是连接到主表的主键*/

create table goods(
	gid int primary key,
    gname varchar(10),
    gprice int,
    category_id int,
    constraint 外键名 foreign key goods(category_id) references category(id)
);/*从表的类型必须和主表的主键相同*/

起外键名是为了删除外键,语句为

alter table 从表名 drop foreign key 外键名;
  1. 自增
auto_increment				//用于是数字类型的字段,插入数据时该字段的值自动加1,必须放在主键后

改变起始值

create table student3(
    id int primary key auto_increment,
    name varchar(20),
    age int default(2),
    sex varchar(10)
)auto_increment = 10;		//从10开始增长

拥有auto_increment字段后,delete只能删掉数据,但无法清除编号,例如,现在编号为20,使用delete删除所有数据,再添加一条数据,该数据的编号不是1而是21

字段的约束都可以通过alter来进行增,删,改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值