Mysql数据库语言!!!

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(查询语句)

    原文作者:孤独的根号 三
    原文地址: https://zhuanlan.zhihu.com/p/66244596
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞