增
1.在已有表格中添加新的字段:
> alter table 表名 add 新字段名 类型(varchar/int等等) not null/..;
2.给字段添加索引:
> alter table 表名 add index 索引名 (字段名);
or:
> create index 索引名 on 表名 (字段名);
查
2.1查询teacher表中姓“李”的老师的个数:(用like来查找部分)
> select count(*) from teacher where Name like '李%';
2.2查询没学过“叶平”老师课的学生的学号和姓名:(用到inner join链接三个表,见inner join一文)
> select chinese.No, biology.Name from (biology inner join physics on biology.b_No = physics.p_No) inner join chinese on biology.b_No = chinese.No where biology.teacher != '叶平' and physics.teacher != '叶平' and chinese.teacher != '叶平';
结果如下:
这个办法比较笨,不知道有没有更方便直接的方法,如果有,请指教。
2.3查询学过“蔡文姬”老师和“狄仁杰”老师课的学生的学号和姓名:
> select chinese.No, biology.Name from (biology inner join physics on biology.b_No = physics.p_No) inner join chinese on biology.b_No = chinese.No where (biology.teacher = '蔡文姬' or biology.teacher = '狄仁杰') and (physics.teacher = '蔡文姬' or physics.teacher = '狄仁杰') and (chinese.teacher = '蔡文姬' or chinese.teacher = '狄仁杰');
结果如下:
这个方法依旧是笨方法,求指教更方便快捷的方法。
employees表
3.1查询除了名字叫张三以外的员工记录:(用not in筛选)
> select * from employees where name not in('张三');(用!=也可以)
结果如下:
3.2查询工资在2000到5000之间的员工记录:
> select * from employees where salary <=5000 and salary >= 2000;
3.3查询部门编号为1、3、5的员工记录:
> select * from employees where dept_id in (1,3,5);
结果如下:
3.4查询姓“张”的员工记录:
> select * from employees where name like '张%';
结果如下:
3.5查询性别为男,且在2016年9月20日入职的员工记录:
> select * from employees where gender = '男' and join_time = '2016-9-20';
结果如下:
3.6查看已创建的视图:
> select * from 视图名;
> select * from EMP_V_3;
结果如下:
改
1.更改字段名
> alter table 表名 change 原字段名 新字段名 类型;
exp:
> alter table depts change dept_id departmentId int not null;