为了巩固知识点,方便自己记住,特意写了这一篇,若不足之处请指正,谢谢!

MySQL的回顾


一、 对数据库的操作

1. 创建一个库

create database 库名

create database 库名character set 编码

创建带有编码的

查看编码:

2. 删除一个库

drop database 库名

3. 使用库

use 库名

4.查看当前正在操作的库

二、对数据库表的操作

1.创建一张表

create table 表名(

字段名 类型(长度) [约束],

字段名 类型(长度) [约束],

字段名 类型(长度) [约束]

);

2.查看数据库表

创建完成后,我们可以查看数据库表

show tables;

查看表的结构

desc 表名

3.删除一张表

drop table 表名

4.修改表
4.1 添加一列

alter table 表名 add 字段名 类型(长度) [约束]

4.2 修改列的类型(长度、约束)

alter table 表名 modify要修改的字段名 类型(长度) [约束]

4.3 修改列的列名

alter table 表名 change旧列名 新列名 类型(长度) [约束]

4.4 删除表的列

alter table 表名 drop 列名

4.5 修改表名

rename table 表名 to 新表名

4.6 修改表的字符集

alter table 表名character set 编码

查看当前表的编码

三、对数据库表记录进行操作(修改)

1.插入记录

insert into 表名(列名1,列名2,列名3……)values(值1,值2,值3……)

insert into 表名values(值1,值2,值3……)

1.1 插入数据中文乱码问题解决办法

方式一:【不建议!】

直接修改数据库安装目录里面的my.ini文件的第57行

方式二:

setnames gbk;

2.修改表记录
2.1 不带条件的

update 表名 set 字段名=值, 字段名=值, 字段名=值……

它会将该列的所有记录都更改

2.2 带条件的

update 表名 set字段名=值, 字段名=值, 字段名=值…… where 条件

3.删除表记录
3.1 带条件的

delete from 表名 where 条件

注意,删除后,uid不会重置!

3.2.不带条件的

先准备数据

insert into tbl_user values(null,’老王’,’666’);

删除操作

deletefrom 表名;

3.3 面试题

说说delete与truncate的区别?

delete删除的时候是一条一条的删除记录,它配合事务,可以将删除的数据找回。

truncate删除,它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回。

Delete操作演示:


Truncate操作演示

注意:delete删除,uid不会重置!而使用truncate操作,uid会重置[ThinkPad1]


[ThinkPad1]因为它删除了表结构,然后再创建一张一模一样的表,所以再次插入数据的数据的时候从1开始。

4.查询操作

语法:

select[distinct] *| 列名,列名from 表名 [where条件]

4.1 简单查询

1.查询所有商品

select * from product;

2. 查询商品名和商品价格

select pname,price from product;

3.查询所有商品信息使用表别名

select * from product as[ThinkPad1]  p;


[ThinkPad1]可以省略

4.查询商品名,使用列别名

select pname as[ThinkPad1]  p from product


[ThinkPad1]可以省略

5.去掉重复值(按照价格)

select distinct(price) from product;

先准备数据:

insert into product values (null,'李士雪',38,null);

6.将所有的商品的价格+10进行显示

select pname,price+10 from product;

4.2 条件查询

1.查询商品名称为"左慈"的商品信息

2.查询价格>60元的所有商品信息


3.查询商品名称含有"士"字的商品信息

4.查询商品id在(3,6,9)范围内的所有商品信息

5.查询商品名称含有"士"字并且id为6的商品信息

6.查询id为2或者6的商品信息

4.3 排序

1.查询所有的商品,按价格进行排序(升序、降序)



2.查询名称有"士"的商品信息并且按照价格降序排序


4.4 聚合函数

1.获得所有商品的价格的总和

2.获得所有商品的平均价格

3.获得所有商品的个数

4.5 分组操作

1.添加分类id (alter table product add cidvarchar(32);)

2.初始化数据

update product set cid='1';

update product set cid='2' where  pid in (5,6,7);

1.根据cid字段分组,分组后统计商品的个数。

2.根据cid分组,分组统计每组商品的平均价格,并且平均价格大于20000元。

4.6 查询总结

select  一般在的后面的内容都是要查询的字段

from  要查询到表

where

group by

having 分组后带有条件只能使用having

order by 它必须放到最后面

四、MYSQL多表

1 外键

现在我们有两张表”分类表“和”商品表“,为了表名商品属于哪个分类,通常情况下,我们在商品表上添加一列,用于存放分类cid的信息,此列称为:外键。

此时”分类表category“称为:主表,”cid“我们称为主键。”商品表products“称为:从表,category_id称为外键。我们通过主表的主键和从表的外键来描述主外键关系,呈现就是一对多关系。

声明外键约束

语法:

alter table 从表 add[constraint][外键名称] foregin key(从表外键字段名) references 主表(主表的主键);

[外键名称] 用于删除外键约束的,一般建议”_fk“结尾

alter table 从表 drop foreign key 外键名称

使用外键目的:

保证数据完整性

2 表与表之间的关系

表与表之间的关系,说的就是表与表数据之间的关系

一对多关系:

常见实例:客户和订单,分类和商品,部门和员工。

一对多关系建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键。

多对多关系:

常见实例:学生和课程,商品和订单,人和角色

多对多关系建表原则:需要创建第三张表,中间表中至少两个字段,这个字段分别作为外键指向各自一方的主键。(就是将一个多对多拆分成两个一对多。)


                两张表分别都是主表,第三张表为从表,提供两个字段,都是外键。

一对一关系:

在实际的开发中应用不多,因为一对一可以创建成一张表。

两种建表原则:

外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一unique。

外键是主键:主表的主键和从表的主键,形成主外键关系。

       总结:

            从表不能够添加(更新),主表中不存在的数据。

主表不能够删除(更新),从表中已经使用的数据。        

3  查询

3.1 多表查询


3.2 子查询

子查询:一条select语句结果作为另一条select语法一部分(查询条件,查询结果,表等)。


注意事项:

从表外键不能添加,主表中不存在的记录。

主表不能删除,从表中已经引用的记录。










MySQLamp;amp;JDBC回顾——MySQL相关推荐

  1. JDBC连接MySQL数据库及演示样例

    JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  2. JDBC操作MySQL Lob字段记实

    JDBC操作MySQL Lob字段记实 虽然Java的持久化框架多如牛毛,但都离不开JDBC技术,JDBC在某些时候是其他框架难以取代的.也是java操作数据库最根本的技术. 上文写了JDBC操作DB ...

  3. 一、JAVA通过JDBC连接mysql数据库(连接)

    JDBC ----JDBC(Java DataBase Connectivity)是Java与数据库的接口规范,JDBC定义了一个支持标准SQL功能的通用低层的应用程序编程接口(API),它由Java ...

  4. 基于Servlet+JDBC+Bootstrap+MySQL+AJAX权限管理系统项目实战教程

    项目简介 权限系统一直以来是我们应用系统不可缺少的一个部分,若每个应用系统都重新对系统的权限进行设计,以满足不同系统用户的需求,将会浪费我们不少宝贵时间,所以花时间来设计一个相对通用的权限系统是很有意 ...

  5. centos jdbc配置mysql_CentOS安装glassfish4.0配置jdbc连接mysql

    版本glassfish-4.0.zip 1.解压,拷贝到指定安装路径 unzip glassfish-4.0.zip cp cp glassfish4 /usr/local/ -rf 2.设置glas ...

  6. 修改sqlarchemy源码使其支持jdbc连接mysql

    注意:本文不会将所有完整源码贴出,只是将具体的思路以及部分源码贴出,需要感兴趣的读者自己实验然后实现吆. 缘起 公司最近的项目需要将之前的部分业务的数据库连接方式改为jdbc,但由于之前的项目都使用s ...

  7. Java使用Jdbc操作MySql数据库(一)

    这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...

  8. [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率

    使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: 通过使用addBatc ...

  9. JAVA-数据库之JDBC连接MySQL数据库

    相关资料: <21天学通Java Web开发> JDBC连接MySQL数据库 1.如果需要通过JDBC来连接MySQL数据库,还必须先在MySQL数据库服务器中创建数据库和表. Conne ...

最新文章

  1. AI 寻宝!美国女博士用 YOLOv3 打造沉船探测器,杰克船长:我错过了 100 亿
  2. JavaScript前端框架的思考
  3. Windows中安装Apache2和PHP4权威指南
  4. 深入理解Kubelet核心执行框架
  5. C语言手撸搜索(查找)二叉树---创建,插入,删除
  6. 编程是一门实践性的科学
  7. Linux下常用配置文件及常用命令介绍
  8. 怎样把照片中的头像扶正_一个男人的微信头像,往往暴露了“人品”,你是哪一种?...
  9. (自然语言处理)语料、文本数据集清单
  10. Ubuntu Git安装与使用
  11. 拜山贴(COM+中的连接复用)
  12. 作品展作品延伸——代码
  13. 牛顿插值法,泰勒公式
  14. 报错:further occurrences of HTTP request parsing errors will be logged at DEBUG level
  15. java猜数游戏图形界面_java 猜数字游戏 swing实现带界面
  16. 惠普m202dw_HP LaserJet Pro M202dw 激光打印机
  17. IEC60870-5-101基本远动任务通信协议测试方法
  18. python3.6学习十四 提示和传递
  19. contiki学习心路历程
  20. 前瞻: 下一代网络 量子互联网

热门文章

  1. 如何利用编程思维,提高英语成绩?
  2. 一篇文章学会eggjs做后端服务及各种问题处理
  3. win10无法设置移动热点的一种解决办法
  4. 开源四轴无人机系统迈入新的阶段!
  5. python123练习题文库,Python程序设计试题库.doc
  6. Typora的下载及MarkDown使用
  7. [CVE-2020-9496]Apache Ofbiz RCE
  8. python识别颜色并提取轮廓_pythonopencv检测并提取目标颜色
  9. HTML基础知识点总结
  10. OpenPose ImportError: No module named '_pafprocess'【swig】编译步骤