数据库是用于长久安全保存保存数据的仓库,我们自己编写小型项目的数据可以使用写文件的方法实现,但是这种方法效率低,也不安全,故大型项目的数据大多保存在数据库中,提供了高效的增删改查方法。
数据库目前分为关系型和非关系型:
关系型数据库指通过外键关联建立表的关系的数据库,目前有MySQL、Oracl、SQLServer等。
非关系数据库指数据以对象形式存储,对象的关系由自身属性决定,如Redis、MongoDB。
MySQL的安装
可以到MySQL官网下载资源,解压目录,本人在D:mysql-5.7.19-winx64
,将该目录下bin文件夹的位置添加到环境变量的path
中,先前配置Java时已使用过,这里不再赘述。
增加配置文件,在安装目录下创建my.in
文件,文件内容如下:
[mysqld]
basedir=D:mysql-5.7.19-winx64 输入路径
datadir=D:mysql-5.7.19-winx64data 数据路径
port=3306 服务端口
skip-grant-tables 无密码登录
启动管理员模式下的CMD,并将路径切换至mysql下的bin目录,然后输入mysqld –install
安装mysql,
此时可能出现错误
这是因为缺少运行环境,我们装上vcredist
即可修复。
再输入 mysqld --initialize-insecure --user=mysql
初始化数据文件,此时应该可以看到安装目录下新出现了data文件夹,说明安装成功。
此时在cmd窗口中输入mysql -u -p
即可进入MySQL系统。
更改密码
先前我们安装了无密码的MySQL系统,如果以后要存储隐私数据的话还是加上密码保护比较好,首先我们在cmd中输入mysql –u root –p
进入mysql管理界面,
更改密码指令
update mysql.user set authentication_string=password('password') where user='root'and Host = 'localhost';
刷新权限flush privileges;
,删除my.ini
文件内skip-grant-tables
语句,重启MySQL,如下界面是更改成功
可视化工具
按照上述流程装好M有SQL后,使用只能通过cmd黑窗口,很不方便,我们可以使用可视化工具帮助我们构建项目,在这里我们使用navicat
,安装好后是如下界面:
SQL语句
用于操作数据库及其中的内容,具体又可分为四种。
DDL数据定义语言
如create
、drop
、alter
、show datebase/table
展示所有数据库/表、use table
打开数据表、create databasetable
打开数据库/表等操作。
MySQL中指令不区分大小写,创建表时可创建对应列,每个列由列名、类型、约束构成。
每张表的应该有唯一标识,主键,不能为空,不能重复,大多规定为自动递增,使用primary key ()
指定。同时还有外键,用于保持数据一致性完整性,实现多张表的关联。
该部分指令做了解即可,我们一般使用图形界面对数据库和表进行处理。
DML数据操作语言
对表中数据进行增删改操作使用的语言,分别借助insert
、delete
、update
实现,增删改分别实现如下:
insert into 表名(列名,列名)values(字段值)
往表中插入数据
update 表名 set 修改内容 where 限制条件
修改数据
delete from 表名 where 删除内容
删除数据
DQL数据查询语言
基本格式
格式为select 字段名称 from 表名 where 限制条件
,语法与编程语言语法基本类似。
like
模糊查询,支持%和_匹配,%用以代替其他字符,_用于模糊一个字符。
order by 排序字段
按序输出,默认由小到大,可加多个字段,用逗号分隔,排序以第一个字段为准,写在where
语句后,asc
升序,desc
降序,跟在排序字段后。
as
起别名,查询时列名用as
后的内容代替输出。
distinct
去重,修饰的字段不取重复值。
IFNULL(字段,值)
判断字段是否为null,如果为null进行数据转换,值为后者。
聚合函数
count(字段)
求总记录数,自动忽略空值。
sum(字段)
求和
avg()
求平均值
max()
求最大值
min()
求最小值
分组查询
group by 字段
分组字段必须出现在select
后
having
对分组的数据再次进行过滤,在group by
后根据条件过滤,其实是代替where
,只能用于过滤分组后的数据,不可单独使用。
语句执行顺序
where -> group by ->having -> select -> order by
使用where
过滤效率较高,只有必要的才放到having
中。
limit分页
select form limt 起始索引位置,分页单位;
由其实位置开始,查询到的以分页单位为一页展示,起始索引位置计算方法—当前页减一乘分页单位。
多表联查
在两张及以以上的表进行的查询。
SQL92:select 字段名 from 表名,表名 where 限制条件
多表联查时一定要给sql加条件,否则出现笛卡尔积现象,即将同时包含字段名的记录都输出出来。限制条件多为限制两张表的外键相同,这种连接方式也成为内连接,或等价连接。
自连接:自己连接自己,相当于对相同的表进行等价连接。
SQL99:内连接select 字段名 from 表 inner(可省略) join 表名 on 连接条件 where 限制条件
,该方法将表连接和查询条件分离,效率更高,但内连接会自动忽略空数据,为解决该问题,sql99引入外连接。
right outer(可省略) join
右连接,left join
左连接,主表显示全部数据,右连接右为主表,左连接左为主表。
子查询,即嵌套查询,将查询结果作为一个表。
多表查询较为复杂,编写时可逐步拆解需求,使用嵌套连接等手段逐步完善。
DCL数据管理语言
修改权限,设置事务,设置事物回滚
总结
主要是sql的增删改查语句,更主要的是查询的语句编写。
原文地址:https://blog.csdn.net/weixin_46763552/article/details/135926423
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_64861.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!