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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
存储 关系型数据库 MySQL
|
存储 关系型数据库 MySQL
javaweb实训第四天上午——MySQL基础(2)
3.2 启动和连接MySQL 3.2.1 启动MySQL服务
182 0
|
SQL 关系型数据库 MySQL
JavaWeb基础1——MySQL
SQL语句、DDL、DML、DQL(分组查询、子查询等)、Navicat、约束、 一对多等数据库设计、多表查询(联合查询/连接查询)、事务、函数
JavaWeb基础1——MySQL
|
Java 关系型数据库 MySQL
JavaWeb基础第一章(MySQL数据库与JDBC)
JavaWeb基础第一章(MySQL数据库与JDBC)
|
SQL 存储 关系型数据库
Javaweb - MySQL 精华篇
Javaweb - MySQL 精华篇
128 0
|
SQL Java 关系型数据库
JavaWeb(JDBC编程)看这一篇就够了 —— 如何使用Java操作mysql数据库
JavaWeb(JDBC编程)看这一篇就够了 —— 如何使用Java操作mysql数据库
601 0
|
4月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
185 3
|
4月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
4月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
883 152
|
4月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。

推荐镜像

更多