MyBatis是对JDBC的简化
以后的升级框架,基本都是围绕 JavaWeb程序 所做的升级
Mysql就是一个数据库管理系统,在系统里可以创建一个个数据库,即DBMS中创建一个个DB
Mysqul官网https://downloads.mysql.com/archives/community/
选择5.7.24版本下载
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
创建一个my的文档,将代码复制进去,格式改成ini
要以管理员的方式打开cmd,否则报错
C:\Windows\System32的右上角搜索cmd
右键cmd以管理员方式运行
运行以下代码:
初始化Mysql---会在sql的文件位置,自动创建data,此目录用于存储数据库内容
mysqld --initialize-insecure
注册Mysql---注册为计算机的后台服务
mysqld -install
查看服务的位置并启动mysql服务(第一次需要手动启动)
1.任务管理器的右上角的服务
2.也可以在cmd中输入services.msc,然后右键启动
3.也可以直接在cmd直接输入net start(stop) mysql,进行启动(停止)
只要电脑上安装了mysql,就可以称这台电脑为:mysql服务器
即此台电脑可以提供数据操作服务
设置用户名密码:
直接在cmd里输入
mysqladmin -u root password 1234
再输入这个,就将cmd和bin目录下的mysql.exe客户端连接起来,即可以直接在cmd里写数据库了
mysql -uroot -p1234
退出输入:
quit、exit
连接其他人的服务器:
mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306)
卸载:
暂停服务
net stop mysql
删除服务
mysqld -remove mysql
再删除目录和path配置即可
用表来存储,称关系型数据库,不是用表来存储,称非关系型数据库
即表和表之间相关联
数据是存储到磁盘,永久化存储的
每个数据库就好比文件夹,数据表和数据就是文件,例如:db.frm就是表文件,db.MYD就是数据文件
数据库+数据表+数据组合起来,将来展示给客户的就是以下的表格
DDL:
操作数据库
第一个类似提示语,信息格式
剩下三个在data文件夹里有显示
查看 show databases;
创建文件夹 create database db1;
创建文件夹(如果不存在)create database if not exists db1;
删除文件夹 drop database db1;
删除文件夹(如果存在)drop database if exists db1;
进入文件夹 use db1;
查看已进入的文件夹 select database();(查看正在使用的文件夹,即正在使用的数据库,例如你在mysql中,使用这个语句,显示的是mysql,如果你进入了db1数据库,显示的就是db1数据库,因为创建第一个都是都是数据库)
注意点:
1.查看文件夹时,databases单词有s
2.创建和删除的判断语法不一样,前者是判断如果不存在,后者判断如果存在
3.在进入文件夹时,调用查看,查看的还是data的文件夹,而不是进入的文件夹
请注意!在操作表的语法和操作数据库的语法 不要弄混淆了,select datanase()是查数据库的
操作表
表的查询:
注意:当前进入的是db1中,是空文件夹,直接查看表会提示错误,需要重新进入数据库,use mysql;然后show tables;
进入mysql数据库 use mysql;
查看表 show tables;
查询表的结构 desc 表名;(用上面的方法查出表后,输入desc可以查询表的 结构)
表的创建:
格式:
create table 表名(
数据名称1 数据类型1,
数据名称2 数据类型2,
数据名称n 数据类型n
);
注意最后一个n无需加逗号
创建好后可以用desc 表名;查看结构
浮点数
a double(5,2)第一个参数为总长度,第二个为小数点后几位。总长度的意思是:例:50.22,总长度为4,小数点为2,即a double(4,2)
定长字符串和变长字符串的区别
定长,存储性能块,但占用空间,一般用于性别等固定文字的存储
变长,需要计算字符串长度,再定长,存储性能慢,但省空间,一般用于名字存储
表的删除:
drop table 表名;
drop table if exists 表名;
表的修改:
alter table 表名 rename to 新表名;
alter table 表名 add 列名 数据类型;
alter table 表名 modify 列名 新数据类型;(修改数据类型)
alter table 表名 change 列名 新列名 新数据类型;(修改列名和数据类型)
alter table 表名 drop 列名;
navicat:
mysql的图形化工具,需要用到注册机
下载navicat和注册机http://t.csdn.cn/ozcgt
注册流程http://www.yishimei.cn/software/966.html
navicat 连接 本地的mysql服务器:
填写完点击左下角测试一下
点击进入之后,就可以直接修改表,无需再输入语句,修改完可以ctrl+s保存一下。
点击查询,查询是写sql语句的地方
DML、DQL都是对数据的操作,注意:不是对表和数据库的操作,而是对数据的操作
DML:
数据的添加:
数据类型data也是用字符串框起来里面用日期格式
表stu后面的格式不建议省略
数据的修改:
记得要加where,否则将是全局修改
数据的删除:
没有加where也是全局删除,即把整个表的数据都删除掉
DQL:
查询在数据库中占比90%,比较重要
基础查询:
在工作中不要用*代替所有类型,要一个一个写上去,最好能加上备注
as可以用,也可以直接在数据类型后加空格再写中文名
distinct是用来去除重复,例如查询表中学生来自的省份,如果有两个广东省,就需要去除一个
条件查询:
请注意:desc 表名,是查询表的结构。select * from 表名,是查询表的数据
null只能使用is或is not 去判断
模糊查询:like
_ 代表前面只有一个字
% 代表可以有任意数量的字
排序查询:
asc为升序(默认可以不写)
desc为降序
如果有多个排序条件,只会在前面条件值一样的时候,才会判断
聚合函数:
注意:null不参与运算,例如求english中最小值,65和null,只会显示65,因为null不参与运算
cont(*)一般用*,来统计数量,即条件内有多少个行数据,在新版本中,*自动会在最快的列计算出来
分组查询:
先进行where筛选,再进行函数计算,再进行筛选
为什么我在求均值的时候,小数会有那么多0呢?我定义的数据类型是math double(5.2)
分页查询:
注意:limit的起始索引,= (当前页码-1)*每页显示的条数