1.登录数据库
mysql -uroot -p57124 #用root用户密码登录
mysql -uroot -p #回车后输入密码,比较安全
通过安装目录 MYSQL 5.5 Command Line Clent 客户端输入密码登录
2.查看mysql版本号
mysql --version
mysql -V
select version(); #登录mysql后查看版本号命令
3.mysql数据库操作命令
show databases; #查看所有的数据库
use test; #现在对test数据仓库进行操作
show tables; #查看test数据库下有几张表
select database(); #查看目前我是在哪个仓库下工作
show tables from mysql; #查看一下mysql这个数据仓库内有那些数据表
4.退出数据库
exit #退出数据库操作
ctrl+c #退出数据库操作
5.SQL语句分类
DQL语句 数据查询语言:select
DML语言 数据操作语言:insert delete update
DDL语句 数据库定义语言:create drop alter #alter[ˈɔːltə(r)]更改;修改;
TCL语句 事务控制语言:commit rollback #rollback[ˈrəʊlbæk]恢复;回复
6.导入数据库脚本
source 路径+*.sql #导入路径下*.sql脚本文件到数据库(例子:bjpowernode.sql)
7.查看数据表中有那些字段
desc 表名; #查看数据表中有那些字段,前提是要使用该表所在数据库(use 数据库名;) describe[dɪˈskraɪb]描述;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SQL查询语句
select ename from emp; # ename 字段名 emp 表名
select ename,sal from emp; # 查询员工姓名和薪水两个字段,中间用(,)分开。
select ename,sal*12 from emp; # 字段名是可以进行数学运算的!(计算年薪)
select ename,sal*12 as yearsal from emp; #给字段起别名。
条件查询语句:要用到where 语句,where必须放到from语句表的后面;执行顺序:先from再where过滤后再检索出来。
select ename,sal from emp where sal = 5000; # 查询薪水等于5000的员工。
select ename,job from emp where job = 'MANAGER'; # 查询工作岗位等于MANAGER的员工信息。注意:''单引号是SQL语句标准写法(细节)
select ename,sal from emp where sal <> 5000; # 查询薪水不等于5000的员工。这是标准写法(!= 也可用,但不标准)
select ename,job from emp where job <> 'MANAGER'; # 查询工作岗位不等于MANAGER的员工信息。
select ename,sal from emp where sal >= 1600; # 查询新水大于等于1600d的员工信息。
select ename,sal from emp where sal > 1600 and sal < 3000; # 查询薪水大于1600且小于3000的员工信息。
select ename,sal from emp where sal between 1600 and 3000; # 查询薪水大于等于1600且小于等于3000的员工信息。
select deptno,ename,sal from emp where sal > 1800 and (deptno = 20 or deptno = 30); # 查询薪水大于1800,并且部门编号为20 或 30的员工信息。
select ename,comm from emp where comm is null; # 查询补助为NULL的员工信息。注意:NULL代表什么也没有,要用 is null。
select ename,comm from emp where comm is not null; # 查询补助不是NULL的员工信息。
select ename from emp where ename like '%s%'; # 模糊查询,查询名字中带 s 的员工信息。
select ename from emp where ename like 's%'; # 模糊查询,查询名字中第一个字母为 s 的员工信息。
select ename from emp where ename like '_d%'; # 模糊查询,查询名字中第二个字母为 d 的员工信息。要用到 _ 占位符。
select ename from emp where ename like '%n_'; # 模糊查询,查询名字中倒数第二个字母为 n 的员工信息。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SQL数据排序:
单元字段排序 order by 字段名称
asc 升序(mysql默认) desc 降序
select ename,sal from emp order by sal; # 按薪水由小到大排序(mysql默认由小到大)
select ename,sal from emp order by sal desc; # 按薪水由大到小降序排序
select ename,hiredate from emp order by hiredate desc; # 按员工入职日期降序排序
select deptno,ename,sal from emp order by deptno,sal desc; # 按多个字段排序,按部门薪水由高到低排序员工信息
select job,ename,sal from emp where job = 'MANAGER' order by sal desc; # 查询经理薪水由高到底排序(遇到where条件时 order by 要放到where的后面)
select * from emp order by 6 desc; # 通过字段下标排序(下标指的是什么?看下图)程序可读性差,易出错,不建议使用!!!
可以看出 SAL 字段是第6个字段,是通过SQL语句查询出来的字段的下标。
select ename,job,sal from emp order by 3 desc; # 这次查询出来的sal字段下标是3
SAL字段下标是3