赞
踩
查看当前所有的数据库 | show databases; |
---|---|
打开指定的库 | use 库名; |
查看当前库的所有表 | show tables; |
查看其它库的所有表 | show tables from 库名; |
创建表 | create table 表名(列名 列类型,…) |
查看表的结构 | desc 表名; |
查看服务器的版本 | 1.登录到mysql 服务端 select version(); |
2.没有登录mysql 服务端 mysql – version / mysql -v |
select 查询字段 from 表名;
查询字段:
1.表中的字段、常量值、表达式、函数
2.查询的结果是一个虚拟的表格
select lastname from employees;
select lastname,email from employees;
select * from employees;
select 100;
select 100%98;
select version();
使用as select lastname as 女生,firstname as 名 from employees;
使用空格 select lastname 女生, firstname 名 from employees ;
查询salary,显示结果为output
select salary as 'output' from employees;
select distinct department_id from employees;
select lastname + firstname as 姓名 from employees;错误写法
这种常用拼接concat select concat(‘a’,‘b’,‘c’)as 结果;
select concat(lastname,firstname) as 姓名 from employees;
两个操作数都为数值型,则做加法运算 | select 100+60; |
---|---|
如果其中一个为字符型,试图将字符型数值转换成数值型 转换成功则继续做加法 | select ‘123’+60; |
如果转换失败,则将字符型数值转换为0 | select ‘ABC’+90; |
其中一方为null,则结果肯定为null | select null+10; |
desc departments;
select * from departments;
select distinct job_id from employees;
select concat (‘列名’,‘,’,‘列名’) as output from employees;
select 查询列表 from 表名 where 筛选条件;
分类:
1.按条件表达式筛选:> < = != <> >= <=
2.按逻辑运算符筛选: && || ! and or not
3.模糊查询:like between and in is null
查询工资大于1000的员工信息
select * from employees where salary >1000 ;
查询部门编号不等于90号的员工名和部门编号
select lastname ,department_id from employees where department_id !=90;
&&和and | 两个条件都为true的时候,结果为true 反之为false |
---|---|
ll或or | 只要有一个条件为true,结果为true,反之flase |
!或not | 如果连接的条件本身为false,结果为true,反之为false |
查询工资在1000到2000之间的员工名、工资以及奖金
select lastname,salary,commission_yet from employees where salary between 1000 and 2000;
查询部门编号不是在90到100之间或者是工资高于15000的员工信息
select * from employees where department_id not between 90 and 100 or salary >15000;
查询员工名中包含字符a的员工信息
select * from employees where lastname like '%a%';
查询员工名中第三个字符为e,第五个字符为a的员工名和工资
select lastname,salary from employees where lastname like '--e-a%';
查询员工名中第2个字符为_的员工名
select lastname from employees where lastname like "-\-%";
或者
select lastname from employees where lastname like '-$-%'escape '$';
like特点:一般和通配符搭配使用
通配符:%任意多个字符,包含0个字符 -任意单个字符
特殊字符的查询:需要用escape语句。但是经测试不能用escape ‘’,所以用escape ‘/’
先将参数中 / 替换成 //,% 替换成 /%,_ 替换成 /_,\ 替换成 /\;
然后在每个需要like查询的字段后加上escape ‘/’。
查询员工编号在100到200之间的员工信息
select * from employees where employees_id between 100 and 120;
between and :
1.提高语句的简洁度
2.包含临界值
3.两个临界值不要调换顺序
查询员工的工种编号是if_prog,ad_vp,ad_pres中的一个员工名和工种编号
select job_id,lastname from employees where job_id in ('if_prog','ad_vp','ad_pres');
含义:判断某字段的值是否属于in列表中的某一项
特点:
1.使用in提高语句的简洁度
2.in的列表值类型必须统一或者兼容
3.不支持通配符
查询没有奖金的员工和奖金率
select lastname,commission_pet from employees where salary is null;
查询员工号为176的员工姓名和部门号以及年薪
select lastname,department_id,salary*12 as 年薪 from employees where job_id = 176;
=或<>不能用于判断null值,is null 或者 is not null 可以判断null值
排序查询
select 查询列表 from 表 where 筛选条件 order by 排序列表 asc(升序 默认) / desc (降序);
order by 字句中:
1.可以支持单个字段、多个字段、表达式、函数、别名
2.一般放在查询的最后面,limit 子句除外
查询员工信息,要求工资从高到低排序
select * from employees order by salary desc;
查询部门编号大于等于90的员工信息,按入职时间的先后进行排序
select * from employees where department_id >=90 order by time asc;
按年薪的高低显示员工信息和年薪
select *,salary*12 年薪 from employees order by salary*12 desc;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。