前情提要:  

   数据库初识别

    一:数据库的介绍

https://github.com/Endless-Clould/homework/blob/master/student_system.sql

数据再这

好处:

  • 持久化存储

  • 读写速度极高

  • 保证数据的有效性

  • 对程序支持性非常好,容易扩展

数据库就是一个由一批分门别类的数据构成的有序集合,这个集合通常被保存为一个或多个彼此相关的文件,

我们可以理解为,数据库就是一种特殊的文件,其中存储着需要的数据。

    二:数据库的类型

        1.1 关系型数据库(RDBMS)

关系型数据库(RDBMS)

RDBMS即关系数据库管理系统(Relational Database Management System)

oracle、mysql、ms sql server、sqlite

关系型数据库:数据库里面的数据全部存在数据表中,而这些表在存储的过程中,各自之间有内在联系。因为这种联系,我们称这样的数据库叫"关系型数据库"

优点:

容易理解,二维表结构

使用方便,通用的SQL语言使得操作关系型数据库非常方便,便于复杂的查询

支持事务等复杂的数据操作功能

      1.2 非关系型数据库(nosql)

NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。

MongoDB,Redis

优点:

数据之间无关系,容扩展

结构简单,具有非常高的读写性能,在大数据量下,同样表现优秀

无需事先建立字段,随时可以存储自定义的数据格式

    二.1:关系型数据库的核心元素

    三:mysql 的基本介绍

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般网站软件的开发都选择 MySQL 作为网站数据库。

MySQL是一种客户端/服务器端(C/S)的软件,我们要学会如何如何安装服务器端的MySQL,还需要学会如何利用客户端工具操作MySQL数据,常用的客服端工具有: 命令行、pycharm-database、Navicat等

官网:https://www.mysql.com/

下载:https://dev.mysql.com/downloads/windows

services.msc

    四:常用的入门操作命令

mysql -uroot -p密码 命令行链接 mysql

status; 查看数据状态信息

exit、quit 退出数据库连接

show databases; 显示所有的数据库

create database data charset=utf8; 新创建一个数据库

use 数据库名; 选择要编辑的数据库,例如是data,则语句就是 use data;

select database(); 查看当前在哪个数据库下

show tables; 展示数据库下所有的表

\c 当你输入有误,想重打的时候可以试试加个 \c 取消

source 数据库文件名.sql; 导入数据库到mysql中
可以把别人事先创建好的数据库文件导入到当前电脑的mysql中
desc `表名`; 查看表结构信息

     sql    

SQL,指结构化查询语言,全称是 Structured Query Language,是一种 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言,可以让我们可以处理数据库。

SQL语句主要分为:

  • DQL:数据查询语言,用于对数据进行查询,如select

  • DML:数据操作语言,对数据进行增加、修改、删除,如insert、udpate、delete

  • DDL:数据定义语言,进行数据库、表的管理等,如create、drop

  • TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback

  • DCL:数据控制语言,进行授权与权限回收,如grant、revoke

  • CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor

       >基本书写规则

     DQl

       >查询

查询 SELECT

select 字段1,字段2 from 表名 从指定表中查询所有数据的字段1和字段2信息

按条件查询数据

select 字段1,字段2 from 表名 WHERE 字段名 = 字段值;

1、查找学生表的姓名跟年龄
SELECT name,age FROM student;
查找课程表中的id,课程名称和教室编号
select id,course,address from course;

2、查找学生表所有的信息
SELET * FROM student;

3、为字段名设置别名,简化字段名
SELECT name AS n,age AS a FROM student;

4、使用条件查询想要的数据,查学号为14的学生姓名
SELECT name FROM student WHERE id = 14;

使用条件查询名字叫'吴杰'的学生姓名和年龄
SELECT name,age FROM student WHERE name='吴杰';

注意:应该根据你的实际需求查询所要的字段值,而不是使用 * ,使用这个效率很低。

       >按照条件查询  

       >逻辑运算符

 

    

         >范围运算符

       >比较预算符

       >in 运算符(多条件查询)

       >模糊查询

       >聚合运算

       >分组查询

       >结果查询

       >结果限制

     DML

       >添加数据(INSERT)

       >更新数据(UPDATE)

       >删除数据(DELETE)

     DDL

      

    

   作业:   

    

学生表操作:

1. 查询出班级205有多少个男生

2. 查询出名字为4个字的所有学生信息(编号、姓名,年龄,班级)

3. 查询出所有姓王的学生信息(编号、姓名,年龄,班级)

4. 查询出班级编号为201,202,203的女生总人数

5. 查询出学号整十的所有女生信息(姓名、年龄、个人简介)

6. 删除301班级中年龄在23岁以上的学生信息

7. 把一个叫'卫然'的学生的姓别改成女的

8. 把401班级中的姓名为'吴杰'的学生信息删除

-- DELETE FROM student where name ="吴杰 and class =401

9. 计算305班中所有学生的平均年龄以及他们的最大年龄和最小年龄

10. 查询401,402,403,404,405中所有学生的年龄平均值

11. 查询出所有学生中"白"的学生信息,并对他们使用年龄进行升序排列

12. 添加以下学生记录到数据表中
姓名 年龄 性别 班级 个性签名
张三丰 22 1 301 我是武当老板
张翠山 21 1 302 我是武当老板的五弟子
张无忌 20 1 302 明教老板

13. 查询年龄在18-20之间的姓李的女生

14. 查询年龄在18-20之间的所有女生,并按照编号进行降序排序

15. 查询出301,302,303,304,305,306中每个班级总人数。

成绩表操作

16. 查询出学号为9的学生的总成绩

17. 查询出课程编号为4的课程平均成绩

18. 查询出学号为6的学生的所有成绩,并显示对应的课程编号。

19. 查询出课程编号为20的课程成绩,并进行分数的降序排列,显示10个成绩即可。

20. 查询出学号为1,2,3,4,5,6这几个学员的平均成绩。

21. 查询出证成绩表中每个学科的平均成绩。

    

day 41 数据库初学习的更多相关文章

  1. c# window服务-初学习

    window服务-初学习 一.工具: VS2015+NET Framework4.5. 二.操作: 1.新建windows服务的项目: 2.修改windows服务相关内容: 3.预览windows服务 ...

  2. NoSQL 数据库产品学习总结(一)

    NoSQL 数据库产品学习总结(一) 本篇文章共分为四个章节,会陆续整理下 Memcached.Redis.tair.mongodb.hbase.SequoiaDB. Cassandra的相关知识. ...

  3. JDBC操作数据库的学习(2)

    在上一篇博客<JDBC操作数据库的学习(1)>中通过对例1,我们已经学习了一个Java应用如何在程序中通过JDBC操作数据库的步骤流程,当然我们也说过这样的例子是无法在实际开发中使用的,本 ...

  4. mySQl数据库的学习笔记

    mySQl数据库的学习笔记... ------------------ Dos命令--先在记事本中写.然后再粘贴到Dos中去 -------------------------------- mySQ ...

  5. clisp, scheme 和 clojure 初学习

    clisp, scheme和clojure 初学习 1 clojure "clojure绝对会成为你的编程工具箱里的终极武器" "其他语言可能只是工具,但 Clojure ...

  6. Mysql数据库基础学习笔记

    Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...

  7. TimesTen 应用层数据库缓存学习:4. 仅仅读缓存

    在运行本文样例前.首先先运行TimesTen 应用层数据库缓存学习:2. 环境准备中的操作. Read-only Cache Group的概念 仅仅读缓存组例如以下图: 仅仅读缓存组(Read-Onl ...

  8. 数据库MySQL学习笔记高级篇

    数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...

  9. Python初学习:简单的练习题

    Python初学习 一些见到那的练习题: 初级难度 设计一重量转换器,输入以g为单位的数字后,返回换算结果以Kg为单位的结果 中级难度 设计一个求直角三角形斜边长的函数,(以两个直角边为参数,求最长边 ...

随机推荐

  1. 使用Jsoup获取网页内容超时设置

    使用Jsoup获取网页内容超时设置 最近使用Jsoup来抓取网页,并对网页进行解析,发现很好用.在抓取过程中遇到一个问题,有些页面总是报Timeout异常,开始想是不是被抓取网站对IP进行了限制,后来 ...

  2. 2018.06.30 cdq分治

    #cdq分治 ##一种奇妙的分治方法 优点:可以顶替复杂的高级数据结构:常数比较小. 缺点:必须离线操作. CDQ分治的基本思想十分简单.如下: 我们要解决一系列问题,包含修改和查询操作,我们将这些问 ...

  3. 2018.09.08 poj1185 炮兵阵地(状压dp)

    传送门 状压dp经典题. 我们把每一行的状态压成01串. 预处理出每一行可能出现的状态,然后转移每个被压缩的状态的1的个数就行了. 注意当前行转移要考虑前两行的状态. 还要注意只有一行的情况. 代码: ...

  4. 2018.08.20 loj#115. 无源汇有上下界可行流(模板)

    传送门 又get到一个新技能,好兴奋的说啊. 一道无源汇有上下界可行流的模板题. 其实这东西也不难,就是将下界变形而已. 准确来说,就是对于每个点,我们算出会从它那里强制流入与流出的流量,然后与超级源 ...

  5. 着重基础之—MySql 不能遗忘的索引操作

    着重基础之—MySql 不能遗忘的索引操作 关于MySql索引的基础知识我就不在这里写了,我不太想当信息的搬运工. 技巧分享:Workbench 作为一款专为MySQL设计的ER/数据库建模工具.除了 ...

  6. StackView实现叠加在一起的图片循环移动像循环队列一样

    MainActivity.java public class MainActivity extends Activity {   StackView stackView; int[] imageIds ...

  7. webUploader上传视频,包括上传进度、上传状态、暂停和取消等

    踩坑视频上传: 点击开始上传: 头部引入webuploader.css <!DOCTYPE html> <html lang="en"> <head& ...

  8. Hdu1728 逃离迷宫 2017-01-17 10:56 81人阅读 评论(0) 收藏

    逃离迷宫 Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submissi ...

  9. http://www.cnblogs.com/xalion/p/5111279.html

    https://quality.embarcadero.com/secure/Dashboard.jspa 注册成 delphi qc

  10. Python学习-27.Python中的列表(list)

    列表已经用了很多次了.使用中括号包含元素. list = ['a','b','c'] 获取元素使用[]. print(list[0]) 输出a 不过值得注意的是,[]只能是0到元素个数-1吗?在Pyt ...