数据库是用于长久安全保存保存数据的仓库,我们自己编写小型项目的数据可以使用写文件的方法实现,但是这种方法效率低,也不安全,故大型项目的数据大多保存在数据库中,提供了高效的增删改查方法。
数据库目前分为关系型和非关系型:
关系型数据库指通过外键关联建立表的关系的数据库,目前有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-winx64\data\ 数据路径 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 database\table打开数据库/表等操作。
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的增删改查语句,更主要的是查询的语句编写。
猜你喜欢
- 17天前(上海文旅产业发展高峰论坛)《上海打造文旅元宇宙新赛道行动方案》发布
- 17天前(安徽民宿发展报告)首届安徽省乡村民宿创意设计大赛启动
- 17天前(三亚太阳湾柏悦度假酒店)三亚太阳湾柏悦酒店携手ROSEONLY诺誓缔造浪漫七夕
- 17天前(“为人民绽放——国家艺术基金优秀剧目展演”在合肥开幕)“为人民绽放——国家艺术基金优秀剧目展演”在合肥开幕
- 17天前(重庆恐龙化石遗址)重庆黔江恐龙化石抢救性发掘新闻发布会举行
- 17天前(新西兰航空官方网站)新西兰航空85周年焕新启航 全方位客舱升级,飞「悦」快意时光
- 17天前(“清透会呼吸”轻松拿捏春日出游氛围感)“清透会呼吸”轻松拿捏春日出游氛围感
- 17天前(澳涞山庄见证北欧零碳到中国实践,世界十佳环境保护城市榜单发布)澳涞山庄见证北欧零碳到中国实践,世界十佳环境保护城市榜单发布
- 17天前(筑格集团有限公司)洲际酒店集团旗下筑格酒店品牌正式亮相大中华区
- 17天前(海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章