javaweb实训第四天上午——MySQL基础(3)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 4.3 表的操作4.3.1 创建表语法:

javaweb实训第四天上午——MySQL基础(2)https://developer.aliyun.com/article/1414839

4.3 表的操作

4.3.1 创建表

语法:

先进入某一个数据库: use database_name;

输入建表的SQL命令:{dos 图形化界面写命令} [ 图形化界面创建 ]

CREATE TABLE 表名(

列名1 列的类型 [约束],

列名2 列的类型 [约束],

列名N 列的类型 约束

);

注意:最后一行没有逗号

注意:不能使用MySQL中的关键字作为标识符.

比如:订单表(order),但是ORDER是SQL中排序的关键字.

解决方案:

方式1:使用反引号,把关键字引起来:ORDER.

方式2:开发中,习惯t_表名;

需求:

在jdbcdemo数据库中,创建表student,用来存储学生的编号,名字,年龄.

USE jdbcdemo;
CREATE TABLE `student` (
  `id` bigint(20) PRIMARY KEY AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `age` int(11) SHOW TABLES;          查看数据库中存在哪些表:
  DESC table_name;          查看表结构:
  SHOW CREATE TABLE table_name;   查看表的详细定义(定义表的SQL语句)
  DROP TABLE table_name;      删除表:
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

讨论&思考:

为什么字符串要设定这个长度呢?

因为数据库中针对可变数据的存储需要压缩,而不可变数据的存储不需要压缩

4.3.2 查看表结构和删除表

show  databases;  查看有哪些数据库
use  数据库名称;  切换数据库
SHOW TABLES;          查看数据库中存在哪些表:
DESC table_name;          查看表结构: description 描述
SHOW CREATE TABLE table_name;   查看表的详细定义(定义表的SQL语句)ddl
DROP TABLE table_name;      删除表:

4.3.3 表的约束

表的约束(针对于某一列):

1.非空约束(NK):NOT NULL,不允许某列的内容为空。

2.设置列的默认值:DEFAULT。

3.唯一约束(UK):UNIQUE,在该表中,该列的内容必须唯一。

4.主键约束:PRIMARY KEY, 非空且唯一。

5.主键自增长:AUTO_INCREMENT,从1开始,步长为1。

6.外键约束:FOREIGN KEY,A表中的外键列.A表中的外键列的值必须参照于B表中的某一列(B表主键)。

外键存储的是另外一张表的主键


主键设计: 学生表 姓名 年龄 身份证 电话

1:单列主键,单列作为主键,建议使用。

== 复合主键==,使用多列充当主键,不建议。

2:主键分为两种:

  ① 自然主键:使用有业务含义的列作为主键(不推荐使用);

  ② 代理主键:使用没有业务含义的列作为主键(推荐使用);

5 查询操作-单表查询[常用]

  查询操作就是从指定的数据库中查询出我们想要的数据,可以从单张表查询或者多张表联合查询,下面的查询都是单表查询。

  首先我们准备好一个数据比较多表

5.1 简单查询

5.1.1 简单数据查询

语法:

SELECT {*, column [alias],...}
FROM     table_name; 

说明:

SELECT 选择查询列表

FROM 提供数据源(表、视图或其他的数据源)

如果为 * 和创建表时的顺序一致。匹配所有的字段

可以自己调整顺序,在select后边加上要查询的列名。

需求:

查询所有货品信息

查询所有货品的id,productName,salePrice

5.1.2 消除结果中重复的数据。只对某一列有效

需求: 查询商品的分类编号。

语法: SELECT DISTINCT 列名,…

5.1.3 实现数学运算查询:

对NUMBER型数据可以使用算数操作符创建表达式(+ - * /)

对DATE型数据可以使用部分算数操作符创建表达式 (+ -)

运算符优先级:


乘法和除法的优先级高于加法和减法

同级运算的顺序是从左到右

表达式中使用"括号"可强行改变优先级的运算顺序

需求:

 查询所有货品的id,名称和批发价(批发价=卖价*折扣)

 查询所有货品的id,名称,和各进50个的成本价(成本=costPrice)

 查询所有货品的id,名称,各进50个,并且每个运费1元的成本

5.1.4 设置列名的别名

1、改变列的标题头;

2、用于表示计算结果的含义;

3、作为列的别名;

4、如果别名中使用特殊字符,或者是强制大小写敏感,或有空格时,都需加单引号;—>英文单词

需求:查询所有货品的id,名称,各进50个,并且每个运费1元的成本(使用别名)


5.1.5 设置显示格式:

为方便用户浏览查询的结果数据,有时需要设置显示格式,可以使用CONCAT函数来连接字符串。

需求:查询商品的名字和零售价。

格式:xxx商品的零售价为:xxx

SELECT CONCAT(productName,‘商品的零售价为:’,salePrice) AS productSalePrice FROM product;

5.2 过滤查询

5.2.1 比较运算符

2021052811474812.png

语法

SELECT     <selectList> 
FROM    table_name
WHERE   条件1 AND/OR 条件2;

需求:


查询货品零售价为119的所有货品信息.

查询货品名为罗技G9X的所有货品信息.

查询货品名 不为 罗技G9X的所有货品信息.

查询分类编号不等于2的货品信息

查询货品名称,零售价小于等于200的货品

查询id,货品名称,批发价大于350的货品


思考:使用where后面使用别名不行,总结select和where的执行顺序

注意:字符串和日期要用单引号扩起来.要让MySQL查询区分大小写,可以:

SELECT * FROM table_name WHERE BINARY productName='g9x'
SELECT * FROM table_name WHERE BINARY productName='G9X'

javaweb实训第四天上午——MySQL基础(4)https://developer.aliyun.com/article/1414841?spm=a2c6h.13148508.setting.48.6e1a4f0eQzpjQW

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4天前
|
存储 关系型数据库 MySQL
|
4天前
|
存储 关系型数据库 MySQL
javaweb实训第四天上午——MySQL基础(2)
3.2 启动和连接MySQL 3.2.1 启动MySQL服务
66 0
|
4天前
|
JavaScript 关系型数据库 MySQL
基于JavaWeb和mysql实现校园订餐前后台管理系统(源码+数据库)
基于JavaWeb和mysql实现校园订餐前后台管理系统(源码+数据库)
|
4天前
|
SQL NoSQL 关系型数据库
javaweb实训第四天上午——MySQL基础(1)
1 课程介绍 1.数据库概述(了解) 2.MySQL的安装与配置(掌握) 3.MySQL数据库操作与存储引擎(掌握) 4.查询操作-单表查询(掌握) 2 数据库概述 2.1 数据库概念
52 0
|
4天前
|
JavaScript 关系型数据库 MySQL
基于JavaWeb和mysql实现网上书城前后端管理系统(源码+数据库+开题报告+论文+答辩技巧+项目功能文档说明+项目运行指导)
基于JavaWeb和mysql实现网上书城前后端管理系统(源码+数据库+开题报告+论文+答辩技巧+项目功能文档说明+项目运行指导)
|
4天前
|
XML 安全 Java
JavaWeb有机果蔬商城系统有机蔬菜水果商城系统(分前后台javaWeb+jsp+jstl+css+js+mysql)
JavaWeb有机果蔬商城系统有机蔬菜水果商城系统(分前后台javaWeb+jsp+jstl+css+js+mysql)
|
2天前
|
关系型数据库 MySQL API
实时计算 Flink版产品使用合集之可以通过mysql-cdc动态监听MySQL数据库的数据变动吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
17 0
|
4天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
25 0
|
4天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(下)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
15 0
|
4天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(上)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
20 0

推荐镜像

更多