5.1*2.8*2.1是男是女?

  • SQLite: 嵌入式的小型数据库,应用在手机端
  • 数据库与数据库管理系统的关系

数据库中以表为组织单位存储数据。
表类似我们的Java类,每个字段都有对应的数据类型。
那么用我们熟悉的java程序来与关系型数据对比,就会发现以下对应关系。

根据表字段所规定的数据类型,我们可以向其中填入一条条的数据,而表中的每条数据类似类的实例对象。表中的一行一行的信息我们称之为记录

数据库是不认识JAVA语言的,但是我们同样要与数据库交互,这时需要使用到数据库认识的语言SQL语句,它是数据库的代码。
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
创建数据库、创建数据表、向数据表中添加一条条数据信息均需要使用SQL语句

  • 数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户
  • SQL语句可以单行或多行书写,以分号结尾

  • 可使用空格和缩进来增强语句的可读性

  • 同样可以使用/**/的方式完成注释

  • MySQL中常用的数据类型如下:

    日期类型,格式为yyyy-MM-dd,只有年月日,没有时分秒

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
TIMESTAMP类型有专有的自动更新特性,将在后面描述。

混合日期和时间值,时间戳

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

不超过 255 个字符的二进制字符串
二进制形式的长文本数据
二进制形式的中等长度文本数据
二进制形式的极大文本数据

CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
BINARY和VARBINARY类类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。

查看MySQL服务器中的所有数据库:

  • 查看某个数据库的定义信息
字段名 类型(长度) 约束, 字段名 类型(长度) 约束
    主键是用于标识当前记录的字段。它的特点是非空,唯一。在开发中一般情况下主键是 不具备任何含义,只是用于标识当前记录
  1. 在创建表时创建主键,在字段后面加上 primary key
  1. 在创建表时创建主键,在表创建的最后来指定主键
  1. 主键自增长(只适用于MySQL)

一般主键是自增长的字段,不需要指定,实现添加自增长语句,主键字段后加auto_increment,例如:

首先先知道查询表中所有数据的语句:

DML是对表中的数据进行增、删、改的操作。不要与DDL混淆了,包含:

在mysql中,字符串类型和日期类型都要用单引号括起来: ‘tom’ ‘’

  • 列名与与列值的类型、个数、顺序要一一对应
  • 可以把列名当做java中的形参,把列值当做实参
  • 值不要超出列定义的长度
  • 如果插入空值,请使用null
  • 插入的日期和字符一样,都使用引号括起来

创建表 emp 并插入数据,表结构如下

  • 将所有员工薪水修改为5000元。
  • 将姓名为zhangsan的员工薪水修改为3000元
  • 将所有男性的薪水在原有基础上加1000
  • 删除表中姓名为zhangsan的记录

DQL数据查询语言 (重要)
数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端。
查询返回的结果集是一张 虚拟表

  • 条件查询就是在查询时给出WHERE子句,在WHERE子句中可以使用如下运算符及关键字:
2.2 查询性别为女,并且年龄为50的学生信息
2.7 查询年龄在20-40之间学生的记录
2.8 查询性别非男的学生记录
2.9 查询姓名不为null的学生记录

前面介绍的所有操作符都是针对已知值进行过滤的,不管是匹配一个还是多个值,测试大于还是小于已知值,或者检查摸个范围的值,共同点是过滤中使用的值都是已知的.但是,这种过滤方法并不是任何时候都好用,例如当想查询中包含a字母的学生时就需要使用模糊查询了。模糊查询需要使用关键字LIKE
在使用like关键字时,通常和通配符配合使用

  • 通配符: 用来匹配一部分的特殊字符
    • _ : 匹配任意一个字符
3.1 查询姓名由5个字母构成的学生记录
3.2 查询姓名由5个字母构成,并且第5个字母为“i”的学生记录
3.3 查询姓名以“z”开头的学生记录
3.4 查询姓名中第二个字母是i的学生记录
3.5 查询姓名中包含“a”字母的学生记录

去除重复记录(两行或两行以上记录中系列的上的数据都相同),例如emp表中sal字段就存在相同的记录。当只查询emp表的sal字段时,那么会出现重复记录,那么想去除重复记录,需要使用DISTINCT

4.2 查看雇员的月薪和佣金之和

因为sal和comm两列的类型都是数值类型,所以可以做加运算。如果sal或comm中有一个字段不是数值类型,那么会出错

而comm列有很多记录的值为NULL,因为任何东西与NULL相加结果还是NULL,所以结算结果可能会出现NULL。下面使用了把NULL转换成数值0的函数IFNULL:

在上面查询中出现列名为sal+IFNULL(comm,0),这很不美观,现在我们给这一列给出一个别名,为total:

给列起别名时,是可以省略AS关键字的:

5.1 查询所有学生记录,按年龄升序排序
5.2 查询所有学生记录,按年龄降序排序
5.3 查询所有雇员,按月薪降序排序,如果月薪相同时,按编号升序排序

聚合函数是用来做纵向运算的函数

  • COUNT():统计指定列不为NULL的记录行数;
  • MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
  • MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
  • SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
  • AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

当需要纵向统计时使用COUNT(),COUNT小括号中可以放入指定列名,和* 如果是* 则代表查询的是结果集的行数,如果是列名,则是指定列的行数

查询emp表中有佣金的人数

注意,因为count()函数中给出的是comm列,那么只统计comm列非NULL的行数

查询emp表中月薪大于2500的人数

统计月薪与佣金之和大于2500元的人数

查询有佣金的人数,有领导的人数

当需要纵向求和时使用sum()函数。当需要求平均值时使用avg()函数

  • 查询所有雇员月薪和,以及所有雇员佣金和
  • 查询所有雇员月薪+佣金和
  • 统计所有员工的平均工资

MAX和MIN 是用来查询最大值和最小值的

  • 查询员工的最高工资和最低工资:

当需要分组查询时需要使用GROUP BY子句,例如查询每个部门的工资和,这说明要使用部门来分组

凡是和聚合函数同时出现的列名,一定要写在group by 之后
分组时候是无法体现单个数据的
group by 一般会合聚合函数配合使用,单独使用的时候意义不大

  • 查询每个部门编号和每个部门的工资和:
  • 查询每个部门的部门编号以及每个部门的人数
  • 查询每个部门的编号以及每个部门工资大于1500的人数:
  • 查询工资总和大于9000的部门编号以及工资总和:
  1. having是在分组后对数据进行过滤,而where是在分组前对数据进行过滤
  2. having后面可以使用聚合函数(统计函数),where后面不可以使用聚合函数

WHERE是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束

  • 统计出各个部门的各个岗位中,平均工资>1000的信息

LIMIT用来限定查询结果的起始行,以及总行数。

  • 查询5行记录,起始行从0开始
}

数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合即存储、维护和管理数据的集合。
数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数
据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。
数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的。


SQL被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。
各数据库厂商都支持ISO的SQL标准。普通话
各数据库厂商在标准的基础上做了自己的扩展。方言

}

我要回帖

更多关于 孕囊2.9*1.4是男孩还是女孩 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信