mysql nexttime_Mysql 总结(the next day)

约束create table t_student(s_pk_id int primary key, /主键约束/s_name varchar(20) not null, /非空约束/s_tel varchar(11) unique, /唯一约束/s_sex char(2) default 'M', /默认约束/s_age int check(age >= 18 and age <=40) /检查约束 mysql没有作用/);

主键约束的第二种方式与自动增长create table t_student(s_pk_id int auto_increment, 这一列是自动增长的列,会永远自动向前递增,自动增长的列在一张表中就只能有一个1 8 10 11 13 14 15s_name varchar(20) not null, 非空约束s_tel varchar(11) unique,唯一约束s_sex char(2) default 'M', 默认约束s_age int check(age >= 18 and age <=40), /检查约束 mysql没有作用/primary key(s_pk_id) /*主键约束的第二种写法);

创建班级表create table t_class(c_pk_id int primary key auto_increment,c_name varchar(20) not null);

创建功课表create table t_subject(sub_pk_id int primary key auto_increment,sub_name varchar(20) not null,sub_publish_time date);

创建学生和功课的中间表 分数表

create table t_scores(sc_pk_id int primary key auto_increment,sc_student_id int not null,sc_subject_id int not null,sc_score float,constraint fk_scores_student foreign key(sc_student_id) references t_student(s_pk_id),constraint fk_scores_subject foreign key(sc_subject_id) references t_subject(sub_pk_id));

修改表,修改数据类型,添加自增和主键

alter table t_food_bak modify pk_id int auto_increment primary key;

自增默认从1开始,如果想手动设置从哪里开始,使用下面的语句

alter table t_food_bak auto_increment=1000;

关联关系

一对一  不常用

一对多(多对一)  在数据库中的做法就是在"多"的这一端加上一个外键列和"一"这一端的主键进行对应

多对多 其实就是特殊的一对多,处理的方式,都是多加一张中间表,这个中间表分别和另外两张表示多对一的关系

关联约束

如果表已经建好了,我们需要修改表添加外键约束

修改   表     表名    添加   约束              外      键(外键列名)   关联       主键表(主键列名)

alter table t_student add constraint [外键名] foreign key(s_class_id) references t_class(c_pk_id);

在建表的时候,直接写好关联约束

可以直接在建表语句的最后写上

constraint foreign key(外键列名) references t_class(主键列名);

DML 语句

增 insert into 表名([列名,列名,列名....]) values ([值,值,值....])insert into t_student(s_pk_id,s_name,s_tel) values(1,'张三','13111111111');

自增列,可以不用插入insert into t_student(s_name,s_tel) values('张三','13111111111');

注意一个问题,列名和值必须一一对应,如果字段名写出来,那么value就必须对应

insert into t_student(s_pk_id,s_name,s_tel,s_sex) values(2,'王五','13111111111','F');

insert into t_student(s_pk_id,s_name,s_tel,s_sex) values(null,'王五','13111111111',default);

可以默认不写列名,意思是后面的值就要和列名顺序对应,不推荐这种写法insert into t_student values(null,'赵六','13111111115',default,19);

一次加入多行数据

insert into  t_student(s_name,s_tel,s_age)values("张飞","13811111111",30),("赵云","13811111112",28),("关羽","13811111113",32);

改 update 表名 set 列名=新的值,列名=新的值...[where 条件]

把t_student的s_class_id全部改为1

update t_student set s_class_id=1

把学生id=2的班级外键改为3

update t_student set s_class_id=3 where s_pk_id=2;

把学生id大于2并且小于5的班级全部改为F66班

update t_student set s_class_id=4 where s_pk_id > 2 and s_pk_id < 5;

如果没有主外键约束,外键可以随便写,但是有了主键外键约束之后,这里就不能随便写外键的值

update t_student set s_class_id = 99 where s_pk_id=5;

update语句更新多个值

update t_student set s_tel="13711111111",s_age=18 where s_pk_id=1;

在...之间

使用 >= and <=

update t_student set s_age = s_age + 1 where s_age >= 18 and s_age <= 30;

btween and

update t_student set s_age = s_age + 1 where s_age between 18 and 30;

在...范围内

= and <=   > and

update t_student set s_age = s_age - 2 where s_class_id=1 or s_class_id=3 or s_class_id=4;

inupdate t_student set s_age = s_age - 2 where s_class_id in(1,3,4);

not 取反update t_student set s_age = s_age - 2 where s_class_id not in(1,3,4);

判断为null 注意: 不是用的=null在mysql中null和任意的值比较都是false  而是使用 is null,

update t_student set s_age = 50 where s_age is null and s_class_id=1;

取反update t_student set s_age = 50 where s_age is not null and s_class_id=1;

删除 delete from 表名 [where 条件]

删除所有数据   delete from t_student;

按照条件删除   删除年龄为null的数据  delete from t_student where s_age is null;

delete删除语句,就算删除全部的数据,之前自增的id,还是会继续往下自增

删除数据还可以使用truncate,这个语句,大家知道就可以了,千万别用

模糊匹配 关键字 like

替代符 _ 替代一个字符

替代符 % 替代0个或多个字符

比较下面四个替代符的区别,到底模糊匹配的是什么

update t_student set s_age=20 where s_name like '张%';update t_student set s_age=s_age+2 where s_name like '张_';update t_student set s_age=s_age+5 where s_name like '%张%';update t_student set s_age=s_age-5 where s_name like '%五';

DQL 语句

简单查询 select 列名,列名,列名...(简单查询全部列名 *) from 表名

select * from t_student;

单词DMLinsert(新增)update(修改)delete(删除)

DDLselect(查询)

where(哪里 匹配条件) set(设置) like(像 模糊匹配) from(来自...)

primary key(主键)unique(唯一)constraint(约束)references(引用,关联)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值