基础创建

字段自动编号auto_increment

( 单词补充:increment 定期的加薪; 增量; 增加)

考点

添加自增

alter table [表名] modify [字段(id)int primary key auto_increment

添加自增起始值

alter table t_test1 auto_increment = 1000;

栗子:https://www.cnblogs.com/fooobabar/p/11132926.html

查询

select distinct * from 表(对表去重复查询)

(单词补充:distinct 有区别的,明显的,独特的)

查询每个专业的男生人数、女生人数、总人数,已经学生总人数

select 专业名,性别,count(*) as '人数' from xs group by 专业名,性别 with rollup

(单词补充:rollup 归纳总和)

select 专业名,count(*) as '学生数'  from xs group by 专业名 having count(*)>10;

case 字段

when 字段条件1 then '名字1'(满足后命名)

when 字段条件2 then '名字2'(满足后命名)

end (结束)

连接多表

表1 join 表2 on 表1.id=表2.id join 表3 on 表2.id=表3.id  (注意三表链接中间表要和其他两表有关系)

例题

select Name,Address, case InCome

when InCome>3000 then '高收入'

when InCome<=3000 and InCome>=2000 then '中等收入'

when InCome>3000 then '高收入'

end as '收入水平'

from employees join salary on employees.employeesid=salary.employeesid;

 事务

show variables like 'autocommit';查看自动提交事务autocommit

两种

第一种

1.设置为不自动提交事务

set autocommit=0;

2.可以设置回滚点(保存点)rollback to 回滚点--回滚点下面的事务就不执行

savepoint  名1;

rollback 名1;

3.用commit;提交事务

4.set autocommit=1;根据条件修改回来

第二种

1.用begin;语句开始

2.可以设置回滚点(保存点)rollback to 回滚点--回滚点下面的事务就不执行(同上)

3.用commit提交事务

约束

唯一约束 unique
主键约束 primary key
外键约束 constraint 外键名 foreign key( 列名 ) references 外表( 列名 )

DROP TABLE IF EXISTS students;
CREATE TABLE students(
id INT ,
s_name VARCHAR(10) not null,# 非空约束
s_sex CHAR(1) default '男', # 默认约束
s_seat INT,
age INT ,
teacher_id INT ,

#上面是列级约束,下面有表级约束

CONSTRAINT pk PRIMARY KEY(id), #主建约束,pk是起的名,后面一样
CONSTRAINT uq UNIQUE(s_seat), #唯一约束
CONSTRAINT ck CHECK(s_sex='男' OR s_sex='女'), #检查约束

考点
CONSTRAINT fk_students_teacher FOREIGN KEY(teacher_id) REFERENCES teacher(id)   #外键约束
);

这里是修改时两边修改。

栗子:https://blog.csdn.net/qq_42402854/article/details/84714934

视图注意事项:

1有表  2有权限 3不含form子查询  4表的视图和表只能有一个order by ,5 limit也是

create or replace view view_name[(字段1...)]

as

 select语句

存储过程

delimiter //

create procedure do_query(in num1 integer,in num2 integer,out c1 char(6))

begin

if num1>num2 then

set c1='大于';

elseif num1<num2 then

set c1='小于';

else set c1='等于';

end if;

end//

delimiter ;

call do_query()

select...into

select 列名 into 变量名 from 表 where...

把列值赋值给变量

case when then

delimiter $$
create procedure xscj.result
(in str varchar(4), out sex varchar(4) )
begin

case str
when 'm' then set sex='男';
when 'f' then set sex='女';
else set sex='无';
end case;
end$$
delimiter ;

或者

case 
when str='m' then set sex='男';
when str='f' then set sex='女';
else set sex='无';
end case;

mysql考试复习的更多相关文章

  1. Unity3D学习笔记(十三):委托、考试复习

    委托:比较什么时候用委托好   下课案例:不用下课铃 1.ClassManager需要拿到所有教室的引用,课堂管理者应该只负责计时并告知每间教室 2.每间教室应该是由当班老师负责是否需要下课,而课堂管 ...

  2. python期末考试复习

    期末考试复习 补修的python跟着大一一起学,考试肯定不会出难,于是就敲了一些代码,把他们放到博客上,来记录一下 代码都是一段一段的,且python代码不是很多,所以我都写到了一个文件里,作为练习 ...

  3. Mysql 索引复习笔记

    之前学习索引后由于一直没怎么用,所以也只是粗略看了一下,最近发现索引的用处很大,并且也很多知识点,在此做复习记录. 什么是索引? 百度百科是这样描述的: 索引是为来加速对表中数据行中的检索而创建的一种 ...

  4. mysql基础复习(SQL语句的四个分类),

                                                                                                       ( ...

  5. MYSQL 函数复习

    数学函数    ABS(X)    返回X的绝对值    SQRT(x)        返回非负数X的二次方根    MOD(x,y)    返回x被y除后的余数    CEIL(x)         ...

  6. mysql - 语法复习与学习

    //本月的第一天,最后一天 $start=date('Y-m-01', strtotime(date("Y-m-d"))); echo date('Y-m-d', strtotim ...

  7. MySQL基础复习

    三范式定义 1NF:每个数据项都是最小单元,不可分割,其实就是确定行列之后只能对应一个数据. 2NF:每一个非主属性完全依赖于候选码(属性组的值能唯一的标识一个元组,但是其子集不可以).  3NF: ...

  8. mysql总复习

    目录 数据库操作 库操作 表操作 数据行操作 表关系操作 单表操作 外键创建 多表联查 pymysql模块 索引 主键索引 唯一索引 普通索引 数据库操作 库操作 create database 库名 ...

  9. mysql高级复习

    MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构.可以得到索引的本质:索引是数据结构,可以简单理解为“排好序的快速查找数据结构”. 数据本身之外,数据库还维护着一 ...

随机推荐

  1. PHP入门培训教程PHP程序员要掌握哪些技术

    总有那么一群人,学个半吊子就急着找工作,面试题做不出来,吹牛都吹不来所以你只能低工资.PHP程序员要掌握哪些技术?那么兄弟连PHP培训 就来小结一下. 面试前请参考:(前三阶段完成80%在北京月薪5k ...

  2. 一些性能优化的tips

    工作中积累的一些性能优化的tips,记录一下: 1. Message的创建 Message message = Message.obtain();  // 推荐 Message message = n ...

  3. 多项式总结(unfinished)

    试试以二级标题为主的格式. 多项式相关 注:本篇博客不包含\(FFT\)基础姿势.如果您想要阅读本篇博客,请确保自己对\(FFT,NTT\)有基本的认识并且能够独立写出代码. 多项式是什么? 左转数学 ...

  4. RabbitMQ消息如何100%投递成功(六)

    消息如何保障100%的投递成功? 什么是生产端的可靠性投递? 保障消息的成功发出 保障MQ节点的成功接收 发送端收到MQ节点(Broker)确认应答 完善的消息进行补偿机制(如网络问题没有返回确认应答 ...

  5. 你还没搞懂this?

    一.前言 this关键字是JavaScript中最复杂的机制之一.它是一个很特别的关键字,被自动定义在所有函数的作用域中.对于那些没有投入时间学习this机制的JavaScript开发者来说,this ...

  6. DAY 6 TEST

    test T1 样例输入 样例输出 答案选择u,v作为关键点 暴力的话k^2枚举跑最短路,寻找最小值就行了 50pts 考虑优化枚举量 因为答案的两个点是不同的点,所以编号的二进制表示中至少一位不同 ...

  7. Flask中的实例化配置

    也就是在app=Flask(__name__)括号中的参数 1.static_folder = 'static', # 静态文件目录的路径 默认当前项目中的static目录 2.static_url_ ...

  8. 一个DRF框架的小案例

    第一步:安装DRF DRF需要以下依赖: Python (2.7, 3.2, 3.3, 3.4, 3.5, 3.6) Django (1.10, 1.11, 2.0) DRF是以Django扩展应用的 ...

  9. nginx坑记录

    问题1: 配置解析过程使用ngx_cycle->pool申请内存保存配置,结果造成野指针. 背景:需求开发过程,有一些结构需要在配置解析阶段保存,然后可以动态修改.看原来的代码配置解析都是使用c ...

  10. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第3节 Random类_8-Random概述和基本使用

    用来产生随即数字 构造方法有一个是为空的 每次运行数值都不一样