数据库从入门到精通01

数据库从入门到精通01数据库应用 1 1 概念 11 1 1 什么是数据库 11 1 2 关系型和非关系型 131 1 3 关系型数据库 141 2 Mysql 工具安装 141 2 1 MySQL 数据存放在哪里 141 2 2 MySQL 服务端 151 2 3 MySQL 客户端 1 DOS 窗口 191 2 4 MySQL 客户端 2 可视化工具 201 3 数据库的结构 211 3 1 数据库结构 211 4 SQL 语句 211 4 1 定义

数据库应用

概念

什么是数据库

简而言之,就是存储数据,管理数据的仓库。

常见的数据库分为:

  • 关系型数据库, Oracle、MySQL、SQLServer、Access
  • 非关系型数据库, MongoDB、Redis、Solr、ElasticSearch、Hive、HBase
    在这里插入图片描述

关系型和非关系型

既然干不掉,很多传统项目的还是围绕关系型数据库的居多,所以我们先来学习关系型数据库,目前最流行的关系型数据库是MySQL。

关系型数据库

Mysql数据库

  1. mysql服务端,它来处理具体数据维护,保存磁盘
  2. mysql客户端,CRUD新增,修改,删除,查询

MySQL数据存放在哪里?

在MySQL的配置文件my.ini中会进行默认配置

在这里插入图片描述

MySQL服务端

mysql-5.5.27-winx64.msi

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Mysql数据库默认的编码是latin1等价于iso-8859-1,修改为utf-8








在这里插入图片描述
在这里插入图片描述
注意:配置完,mysql开始执行,最后一步出错有时仍可以使用,使用SQLyog工具测试,如不行,再执行安装程序,选择remove,删除,然后重新安装。同时注意必须是管理员权限。




MySQL客户端1:DOS窗口

mysql -uroot -proot

语法:mysql.exe执行文件

代表参数

-u 用户名,紧接着写的

-p 密码,紧接着写的

MySQL客户端2:可视化工具

在这里插入图片描述

数据库的结构

数据库结构

在这里插入图片描述

SQL语句

定义

结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ “S-Q-L”),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

SQL 是1986年10 月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了SQL正式国际标准。

分类

  • DML(Data Manipulation Language)数据操纵语言

如:insert,delete,update,select(插入、删除、修改、检索)简称CRUD操新增Create、查询Retrieve、修改Update、删除Delete

  • DDL(Data Definition Language)数据库定义语言

如:create table之类

  • DCL(Data Control Language)数据库控制语言

如:grant、deny、revoke等,只有管理员才有相应的权限

  • DQL(Data Query Language)数据库查询语言
    如: select 语法

注意:SQL不区分大小写

数据库常用操作

建库

  • 创建数据库,数据库名称:cgb2022
create database cgb2022 DEFAULT CHARACTER SET utf8; 

删库

  • 删除名称是cgb2022的数据库
drop database cgb2022; 

查看所有数据库

  • 查看所有数据库
show databases; 

表的常用操作

使用数据库:use cgb2022; 

表设计

门店表: tb_door
在这里插入图片描述
订单详情表: tb_order_detail
在这里插入图片描述






创建表

  • 创建tb_door表,有id,door_name,tel字段
create table tb_door( id int primary key auto_increment, door_name varchar(100), tel varchar(50) ); 

修改表

  • 添加列
alter table tb_door add column money NUMERIC(7,2) 

删除表

  • 删除名称是tb_door的表
drop table tb_door; 

查看所有表

  • 查看所有表
show tables; 

查看表结构/设计表

  • 查看tb_door表结构
desc tb_door; 

表记录的常用操作

插入记录

  • 向tb_door表中插入2条记录
insert into tb_door values(null,'永和大王1店',666); insert into tb_door values(null,' 永和大王2店',888); 

查询记录

  • 查询tb_door表中的所有记录
SELECT * FROM tb_door; 

修改记录

  • 修改tb_door表中id为1的记录
update tb_door set tel=555 where id=1; 

删除记录

  • 删除tb_door表中id为2的数据
Delete from tb_door where id=2; 

排序

  • 将tb_door表记录按照tel排序
Select * from tb_door order by tel desc; 

记录总数

  • 查询tb_door表中的总记录数
Select count(*) from tb_door; 

数据类型

命名规则
  • 字段名必须以字母开头,尽量不要使用拼音
  • 长度不能超过30个字符(不同数据库,不同版本会有不同)
  • 不能使用SQL的保留字,如where,order,group
  • 只能使用如下字符az、AZ、0~9、$ 等
  • Oracle习惯全大写:USER_NAME,mysql习惯全小写:user_name
  • 多个单词用下划线隔开,而非java语言的驼峰规则
字符
  • char长度固定,不足使用空格填充,最多容纳2000个字符,char(11)存储abc,占11位。查询速度极快但浪费空间
  • varchar变长字符串,最多容纳4000个字符,varchar(11)存储abc,只占3位。查询稍慢,但节省空间。Oracle为varchar2
  • 大文本: 大量文字(不推荐使用,尽量使用varchar替代)

以utf8编码计算的话,一个汉字在u8下占3个字节

注:不同数据库版本长度限制可能会有不同

数字
  • tinyint,int整数类型
  • float,double小数类型
  • numeric(5,2) decimal(5,2)—也可以表示小数,表示总共5位,其中可以有两位小数
  • decimal和numeric表示精确的整数数字
日期
  • date 包含年月日
  • time时分秒
  • datetime包含年月日和时分秒
  • timestamp时间戳,不是日期,而是从1970年1月1日到指定日期的毫秒数
图片
  • blob 二进制数据,可以存放图片、声音,容量4g。早期有这样的设计。但其缺点非常明显,数据库庞大,备份缓慢,这些内容去备份多份价值不大。同时数据库迁移时过大,迁移时间过久。所以目前主流都不会直接存储这样的数据,而只存储其访问路径,文件则存放在磁盘上。

准备数据

部门表 dept
字段名称 数据类型 是否为空 备注
deptno int 部门编号,PK主键
dname varchar(20) Y 部门名称
loc varchar(13) Y 部门所在地点
CREATE TABLE dept( deptno int primary key auto_increment , dname VARCHAR(20), loc VARCHAR(13) ); INSERT INTO dept VALUES(null,'accounting','一区'); INSERT INTO dept VALUES(null,'research','二区'); INSERT INTO dept VALUES(null,'operations','二区'); 
员工表 emp
字段名称 数据类型 是否为空 备注
empno int 员工编号,PK主键
ename varchar(10) Y 员工名称
job varchar(10) Y 职位
mgr int Y 上级编号
hiredate datetime Y 入职时间
sal double Y 月工资
comm NUMERIC(8,2) Y 奖金
deptno int Y 所属部门 FK外键

Mysql:

CREATE TABLE emp( empno int primary key auto_increment, ename VARCHAR(10), job VARCHAR(10), mgr int, hiredate DATE, sal double, comm NUMERIC(7,2), deptno int ); INSERT INTO emp VALUES(100,'jack','副总',NULL,'2002-05-1',90000,NULL,1); INSERT INTO emp VALUES(200,'tony','总监',100,'2015-02-02',10000,2000,2); INSERT INTO emp VALUES(300,'hana','经理',200,'2017-02-02',8000,1000,2); INSERT INTO emp VALUES(400,'leo','员工',300,'2019-02-22',3000,200.12,2); INSERT INTO emp VALUES(500,'liu','员工',300,'2019-03-19',3500,200.58,2); 

字段约束

主键约束

主键约束:如果为一个列添加了主键约束,那么这个列就是主键,主键的特点是唯一且不能为空。通常情况下,每张表都会有主键。

添加主键约束,例如将id设置为主键:

主键自增策略 当主键为数值类型时,为了方便维护,可以设置主键自增策略(auto_increment),设置了主键自增策略后,数据库会在表中保存一个AUTO_INCREMENT变量值,初始值为1,当需要id值,不需要我们指定值,由数据库负责从AUTO_INCREMENT获取一个id值,作为主键值插入到表中。而且每次用完AUTO_INCREMENT值,都会自增1. AUTO_INCREMENT=1

create table abc( id int primary key auto_increment ); insert into abc values(null); insert into abc values(null); insert into abc values(null); select * from abc; 
非空约束

非空约束:如果为一个列添加了非空约束,那么这个列的值就不能为空,但可以重复。

添加非空约束,例如为password添加非空约束:

create table user( id int primary key auto_increment, password varchar(50) not null ); show tables; insert into user values(null,null);//不符合非空约束 insert into user values(null,123;);//OK 
唯一约束

唯一约束:如果为一个列添加了唯一约束,那么这个列的值就必须是唯一的(即不能重复),但可以为空。

添加唯一约束,例如为username添加唯一约束及非空约束:

create table test( id int primary key auto_increment, username varchar(50) unique--唯一约束 ); show tables; insert into test values(null,'lisi'); insert into test values(null,'lisi');--username的值要唯一,重复会报错的 select * from test; 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223845.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午1:18
下一篇 2026年3月17日 下午1:19


相关推荐

  • LCD1602液晶使用介绍–(完整版)

    LCD1602液晶使用介绍–(完整版)lcd1602+c51介绍文章目录LCD1602介绍1602引脚信号说明控制器接口介绍1、基本操作时许2、状态字说明3、指令说明RAM地址映射控制时序图代码实现写入命令写数据试验例程CGRAM自定义字模(简易汉字显示)LCD1602介绍LCD1602液晶在实际的产品运用中也是比较多产品,应为前一段时间也正好用到了所以惊天就对LCD1602液晶做一个总结,方便以后阅读同时也希望能够帮住到需要的人,总结的可能存在错误欢迎指出!所谓的1602是指显示的时候,有2行内容每行有16个字符。其实这类字符型产

    2022年7月16日
    18
  • java restsharp_RestSharp 一个.NET(C#)的HTTP辅助类组件「建议收藏」

    java restsharp_RestSharp 一个.NET(C#)的HTTP辅助类组件「建议收藏」互联网上关于.NET(C#)的HTTP相关的辅助类还是比较多的,这里再为大家推荐一个.NET的HTTP辅助类,它叫RestSharp。RestSharp是一个轻量的,不依赖任何第三方的组件或者类库的Http的组件。RestSharp具有以下的优点:支持.NET3.5+,Silverlight4,WindowsPhone7,Mono,MonoTouch,MonoforAndroi…

    2025年10月4日
    5
  • 想学一门计算机技术 Java和Python哪个前景好

    想学一门计算机技术 Java和Python哪个前景好想学习一门计算机技术 Java 和 Python 哪个前景好点 对于这个问题 很会人会陷入 Java 和 python 的纠结中 从以后的发展来看 这两个编程语言肯定是要通吃的 但前期的学习 可以有一个侧重点 下面说一下个人的观点 一 Java 1 就业应用前景 从目前的招聘量上来看 Java 在编程语言中可以说是常胜将军 经常有各种新出的编程语言向它发起挑战 但是 Java 始终立于不败之地 Java 工程师的需求量稳稳超前 对于我们大学生来说 只要你拥有足够精湛的技术水平 那工作是没有问题的

    2026年3月17日
    2
  • Java cast_java concat方法

    Java cast_java concat方法在说ClassCastException之前,先介绍下引用类型转换;引用类型转换分为向上转型和向下转型两种;向上转型:多态本身是子类类型向父类类型向上转换的过程,这个过程是默认的;当父类引用指向一个子类对象时,便是向上转换;使用格式:父类类型变量名=new子类类型();向下转型:父类类型向子类类型向下转换的过程,这个过程时强制;一个已经向上转型的子类对象,将父类引用转为子类引用,可以使用强…

    2025年9月6日
    6
  • Windows~~~在MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) ,并修改MySQL密码

    Windows~~~在MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) ,并修改MySQL密码适用于windows安装MySQL 对于出现拒绝访问root用户的解决方案 错误1045(28000):用户’root’@’localhost’(使用密码:YES)拒绝访问首先解析此英文:ERROR1045(28000):Accessdeniedforuser’root’@’localhost'(usingpassword:YES);解析的地方有…

    2022年6月13日
    29
  • Java解析XML文件的四种方法「建议收藏」

    Java解析XML文件的四种方法「建议收藏」【摘要】可扩展标志语言(XML)在实现信息标准化、信息的交流与共享上有其独特的技术优势,因此受到了广泛的重视。本文先简单的介绍了XML基本知识,然后从XML应用入手总结了四种现今最常见的XML的解析方法,介绍了这四种方法的特点,其中包括优点与不足之处。最后给出了一个简单的案例来对这四种解析进行代码介绍。【关键字】XML文件,DOM,SAX,JDOM,DOM4J【引言】XML即可扩展标记语

    2022年6月3日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号