一、安装过程中
绿色版不好安装 略过
msi版 Enable TCP/IP Networking 与Port Number:3306 3306易被攻击改成3366
IP与端口号 IP电脑通信 端口号电脑间服务通信 先IP后端口号
选字符:三个选项含义--英语 日语 全球(一般设置选utf8)
超级管理员账户默认root不能修改
有一个选项勾选后不用自己配置环境变量
二、登录
登录mysql:mysql -uroot -p
mysql -uroot -p
Enter password:
登录成功标志:出现mysql>
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Mysql Commond Line Client是root身份登录的
Mysql服务有两种:1、此电脑右键-》管理-》服务和应用程序
2、cmd下:net stop mysql或者net start mysql
三、表
表是一种结构化的文件,包括行列主键
列叫做字段Column 每个字段都有四个属性:名称、数据类型、约束、长度
行 记录/数据
四、SQL分类
DQL Data Query Language 查询语句 关键字 select
DML Manipulation 数据操作 insert delete update
DDL Definition 数据定义 create drop alter
TCL Transactional Control Language 事务控制 Commit,rollback
DCL Data Contiol Language 数据控制 grant revoke
五、导入sql文件
1、登录
2、建库 create database bjp;
3、使用该库 use bjp;
Database changed
4、导入sql文件 source 文件全路径/直接拖入;
5、删库跑路 drop database bjp;
常见错误:1、MySQL>下忘记敲分号,不敲分号是一个句子 可以使用\c终止
2、字母写漏的
3、文件路径不对的
六、开始查看
1、登录,用库 use bjp;
2、看该库下所有表 show tables;
+-----------------------+
| Tables_in_bjp |
+-----------------------+
| dept |
| emp |
| salgrade |
+-----------------------+
3、看表结构 desc dept; 可以看到诸如都有哪些字段,字段类类型之类的 desc description
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| DEPTNO | int(2) | NO | PRI | NULL | |
| DNAME | varchar(14) | YES | | NULL | |
| LOC | varchar(13) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4、常见词汇:salgrade salary grade 工资等级表 ,emp 员工表 , dept 部门表
---------------------------------------
其他查看
1、看mysql dbms 下有多少数据库 show databases;
2、看mysql版本 在Windows cmd下 mysql --version/-V
在数据库下 select version();
+-----------+
| version() |
+-----------+
| 5.7.19 |
+-----------+
3、查看当前编辑的数据库是哪个 select database();
4、查看其他数据库中的表 show tables from 你想看的数据库名;
5、查看建表用的语句 show create table 你想看的表名;
--------------------------------------
退出
1、Ctrl+C
2、exit
3、quit
七、DQL
1、在sql语句中不区分大小写,分号结尾
2、简单查询
select 字段1,字段2... from 表名;
select * from 表名; 不建议这样写 可读性差 效率低
案例 查年薪:
select empno,ename,sal*12 from emp;
select empno,ename,sal*12 as yearsal from emp; 可以在结果中将列名sal*12 重命名为 yearsal as可以省略不写
3、条件查询
select ~ from ~ where sal=5000; 可用 =,>=,<=,!=同<>
...where sal>=3000 and sal<=5000;同...where sal between 3000 and 5000;
and左闭右开 小值在前大值在后 可以写字符 'A' ---'Z'
4、NULL
NULL不是具体值 什么都不是 0才是具体值 有NULL参与的数学运算结果都是NULL
...where comm is null 不能写 =null not取非,用在is 或 in中 and并且 or或者 and优先级大于or
案例找工资大于1800,部门编号为20或者30的员工
select epmno,enam,sal,deptno
from emp
where sal>1800 and (deptno =20 or deptno =30); 思考有无括号的区别
--------------------
in 在选项中选择而不是范围 区别于between
如 ...where sal in(1500,5000) 同where sal=1500 or sal=5000;
5、like 像 模糊查询
%代表 0~n个任意字符 _代表任一个字符
where ename like '%p%';查名字含p的
'_p%'第二个字母是p的
--------------------------
排序 order by 默认是升序 asc 降序的话写desc 不同与上一个desc
order by sal desc,ename asc;
order by 2; 意思是按select后面第二个字节默认升序排列 如 select sal,ename,eno中 2指的是ename
八、数据处理函数
lower select lower(ename) from emp;
upper
length
trim
rand 生成随机数
round (被四舍五入的数,位数 ±、0)
substr 截取 (ename,2,3) ename--被截取的列名 2--起始位置 3--截取长度
案例 找名字第二个字母是A的员工
select ename from emp where substr(ename,2,1)='A';
-------------------------------------------------------
ifnull 如果为空 select ename ,ifnull (comm,0) from emp;
select ename, ifnull(comm,0) from emp;
+--------+----------------+
| ename | ifnull(comm,0) |
+--------+----------------+
| SMITH | 0.00 |
| ALLEN | 300.00 |
| WARD | 500.00 |
| JONES | 0.00 |
| MARTIN | 1400.00 |
| BLAKE | 0.00 |
| CLARK | 0.00 |
| SCOTT | 0.00 |
| KING | 0.00 |
| TURNER | 0.00 |
| ADAMS | 0.00 |
| JAMES | 0.00 |
| FORD | 0.00 |
| MILLER | 0.00 |
+--------+----------------+
案例查年薪 select ename,(sal+ifnull(comm,0))*12 as yearsal from emp;
九、关于Mysql中的日期处理