1. MySQL中的默认值处理
(1) 在MySQL中如何定义默认值?
在Mysql中可使用default为字段设定一个默认值.如果在插入数据时并未指定该列的值,那么mysql会将默认值添加到该列中
1,.创建表时指定列的默认值
创建 emp3 表,该表包含 emp_id 主键且自动增长,包含 name,包含 address 该列默认
值为”未知”。
Create table emp3 (emp_id int primary key auto_increment,name varcahr(20),address varchar(59) default “unknow”);
2. 修改表添加列的默认值
修改 emp3 表,添加 job_id 该列默认值为 0。
Alter table emp3 add job_id default 0;
3. 插入数据时的默认值处理
如果在插入数据时并未指定该列的值,那么mysql会将默认值添加到该列中,如果是完全项插入需要使用default来占位
向 emp3 表中添加数据,要求 address 列与 job_id 列使用默认值作为该列的值。
选择插入
Insert into emp3(name)values(“无敌”)
完全插入
Insert into emp3 values(default,”name”,default,default);
4. MySQL中的更新操作
(1) 在MySQL中更新表中数据的语句是什么?
Update 表名 set 列名=值 ,列名 = 值 where 条件
(2) MySQL中的数据更新有什么特点?
更新的表不能在set和where中用子查询;
Update后面可以做任意的查询
更新 emp3 表中的 id 为 1 的数据,添加 address 为 BeiJing。
Update emp3 address=”beijing” where id=1;
方式一:更新 emp3 中 id 为 2 的数据,将地址修改为与 id 为 1 用户的地址相同
Oracle:
Update emp3 set address=(select adress from emp3 where id=1) where id=2;
Mysql:
第一中方式:Update emp3 e,(select address from emp3 where emp_id=1)t set e.address=t.address where e.emp_id=2;
第二中方式:update emp3 e set address=(select t.address (select address,id from emp3) t from t.id=1) where e.id=2;
(直接子查询中不能有本表名)
5. MySQL中的删除数据
(1) 在MySQL中删除表中数据有几种方式?他们之间有什么区别?
Delete删除指定数据或者没指定行全删
Delete table 表名 where 条件
Truncate:清空表数据
Truncate table 表名
区别:
Truncate是整体删除(速度较快),delete是逐条删除(速度较慢);
Truncate不写服务器log(日志),delete写服务器log,也就是truncate比delete效率高的原因
Truncate是会重置自增值的(auto_increment重新从1开始记录),而delete不会重置(接着原来的值继续累加)
(2) 删除emp3表中emp_id为1的雇员信息。
Detele from emp3 where emp_id=1;
6. MySQL的事务处理
(1) 在MySQL中事务默认的处理机制是什么机制?
在mysql中,默认情况下,事务时自动提交的,也就是说,只要执行一条DML语句就开启了事务,并提交了事务
(2) 如何关闭MySQL中的事务自动提交?
Start transaction
DML语句
Commit|rollback
7. MySQL的基本查询1
(1) MySQL中查询数据的语法格式是什么?
Select 查询数据 from 表名 where 条件
(2) 在查询语句中支持哪些算术表达式?
+,-,*,/,%
(3) 在MySQL中查看数据库编码的语句是什么?
show create database bjsxt;
(4) 删除数据库的语句是什么?
8. MySQL的基本查询2
(1) 在MySQL中算术表达式中含有空值结果是什么?
包含空值的算术表达式计算结果为空。
(2) 在MySQL中如何为结果列起别名?
结果 as 别名(as可省略)
(3) 在MySQL中如何做结果集的连接处理?
Concat(结果集1,结果集2…)
Mysql并不支持||连字符,需要使用concat函数.在参数数量上与oracle的concat有区别
Mysql 的 concat(a1,a2,a3…)不限参数
Oracle的concat(a1,a2)只能拼接两个参数
(4) 在MySQL中如何剔除重复数据?
Select distinct
9. MySQL的约束和排序数据
(1) 在MySQL中支持哪些比较运算符?
=,>,>=,<,<=,!=|<>;
(2) 在MySQL中如何实现模糊查询?
Like
%表示任意多个字符
_表示一个任意字符
(3) 在模糊查询中占位符用什么符号表示?
%,_
(4) 在MySQL中支持哪些逻辑运算符?
And :并且
Or:或者
Not;取反
(5) 在MySQL中如何做范围查询?
Between …an
In表示在一个非连续的范围内
(6) 在MySQL中如何判断空值?
Is null:判断空值
Is not null:判断非空
(7) 在MySQL中如何对结果集做排序处理?
Order by 排序
Asc:升序 默认
Desc;降序
10. MySQL中常见单行函数1
(1) 在MySQL中处理字符大小的函数有哪些?
Upper:全部转换为大写
Lower: 全部转换为小写
(2) 在MySQL中常见的字符函数有哪些?
Concat(a1,a2,a3)吧所有传入的字符串全部连接
Substr(str,pos,len):从str的第pos位开始,截取长度为len的字符串
Length(str):获取str字符串的长度
Lpad//rpad 左填充 右填充
Oracle:trim(a)a:leading|trailing|both 去头,去尾 去头尾 字符
Mysql:trim(a) 去头尾空格
Ltrim(a) 删除左侧空格
Rtrim(a) 删除右侧空格、
Replace(str,old_str,new_str);将str字符串中的指定old_str字符串转换为new_str新字符串
(3) 在MySQL中常见的数字函数有哪些?
Roound(a1,a2):四舍五入指定小数的值
Ropund(a):四舍五入保留整数
Trunc(a1,a2):截断指定小数的值,不做四舍五入处理
Mod(a1,a2):返回a1/a2的余数
(4) 在MySQL中常见的日期函数有哪些?
Sysdate()或now 返回当前日期时间格式为:YYYY—MM-DD hh-mm-ss
Curdate():返回系统当前日期,不返回时间
Curtrim():返回当前系统中的时间,不返回日期
Dayofmonth(date) 计算日期d是本月的第几天
Dayofmonth(date)日期d今天是星期几1是星期日 2是星期一以此类推
Dayofmonth(date)返回指定年份的天数
Dayname(date)返回date日期是星期几
Last_day(date)返回date日期当月的最后一天
11. MySQL中常见单行函数2
(1) 在MySQL中常见的转换函数有哪些?
DATE_format(date,format)将日期转换成字符串(类似于oracle中的to_char)
Str_to_date(str,format) 将字符串转换为日期 类似于oracle中的to_date
例子 str_to_date(“2019年5月18日星期六”,“%Y年%M月%D日”)
向 employees 表中添加一条数据,名字:King ,email:king@sxt.cn,部门 ID:1,
薪水:9000,入职时间:2018 年 5 月 1 日,佣金:0.6
Insert into employees values (default,’king’,’king@sxt.cn’,1,9000,str_to_date(‘2010年3月3日’,’%Y年%m月%d日’))
(2) 在MySQL中常见的通用函数有哪些?
Ifnull(e1,e2) 和oracle中的nvl()类似 判断e1是否为空,为空则返回e2,不为空返回e1
Nullif(e1,e2)判断e1和e2是否相等,相等返回null,不相等返回e1
if(e1,e2,e3)和oracle中的nvl2()类似 判断e1是否为空,为空返回e3,不为空返回e2
Coalesce(value…)和oracle 中的case when then else end(条件判断)类似判断value的值是否为空,如果不为空则返回value,如果为空,则判断下一个value值是否为空…直到出现不为空的value并返回或者返回最后一个为空的value
12. MySQL的多表查询
(1) 在MySQL中可以使用哪些方式对多表查询?
等值查询
非等值查询
查询所有雇员的薪水级别。
select e.last_name,s.level from employees e ,sal_level s where e.salary between s.lowest_sal
and highest_sal;
自连接
外连接
13. MySQL的外连接查询
(1) 在MySQL中支持几种外连接查询?
左外链接
右外连接
全外连接
注:mysql不支持full outer join 连接
可以使用union 实现全外连接
(select e.last_name,d.department_id from employees e LEFT OUTER JOIN departments d on e.dept=d.department_id) UNION(select e.last_name,d.department_id from employees e right OUTER JOIN departments d on e.dept=d.department_id)
(2) 在MySQL中如何将两个结果集合并?
Union 和union all
Union:可以将两个查询结果集合并,返回的行都是唯一的,如同对整个结果集合使用了distinct
Union all:只是简单的将两个结果合并后就返回.这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了`
(3) 结果集合并的语法结构是什么?
(查询语句)union(查询语句)
1. MySQL中的默认值处理
(1) 在MySQL中如何定义默认值?
在Mysql中可使用default为字段设定一个默认值.如果在插入数据时并未指定该列的值,那么mysql会将默认值添加到该列中
1,.创建表时指定列的默认值
创建 emp3 表,该表包含 emp_id 主键且自动增长,包含 name,包含 address 该列默认
值为”未知”。
Create table emp3 (emp_id int primary key auto_increment,name varcahr(20),address varchar(59) default “unknow”);
2. 修改表添加列的默认值
修改 emp3 表,添加 job_id 该列默认值为 0。
Alter table emp3 add job_id default 0;
3. 插入数据时的默认值处理
如果在插入数据时并未指定该列的值,那么mysql会将默认值添加到该列中,如果是完全项插入需要使用default来占位
向 emp3 表中添加数据,要求 address 列与 job_id 列使用默认值作为该列的值。
选择插入
Insert into emp3(name)values(“无敌”)
完全插入
Insert into emp3 values(default,”name”,default,default);
4. MySQL中的更新操作
(1) 在MySQL中更新表中数据的语句是什么?
Update 表名 set 列名=值 ,列名 = 值 where 条件
(2) MySQL中的数据更新有什么特点?
更新的表不能在set和where中用子查询;
Update后面可以做任意的查询
更新 emp3 表中的 id 为 1 的数据,添加 address 为 BeiJing。
Update emp3 address=”beijing” where id=1;
方式一:更新 emp3 中 id 为 2 的数据,将地址修改为与 id 为 1 用户的地址相同
Oracle:
Update emp3 set address=(select adress from emp3 where id=1) where id=2;
Mysql:
第一中方式:Update emp3 e,(select address from emp3 where emp_id=1)t set e.address=t.address where e.emp_id=2;
第二中方式:update emp3 e set address=(select t.address (select address,id from emp3) t from t.id=1) where e.id=2;
(直接子查询中不能有本表名)
5. MySQL中的删除数据
(1) 在MySQL中删除表中数据有几种方式?他们之间有什么区别?
Delete删除指定数据或者没指定行全删
Delete table 表名 where 条件
Truncate:清空表数据
Truncate table 表名
区别:
Truncate是整体删除(速度较快),delete是逐条删除(速度较慢);
Truncate不写服务器log(日志),delete写服务器log,也就是truncate比delete效率高的原因
Truncate是会重置自增值的(auto_increment重新从1开始记录),而delete不会重置(接着原来的值继续累加)
(2) 删除emp3表中emp_id为1的雇员信息。
Detele from emp3 where emp_id=1;
6. MySQL的事务处理
(1) 在MySQL中事务默认的处理机制是什么机制?
在mysql中,默认情况下,事务时自动提交的,也就是说,只要执行一条DML语句就开启了事务,并提交了事务
(2) 如何关闭MySQL中的事务自动提交?
Start transaction
DML语句
Commit|rollback
7. MySQL的基本查询1
(1) MySQL中查询数据的语法格式是什么?
Select 查询数据 from 表名 where 条件
(2) 在查询语句中支持哪些算术表达式?
+,-,*,/,%
(3) 在MySQL中查看数据库编码的语句是什么?
show create database bjsxt;
(4) 删除数据库的语句是什么?
Drop bjsxt;
8. MySQL的基本查询2
(1) 在MySQL中算术表达式中含有空值结果是什么?
包含空值的算术表达式计算结果为空。
(2) 在MySQL中如何为结果列起别名?
结果 as 别名(as可省略)
(3) 在MySQL中如何做结果集的连接处理?
Concat(结果集1,结果集2…)
Mysql并不支持||连字符,需要使用concat函数.在参数数量上与oracle的concat有区别
Mysql 的 concat(a1,a2,a3…)不限参数
Oracle的concat(a1,a2)只能拼接两个参数
(4) 在MySQL中如何剔除重复数据?
Select distinct
9. MySQL的约束和排序数据
(1) 在MySQL中支持哪些比较运算符?
=,>,>=,<,<=,!=|<>;
(2) 在MySQL中如何实现模糊查询?
Like
%表示任意多个字符
_表示一个任意字符
(3) 在模糊查询中占位符用什么符号表示?
%,_
(4) 在MySQL中支持哪些逻辑运算符?
And :并且
Or:或者
Not;取反
(5) 在MySQL中如何做范围查询?
Between …an
In表示在一个非连续的范围内
(6) 在MySQL中如何判断空值?
Is null:判断空值
Is not null:判断非空
(7) 在MySQL中如何对结果集做排序处理?
Order by 排序
Asc:升序 默认
Desc;降序
10. MySQL中常见单行函数1
(1) 在MySQL中处理字符大小的函数有哪些?
Upper:全部转换为大写
Lower: 全部转换为小写
(2) 在MySQL中常见的字符函数有哪些?
Concat(a1,a2,a3)吧所有传入的字符串全部连接
Substr(str,pos,len):从str的第pos位开始,截取长度为len的字符串
Length(str):获取str字符串的长度
Lpad//rpad 左填充 右填充
Oracle:trim(a)a:leading|trailing|both 去头,去尾 去头尾 字符
Mysql:trim(a) 去头尾空格
Ltrim(a) 删除左侧空格
Rtrim(a) 删除右侧空格、
Replace(str,old_str,new_str);将str字符串中的指定old_str字符串转换为new_str新字符串
(3) 在MySQL中常见的数字函数有哪些?
Roound(a1,a2):四舍五入指定小数的值
Ropund(a):四舍五入保留整数
Trunc(a1,a2):截断指定小数的值,不做四舍五入处理
Mod(a1,a2):返回a1/a2的余数
(4) 在MySQL中常见的日期函数有哪些?
Sysdate()或now 返回当前日期时间格式为:YYYY—MM-DD hh-mm-ss
Curdate():返回系统当前日期,不返回时间
Curtrim():返回当前系统中的时间,不返回日期
Dayofmonth(date) 计算日期d是本月的第几天
Dayofmonth(date)日期d今天是星期几1是星期日 2是星期一以此类推
Dayofmonth(date)返回指定年份的天数
Dayname(date)返回date日期是星期几
Last_day(date)返回date日期当月的最后一天
11. MySQL中常见单行函数2
(1) 在MySQL中常见的转换函数有哪些?
DATE_format(date,format)将日期转换成字符串(类似于oracle中的to_char)
Str_to_date(str,format) 将字符串转换为日期 类似于oracle中的to_date
例子 str_to_date(“2019年5月18日星期六”,“%Y年%M月%D日”)
向 employees 表中添加一条数据,名字:King ,email:king@sxt.cn,部门 ID:1,
薪水:9000,入职时间:2018 年 5 月 1 日,佣金:0.6
Insert into employees values (default,’king’,’king@sxt.cn’,1,9000,str_to_date(‘2010年3月3日’,’%Y年%m月%d日’))
(2) 在MySQL中常见的通用函数有哪些?
Ifnull(e1,e2) 和oracle中的nvl()类似 判断e1是否为空,为空则返回e2,不为空返回e1
Nullif(e1,e2)判断e1和e2是否相等,相等返回null,不相等返回e1
if(e1,e2,e3)和oracle中的nvl2()类似 判断e1是否为空,为空返回e3,不为空返回e2
Coalesce(value…)和oracle 中的case when then else end(条件判断)类似判断value的值是否为空,如果不为空则返回value,如果为空,则判断下一个value值是否为空…直到出现不为空的value并返回或者返回最后一个为空的value
12. MySQL的多表查询
(1) 在MySQL中可以使用哪些方式对多表查询?
等值查询
非等值查询
查询所有雇员的薪水级别。
select e.last_name,s.level from employees e ,sal_level s where e.salary between s.lowest_sal
and highest_sal;
自连接
外连接
13. MySQL的外连接查询
(1) 在MySQL中支持几种外连接查询?
左外链接
右外连接
全外连接
注:mysql不支持full outer join 连接
可以使用union 实现全外连接
(select e.last_name,d.department_id from employees e LEFT OUTER JOIN departments d on e.dept=d.department_id) UNION(select e.last_name,d.department_id from employees e right OUTER JOIN departments d on e.dept=d.department_id)
(2) 在MySQL中如何将两个结果集合并?
Union 和union all
Union:可以将两个查询结果集合并,返回的行都是唯一的,如同对整个结果集合使用了distinct
Union all:只是简单的将两个结果合并后就返回.这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了`
(3) 结果集合并的语法结构是什么?
(查询语句)union(查询语句)