mysql 基础学习 -day5

DML:数据库操纵语言
   增加:insert
   修改:update
   删除:delete
   查询:select
注意:如果并没有说明是对表结构进行操作时,增、删、改、查指的都是对数据库表中数据的操作,依次对应的关键字是insert、delete、update和select
  
往数据库表中插入数据:insert INTO
语法:
insert into表名(字段1,字段2,....,字段n) values(值1,值2,...,值n)
  注意:
        1:字段必须在表中存在,顺序无所谓
        2、创建表时,不能为空但是有没有给默认值的字段必须在字段列表中出现
                3、字段的数量和值的数量必须相等,并且一一对应
                4、值的类型必须和字段的类型一一对应
                5、所有非数字类型的值都必须使用引号引起来(时间字段得按照时间格式填写)
                6、插入值的时候,必须遵守创建表时给定的各种约束
                7、在插入值的时候,自增字段不用管


示例:往表dept中插入一条数据
select * from dept
insert into dept(deptno,loc,dname) values(1010,'测试部','花果园');
select * from dept

insert 的特殊用法1:
        在插入数据时,如果指定的字段是表中的所有字段,并且这些字段的顺序是创建表时候的顺序的话,那么字段列表可以忽略不写

语法:
insert into 表名 values(值1,值2,……,值n)


批量执行数据库脚本
语法:进入到某个数据库以后,执行 source 数据库脚本所在的路径\数据库脚本文件.sql
示例:source d:\emp_data.sql;
如果在执行完脚本后查看数据库中数据出现乱码的情况,一般都是由于字符集不一致导致的,可以在cmd命令窗口将它的字符集设置成和数据库保持一致,比如set names utf8;

insert 特殊用法2:
        将从一张表中查询出来的数据插入到另外一张表中

语法:
insert into 表1(表1.字段1,表1.字段2,……,表1.字段n) select 表2.字段1,表2.字段2,……,表2.字段n from 表2 where 限定条件
        注意:
                1、字段的数量和查询出来的数据的数量要相等
                2、字段和查询出来的值要一一对应,并且数据类型要一致
示例1:将emp表中的数据插入到emp_test表中
insert into emp_test select * from emp
select * from emp_test

示例2:将emp表中的男性员工数据插入到emp_test表中
insert into emp_test select * from emp where sex=0;


修改表数据 update 
语法:
update 表名 set 字段1=新的值,字段2=新的值,…… where 限定条件

        注意:
                1、字段必须要在表中存在
                2、值的数据类型必须和字段的数据类型一致
                3、给的值除数字类型外,字符串和日期必须加引号
                4、设置的值必须遵守创建表时给定的相关约束
                5、在进行更新操作时,一定要加上限定条件,降低风险
                6、当没有跟限定条件的时候,表示更新整张表全部数据(更新整张表时,建议where后面跟1=1)

示例:更新员工信息emp表中工资大于70000的人员的工作岗位为“经理”
select * from emp where sal>70000
update emp set job = '经理' where sal > 70000

练习:更新员工信息表emp中女性员工的职位为“软件测试工程师”,并且给她们涨3000元工资
select sal from emp where sex = 1;
update emp set job = '软件测试工程师' ,sal = sal + 3000 where sex = 1;
select sal from emp where sex = 1

删除数据  delete 
语法:
delete from 表名 where 限定条件;

        注意:
                1、如果没有where限定条件,表示删除整张表所有数据
                2、在进行删除操作时,一定要加上限定条件,降低风险
示例:将员工编号为10000004的员工信息删除
select * from emp where empno = 10000004 
delete from emp where empno = 10000004;
select * from emp where empno = 10000004

truncate 删除整张表数据
语法:
truncate table 表名

drop 、delete 和truncate的区别
        一、drop是删除表结构的,而delete和truncate是删除表数据的,表结构还在
        二、delete和truncate的区别
                1、delete可以跟限定条件,删除指定条件的数据,而truncate不能跟限定条件,只能删除整张表的数据
                2、delete在不跟限定条件的情况下,也可以删除整张表的数据,只不过删除机制还是一行一行的删除
                3、从执行效率上来讲,truncate的效率要更高一些
                4、相对而言,delete删除后要更容易恢复一些
                5、delete方式删除后,自增字段不会重置,而truncate方式删除后,自增字段会重置

DQL 数据库查询语言

语法: select 字段1,字段2,……,字段n from 表名 where 限定条件
        注意:
                1、字段要必须在数据库表中存在,或者必须是一个常量或者函数
                2、如果没有跟where限定条件,表示查询整张表所有数据
                3、可以使用通配符 * 来表示返回所有的字段


示例1:查询员工信息表中所有的信息
select * from emp

示例2:查询员工信息表中所有人员的姓名和职位
select ename,job from emp 

示例3:查询员工信息emp表中男性员工的所有信息
select * from emp where sex = 0;


示例4:查询员工信息emp表中男性员工的员工编号,姓名,职位以及工资信息
select empno,ename,job,sal from emp where sex = 0


加:+   减:-   乘:*  除:/   取余:%   mod(a,b) 表示a除以b得到的余数


练习1:查询员工信息emp表中工资大于40000的员工的所有信息
select * from emp where sal > 40000


练习2:查询员工信息emp表中女性员工的员工编号,姓名,性别,入职日期和所在部门编号
select empno,ename,sex,ctime,deptno from emp where sex = 1


普通属性运算符

等于 =  大于 >  大于等于 >=  小于 < 小于等于<=   不等于 != 、 <>  

示例1:查询员工信息emp表中,性别为男的员工的所有信息
select * from emp where sex = 0


示例2:查询员工信息emp表中,工资大于38520的员工的所有信息
select * from emp where sal > 38520

示例3:查询员工信息emp表中,工资大于等于38520的员工的所有信息
select * from emp where sal >= 38520

示例4:查询员工信息emp表中,工资小于38520的员工的所有信息
select * from emp where sal < 3520

示例5:查询员工信息emp表中,工资小于等于38520的员工的所有信息
select * from emp where sal <= 38520

示例6:查询员工信息emp表中,工资不等于38520的员工的所有信息
select * from emp where sal != 38520

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值