Java Web学习day11------mysql(基础语法)

相关概念

数据库

(1)就是存储数据的文件系统,特点:方便用户对数据的操作,通过标准的sql进行访问
(2)注意事项:
  centOS7下面mysql5.7对大小写敏感,如果表名中含有大写,就会提示不存在
(3)解决
  a) 找到mysql的配置文件(/etc/my.cnf文件)
  b) 在[mysqld]加入lower_case_table_names=1 //不区分表名大小写
  c) 输入命令service mysqld restart 重启mysql服务

数据库软件

(1)分类
  关系型:采用了关系模型组织数据的数据库(mysql,oracle保存的都是有关系的实体)
  非关系型:使用键值对存储数据(redis,mongoDb)
(2)设计数据库常用的ER模型图
  实体用矩形表示,属性用椭圆形表示,他们之间的关系用菱形表示
(3)什么时候创建数据库,什么时候创建表,什么时候添加记录
  一台数据库服务器可以创建很多数据库,一般一个项目创建一个数据库
  一个数据库中可以创建很多张表,一般一个实体会创建一个表
  一个表中可以插入很多条记录,一按一个对象的实例会添加一条新的记录
(3)数据库中表和java实体类的对应关系
  表名 ------ java类
  表中的字段 —类中的属性
  表中的记录 —类创建的对象

SQL

  结构化查询语言,定义了操作所有关系型数据库的一种规则
  DDL:定义语言,操作数据库,表,字段等。–掌握建数据库,建表语句
  DML:操作语言,对表中的记录进行增删改。–熟练掌握
  DQL:查询语言,对表中的记录进行查询。 --熟练掌握
  DCL:控制语言,定义数据库的访问权限和安全级别,及创建用户。----了解即可

数据库的操作

1、增(创建数据库)

  create database 数据库名称;

2、删(删除数据库)

  drop database 数据库名称;

3、改(修改数据库(修改字符集))

  alter database 数据库名称 character set 字符集名称;

4、查

(1)查询所有数据库
  show databases;
(2)查看当前使用的数据库
  select database()
(3)使用数据库
  use 数据库名称;

数据表的操作

1、增

(1)创建数据表

	create table 表名(
		列名 数据类型 约束,
		列名 数据类型 约束,
		...
		列名 数据类型 约束
	);

(2)常见数据类型
  int 和 double:整数和小数类型
  char 和 varchar:固定长度和可变长度的字符
  date:只有日期(年月日) 生日
  time:只有时间(时分秒)
  dateTime和timestamp:既有时间又有日期
    dateTime:如果没有向这个字段中存值,默认使用null存到数据库中
      timestamp:如果没有向这个字段中存值,默认使用当前系统时间存到数据库中//订单时间

2、删(删除数据表)

  DROP TABLE 表名;

3、改

(1)单独添加一列
  alter table 表名 add 列名 数据类型;
(2)修改某列的数据类型
  alter table 表名 modify 列名 新数据类型;

3、查

(1)查询所有的数据表
  show tables;
(2)查询表结构
  desc 表名;

表记录的操作

1、增

(1)给全部列添加数据
  insert into 表名 values (值1,值2,…);
(2)给指定列添加数据
  insert into 表名(列名1,列名2,…) values (值1,值2,…);
(3)注意:
  值的最大长度不能超过列设置的最大长度
  除了数字类型,其他类型都需要使用引号,单双都可以,推荐使用单引号

2、删(删除表中的数据)

  delete from 表名 [where 条件]

3、改(修改表中的数据)

  update 表名 set 列名1=值1,列名2=值2,… [where 条件]

4、查

基本语法:
	SELECT
		字段列表
	FROM
		表名列表
	WHERE
		条件列表
	GROUP BY
		分组字段
	HAVING
		分组后的过滤条件
	ORDER BY
		排序
	LIMIT
		分页

查询全部

(1)查询全部的表数据
  select * from 表名;
(2)查询指定字段的表数据
  select 列名1,列名2,… from 表名;
(3)去除重复查询
  select distinct 列名1,列名2,… from 表名;
(4)计算列的值(四则运算)
  select 列名1 运算符(+ - * /) 列名2 from 表名;
(5)起别名查询
  select 列名 as 别名 from 表名;
(6)示例

# 查询每个商品的库存总金额,用别名totalMoney表示
SELECT NAME,price * IFNULL(stock,0) AS totalMoney FROM product

条件查询

条件查询语法
  select 列名列表 from 表名 where 条件;

聚合函数

聚合函数查询语法
  select 函数名(列名) from 表名 [where 条件];

排序查询

排序查询语法
  select 列名列表 from 表名 [where 条件] order by 列名 排序方

分组查询

(1)分组查询语法
  select 列名列表 from 表名 [where 条件] group by 分组列名 [having 分组后的条件过滤] [order by 排序列名 排序方式];

(2)注意:
  分组之后的查询字段,要么是分组的字段,要么是聚合函数,其他字段没有意义

分页查询

分页查询语法
  select 列名列表 from 表名
  [where 条件]
  [group by 分组列名]
  [having 分组后的条件过滤]
  [order by 排序列名 排序方式]
  limit 当前页数,每页显示的条数

总结

(1)书写的顺序
  select—from—where—group by—having—order by
(2)执行的顺序
  from—where—group by—having—select—order by
  from:需要从哪些表中检索数据
  where:根据条件过滤表中的数据 —针对所有的数据进行筛选
  group by:将where过滤之后的数据进行分组
  having:对上面已经分组后的每一组数据进行过滤 —针对分组之后的每一组数据进行筛选
  select:查看结果集中的哪一列
  order by:把最终结果按照什么顺序展示在用户面前

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值