My_Project

资料整理


SQL语句-DML

<p>DML : 数据操作语句 Data Manipulation Language。 针对数据:insert、delete、update、select</p> <pre><code>查询语句 Select 字段1,字段2 from 表名 where 条件; 例:展示student表中找出名称为'李红'的学生的姓名\年龄\地址信息 select name,age,address from student where name='李红'; 例:展示student表中年龄在22岁以上的学生的信息 select * from student where age&gt;22; 修改数据 Update 表名 set 字段1=值1,字段2=值2 where 条件; 例:修改student表中名称为‘王红’的年龄为22岁,地址为深圳 update student set age=22,address='深圳' where name='王红' 练:修改student表中年龄为20学生的地址,改为'中国' update student set address='中国' where age=20; 删除数据 Delete from 表名 where 条件; 例:删除student表中姓名为‘小明’的学生 delete from student where name=‘小明’; 练:删除student表中年龄小于20岁的学生 delete from student where age&lt;20; 插入数据 一次插入整行数据 insert into 表名 values(字段1值,字段2值,字段3值…); 练:给student表中插入一行数据, student表,包含字段Id,Name,Sex,Age,Address 指定字段插入数据 insert into 表名(字段1,字段2) values(字段1值,字段2值) ; 例:讲20号学生刘东东的信息添加到student表中 insert into student(id,name) values(20,'刘东东'); 一次性插入多条数据 insert into 表名 values(…),(…),(…)…; insert into 表名(字段1,字段2) values(字段1,字段2),(字段1,字段2)…; 操作符 +:加 -:减 *:乘 /:除 &lt;:小于 &lt;=:小于或等于 =:等于 !=或&lt;&gt;:不等于 &gt;=:大于或等于 &gt;:大于 %:表示所有 可以表示没有 一个字符 多个字符 -:表示单个字符 not或!:逻辑"非": 条件为真 结果为假 条件为假 结果为真 or或||:逻辑"或":只需要其中一个 所有条件只要一个为真,结果就为真 and或&amp;&amp;:逻辑"与":两边的条件都要符合 a为真,b为假,c为真 a and b and c 所有条件都为真,结果就为真,只要一个不为真,结果就为假 where 条件语句:子句中使用,进行模糊过来 例://查询出没有被删除数据 select * from 表 where is_delete=0; is null 空值的处理 ifnull(字段,值) if 字段 is null,将值付给该字段 is not null if 字段is not null 字段值为它本身 order by order by 字段 关键字(可选) 对获取的信息排序;用于查询出的数据按照一个列或者多个列进行排序; 使用order by时,字段后不加关键字,为默认升序(从小到大)排序,需降序时,在字段后加desc; 关键字 order by 列名 asc 从小到大,升序排序 order by 列名 desc 从大到小,降序排序 例:查询出所有的员工信息并按员工的基本工资降序排序 select * from emp order by sal desc; 例:返回员工的信息并按工作降序,工资升序排列 select * from emp order by job desc,sal asc; Distinct 去重 当展示的数据有重复的值,可以使用distinct去重.将重复的值过滤掉,只保留一个 例:查询学生来自哪几个地方 select address from student; limit n,m 展示指定的行 n为起始行行号 m为需要展示的行数 例:查询出在表中前五行的员工信息 limit 0,5 select * from emp limit 0,5; 例:查询出基本工资属于最高的第3-6名的员工信息 select * from emp order by sal desc limit 2,4; like 模糊匹配 在where子句中,利用like子句代替'=' % 匹配所有 李% _ 匹配单个字符 李__ 例:找出名称中有'L'的员工信息 select * from emp where ename like '%L%'; not like 在where子句中,利用NOT like子句代替'!=' 例:找出名称中不包含S的员工 select * from emp where ename not like '%s%'; in in操作符允许在where子句中规定多个值 例:查询名字为'smith''blake''king'的员工信息 select * from emp where ename in('smith','blake','king'); 等同于 select * from emp where ename='smith' or ename='blake' or ename='king'; in中的SQL语句可以当成条件处理,in括号里面的sql语句只能为一列数据 not in 不在……里面 例:查询出名字不为'SMITH''BLAKE''KING'的员工信息 select * from emp where ename not in('SMITH','BLAKE','KING'); between 值1 and 值2 在值1-值2之间 数据范围。这些值可以是数值、文本或者日期 例:查询基本工资在1000到1500之间的员工信息 SELECT * from emp where sal between 1000 and 1500; 等同于 select * from emp where sal&gt;1000 and sal&lt;1500; 注: a、不同的数据库系统用between and值会有差异,有些不包含边界值,有些包含,又有些只包含其中一个边界值,请检查你使用的数据库系统的规则是怎样的; b、用between and时,注意小的值放and左边,大的值放and右边; not between 值1 and 值2 不在值1-值2之间 例:查询出基本工资不在1500-3000之前的员工基本工资信息 select sal from emp where sal not between 1500 and 3000; 模糊条件查找练习 1.查找基本工资在1000到2000之间的员工姓名和基本工资 select ename,sal from emp where sal between 1000 and 2000; 2.查找基本工资在2000到3000以外的员工信息 select * from emp where sal not between 2000 and 3000; 3.获取‘SMITH‘, ’WARD‘, ’BLAKE’这三个员工的信息 select * from emp where ename in(SMITH‘, ’WARD‘, ’BLAKE’); 4.获取员工编号在7566到7839之间的员工信息 select * from emp where empno between 7566 and 7839; 5.获取员工SMITH 和BLAKE之前的员工信息 select * from emp where ename between 'BLAKE' and 'SMITH'; 6.获取部门10员工的经理的信息 select * from emp where empno in (select mgr from emp where deptno=10);</code></pre>

页面列表

ITEM_HTML