MYSQL 4天速成------第一天

MYSQL5天速成之第一天

MYSQL常用命令

查看当前所有的数据库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();
  • 起别名 好处:1.便于理解 2.如果要查询的字段有重名的情况,使用别名进行区分
    使用as select lastname as 女生,firstname as 名 from employees;
使用空格    select  lastname  女生, firstname  名 from employees ;

查询salary,显示结果为output

select salary as 'output' from employees;
  • 去重 (加一个distinct)
    查询员工表中涉及到所有部门的部门编号
select  distinct  department_id from employees;
  • +号的作用
    mysql中的+号只有一个作用=运算符
    查询员工名和姓连接成一个字段,并显示姓名
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;
如果转换失败,则将字符型数值转换为0select ‘ABC’+90;
其中一方为null,则结果肯定为nullselect null+10;
  • 显示表departments结构,并显示其中的全部数据
desc departments;
select * from departments;
  • 显示出表employees 中的全部job_id(不能重复)
select distinct job_id from employees;
  • 显示出表employees的全部列,各个列之间用逗号连接,列头显示成output
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;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值