JavaWeb-MySQl基础

本文详细介绍了数据库操作,包括DDL(数据定义语言)用于创建、查看、删除数据库和表,DML(数据操纵语言)涉及数据的增删改,以及DQL(数据查询语言)用于数据查询。讨论了各种约束如非空、唯一、主键等,以确保数据的完整性和一致性。此外,还涵盖了多表查询和事务处理,深入理解这些概念对于数据库管理和开发至关重要。
摘要由CSDN通过智能技术生成

我爱Java

DDL-操作数据库和表

**创建数据库**   create database 数据库名称;
**查看数据库**   show database;
**查看表**   desc 表名;
**删除数据库**   drop database 数据库名称;
**删除表**  drop table 表名;

*备注 添加 if exits 可以判断是否存在

DML-对表中的数据增删改

创建表

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

添加数据

  1. insert into 表名(列名,列名...) values(1,值2 ....); 
  2. insert into 表名 values(1,值2 ....);    
  3. insert into 表名(列名,列名...) values(1,值2 ....),(1,值2 ....);     
  4. insert into 表名 values(1,值2 ....),(1,值2 ....);

修改数据 update 表名 set 列1=值1,列2=值2,... [where 条件]
删除数据 delete from 表名 [where 条件];
备注 修改和删除的条件可有可无,不带条件会修改或删除所有数据

DQL-对表中的数据进行查询

基础查询

1.查询 select 字段 from 表名
2.去重 select distinct 字段 from 表名
3.起别名 取别名: select 列名 AS 别名,列名 AS 别名,… from 表名
说明:AS关键字可以省略不写。

条件查询
select 字段 from 表名 where 条件

在这里插入图片描述

排序查询
select 字段列表 from 表名 order by  排序字段名1 [排序方式1],排序字段名2 [排序方式2];

正序 asc (默认),倒序 desc

聚合函数
select  聚合函数名(列名) from;

分组查询
--查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组,分组之后人数大于2个的
select 字段 from 表名 [where] group by 分组 [having 条件过滤];
select sex, avg(math),count(*) from stu where math > 70 group by sex having count(*)  > 2;

约束

概念:设置在列上的一种规则。
作用:限制添加到表中的数据,保证数据的正确性、有效性、完整性。

分类
非空约束
-- not null	保证所有数据中不能有null值
-- 创建表时添加非空约束
create table 表名(
   列名 数据类型 NOT NULL
); 
-- 建完表后添加非空约束
create table 表名 MODIFY 字段名 数据类型 NOT NULL;
-- 删除约束
create table 表名 modify 字段名 数据类型;
唯一约束
unique	保证列中的数据不会重复
-- 创建表时添加唯一约束
create table 表名(
   列名 数据类型 unique [auto_increment]
   --auto_increment:不指定值时自动增长
); 
create table 表名(
   列名 数据类型,
   ...
   [constraint][约束名称]unique(列名)
); 
-- 建完表后添加唯一约束
alter table 表名 MODIFY 字段名 数据类型 unique;
-- 删除约束
ALTER TABLE 表名 DROP INDEX 字段名;
主键约束
primany key	主键是一行数据的唯一标识,要求非空且唯一
-- 创建表时添加主键约束
CREATE TABLE 表名(
   列名 数据类型 PRIMARY KEY [AUTO_INCREMENT],); 
CREATE TABLE 表名(
   列名 数据类型,
   [CONSTRAINT] [约束名称] PRIMARY KEY(列名)
); 
-- 建完表后添加主键约束
ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
-- 删除约束
ALTER TABLE 表名 DROP PRIMARY KEY;
检查约束check 保证列中的值满足某一条件(MySQL不支持)
默认约束
default	保存数据时,未指定值则采用默认值
-- 创建表时添加默认约束
CREATE TABLE 表名(
   列名 数据类型 DEFAULT 默认值,); 
-- 建完表后添加默认约束
ALTER TABLE 表名 ALTER 列名 SET DEFAULT 默认值;
-- 删除元素
ALTER TABLE 表名 ALTER 列名 DROP DEFAULT;
外键约束

forreign key 外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性

数据库设计
多表关系

一对多 :在多的一方添加外键。
多对多:建立一张中间表,设置两个外键,分别指向另外两个表
一对一:外键建立在任一表中皆可

多表查询
内连接
-- 隐式内连接
SELECT 字段列表 FROM1,2WHERE 条件;
-- 显示内连接
SELECT 字段列表 FROM1 [INNER] JOIN2 ON 条件;
外连接
-- 左外连接
SELECT 字段列表 FROM1 LEFT [OUTER] JOIN2 ON 条件 LEFT [OUTER] JOIN3 ON 条件…;
-- 右外连接
SELECT 字段列表 FROM1 RIGHT [OUTER] JOIN2 ON 条件 RIGHT [OUTER] JOIN3 ON 条件…;

子连接
即嵌套链接 
-- 第一步: 先查询出来 猪八戒的工资
select salary from emp  where name = '猪八戒'
-- 第二步: 查询工资高于猪八戒的员工信息
select * from emp where salary > 3600;
-- 第三步: 第二步中的3600可以通过第一步的sql查询出来,所以将3600用第一步的sql语句进行替换
select * from emp where salary > (select salary from emp where name = '猪八戒');
事务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值