方式一:net start mysql
方式二:在计算机管理里面手动打开数据库
方式一:本地登录
即数据库与客户端在同一台电脑上。
方式二:远程登录
mysql -uroot -h数据库服务器的IP地址 -p
但用root账户对数据库服务器进行远程登录,一般会被拒绝,因为root账户的权限非常高。
若是想要访问,可以按照以下步骤进行操作:
show databases;
use 数据库名;
show tables
create database 数据库名;
drop database 数据库名;
select database();
select version();
查看mysql --version
desc 表名
;
select语句永远不会改变表的结构
语法格式:select 字段名 from 表名;
输入\c来终结该语句
语法格式:select 字段名,字段名,字段名… from 表名;
语法格式:select * from 表名;
例如:select deptno*12 from dept;
可以起中文别名
条件 | 说明 |
---|---|
= | 等于 |
<>或!= | 不等于 |
>= | 大于等于 |
<= | 小于等于 |
> | 大于 |
< | 小于 |
between…and… | 等同于 >= and <= |
is null | 为空 |
is not null | 不为空 |
<=> | 安全等于(可读性差,很少使用了)。 |
and 或 && | 并且 |
or 或 || | 或者 |
in | 在指定的值当中 |
not in | 不在指定的值当中 |
exists | |
not exists | |
like | 模糊查询 |
select 字段名 from 表名 where 过滤条件;
执行顺序,先from再where最后select
mysql无论是语句还是字段等内容都不区分大小写,orcale区分大小写
在开发中一般使用<>表示不等于。
select * from emp where deptno<>10;
查询工资在1600~3000的员工信息
between…and…是闭区间的。between 1000 and 2000 是包含1000和2000的。
select * from emp where sal>=1600 and sal<=3000;
select * from emp where sal between 1600 and 3000;
and和or同时出现时,and优先级较高,会先执行,如果希望or先执行,这个时候需要给or条件添加小括号。另外,以后遇到不确定的优先级时,可以通过添加小括号的方式来解决。对于优先级问题没必要记忆。
between…and…是闭区间的。between 1000 and 2000 是包含1000和2000的。
不仅能用在数字方面,字符串,日期方面也可以。
select * from emp where sal between 1600 and 3000;
select ename from emp where ename between 'a' and 'z';
select * from emp where HIREDATE between ' 1982-01-23' and '1987-04-19';
判断某个数据是否为null,不能使用等号,只能使用 is null 判断某个数据是否不为null,不能使用不等号,只能使用 is not null 在数据库中null不是一个值,不能用等号和不等号衡量,null代表什么也没有,没有数据,没有值.
案例1:找出工作岗位是MANAGER和SALESMAN的员工姓名、薪资、工作岗位.
select * from emp where comm = NULL or comm = 300;
上述语句执行的效果如下:select * from emp where comm = 300;
NULL不能用等号=进行判断,所以comm = NULL结果是false.
in是自动忽略NULL的,但not in是不忽略NULL的。
如下代码:mysql> select * from emp where comm not in(null,300);
结果什么也查不出来。
语法格式:select …from … where 字段1 like ‘通配符表达式’;
查含有下划线的字符需要转义_
语法格式:select .. from .. order by 字段 asc/desc
默认为升序。
语法格式:select .. from .. order by 字段 asc/desc,字段 asc/desc
例子:查询员工的编号、姓名、薪资,按照薪资升序排列,如果薪资相同的,再按照姓名升序排列。
select empno,ename,sal from emp order by sal asc,ename asc;
找出岗位是MANAGER的员工姓名和薪资,按照薪资升序排列。
select ename,sal from emp where job = 'MANAGER' order by sal asc;
where先执行,order by语句是最后执行的。
首先执行where再执行from再执行select最后执行order by。
去除表中重复的记录(联合全部字段去重),但真实数据库里面的不会改变。
distinct 出现在所有字段的最前方。
当数据库连接不上的时候,可以看看是不是在计算机管理的标准里面将数据库关闭了。
`
where先执行,order by语句是最后执行的。
首先执行where再执行from再执行select最后执行order by。
去除表中重复的记录(联合全部字段去重),但真实数据库里面的不会改变。
distinct 出现在所有字段的最前方。
当数据库连接不上的时候,可以看看是不是在计算机管理的标准里面将数据库关闭了。