数据库基本认识

本文详细介绍了数据库的基础知识,包括数据库与数据库管理系统的概念,数据库操作如创建、删除、修改数据库和表,以及SQL语句的分类和使用,如DDL、DML、DQL等。重点讲解了SQL的查询语言DQL,包括基础查询、WHERE字句、子查询、关联查询等,并介绍了数据类型、约束条件等核心概念。
摘要由CSDN通过智能技术生成

目录

数据库与数据库管理系统

数据库DataBase

数据库管理系统DBMS

在java项目中与数据库管理系统的关系

数据库管理系统中的常见概念

库与表的概念

如何操作数据库

连接数据库的方式

SQL分类 

DDL语言

数据库操作

新建一个数据库

创建数据库时指定字符集

查看数据库创建信息

删除数据库

切换数据库

表的操作

创建表

查看表结构

查看创建表的详细信息

查看当前数据库中已创建的表

修改表名

删除表

修改表

添加字段

删除字段

修改字段

DML数据操作语句

插入数据(INSERT语句)

插入默认值

默认值的指定

全列插入

修改数据(UPDATE语句)

WHERE字句在UPDATE中的使用

WHERE中还可以使用:>,>=,<,<=,<>

修改多个字段

删除数据(DELETE语句)

DML数据操作语句总结

DQL语言(数据查询语言)

基础查询

WHERE字句

使用AND和OR连接多个条件

IN(列表):等于列表中的其中之一

NOT IN(列表):不再列表中,不能等于列表中的任何一项

BETWEEN...AND...在一个范围内

DISRINCT去重,去除结果集中指定字段值重复的记录

LIKE模糊查询

ORDER BY字句

LIMIT分页查询

DQL中可以使用函数或表达式进行查询

在SELECT字句中使用表达式

在SELECT字句中使用函数

在WHERE字句中使用表达式

别名

聚合函数

GROUP BY字句

按照单字段分组

按照多字段分组

按照聚合函数排序

HAVING字句

子查询

子查询使用场景

子查询分类

在DQL中使用子查询

使用多行单列子查询

在DML语句中使用子查询

在DDL语句中使用子查询

关联查询

关联查询中必须使用过滤条件

关联查询中使用聚合函数

主键和外键

外键在数据库中也存在外键约束

多对多关系

内连接

外连接

自连接

数据类型

数字类型

整数类型

浮点类型DOUBLE(m,n)

 字符类型

定长字符:CHAR(n)

变长字符:VARCHAR(n)

变长字符:TEXT(n)

日期类型

约束条件

主键约束(PRIMARY KEY)

具体主键约束的字段通常可以搭配自增使用AUTO_INCREMENT

非空约束

唯一性约束

外键约束


数据库与数据库管理系统

数据库DataBase

        保存一组数据的地方就称为一个数据库,比如我们创建一个目录,在目录中创建若干的文件,每个文件都是一组数据,那么这个目录就可以称为一个数据库。

        只是针对这些文件上的数据维护要么手动,要么我们需要编写java代码进行维护,此时维护的通用性差,效率差,维护的复杂度高。

数据库管理系统DBMS

        它是一个独立的软件,用于维护磁盘上的数据。操作便捷,通用性高。

        常见的DBMS:Mysql、Oracle、DB2、SQLServer

在java项目中与数据库管理系统的关系

数据库管理系统中的常见概念

库与表的概念

        库:可以叫数据库,每个数据库中可以包含若干张表。

        实际应用中每一个项目在数据库管理系统中都可以创建一个数据库,然后在这个数据库中创建若干张表来保存不同的数据。

        表:表的结构由行和列构成,用于保存一组数据

        表中的行称为记录,列称为字段

        列:用于表示一条记录中有多少个属性

        行:保存着一组属性的一条记录

如何操作数据库

        所有的数据库DBMS都支持使用SQL语句进行操作。

        所有DBMS都支持SQL92标注

        该标准中不是所有的数据库操作都有语法级定义

        很多操作不同的数据库就会各自定义对应的语法

        SQL92标准相当于是"普通话",而各自定义的语法相当于"方言"

        SQL的全称:Structured Query Language   翻译:结构化查询语言

连接数据库的方式

        命令行形式

        图形化界面(第一方或第三方提供的独立软件)

        IDEA中操作

        JDBC(java数据库连接),直接用java程序进行数据库连接与交互

SQL分类 

        DDL数据定义语言

        DML数据操作语言

        DQL数据查询语言

        DCL数据控制语言

        TCL事务控制语言

DDL语言

数据定义语言,是针对数据库对象进行操作的语言

关键字:CREATE,DROP,ALTER

SHOW DATABASES

查看当前DBMS中已经创建的数据库

数据库操作

新建一个数据库

CREATE DATABASE 数据库名 [CHARSET=字符集名称]

创建一个名为mydb的数据库

CREATE DATABASE mydb

注:SQL语句中是不区分大小写的,但是建议关键字全大写,其他全小写

创建数据库时指定字符集

CREATE DATABASE mydb1 CHARSET = UTF8;

CREATE DATABASE mydb2 CHARSET = GBK;

查看数据库创建信息

SHOW CREATE DATABASE 数据库名

SHOW CREATE DATABASE mydb;

删除数据库

DROP DATABASE 数据库名

DROP DATABASE  mydb;

切换数据库

将来可以针对某个数据库进行相关的操作,因此就会存在切换数据库操作

USE 数据库名

USE mydb1;

表的操作

创建表

CREATE TABLE 表名(

        字段1名 类型 [默认值,约束条件],

        字段2名 类型 [默认值,约束条件],

        ....

)

CREATE DATABASE mydb;                先创建一个数据库mydb

USE mydb;                                            切换到mydb数据库

下面创建表时,都是创建到mydb这个库中

CREATE TABLE user(

        id INT,                                        在MySQL中整数类型为int

        username VARCHAR(30),        VARCHAR为变长字符串,指定长度为字节,30表示该

        password VARCHAR(30),       字符串转换为字节后最多存30字节(UTF8编码中文10字)

        age INT(3)                                 int若指定长度为整数的位数

)

查看表结构

DESC 表名

DESC user;

查看创建表的详细信息

SHOW CREATE TABLE 表名

SHOW CREATE TABLE user;

查看当前数据库中已创建的表

SHOW TABLES;

修改表名

RENAME TABLE 原表名 TO 新表名

将user表改名为userinfo

RENAME TABLE user TO userinfo

删除表

DROP TABLE 表名

DROP TABLE userinfo;

修改表

CREATE TABLE hero(

        name VARCHAR(30),

        age INT(3)

)

添加字段

在表的末尾追加新的字段

ALTER TABLE 表名 ADD 字段名 类型

向表中追加性别字段

ALTER TABLE hero ADD gender VARCHAR(10);

在表的最开始插入新字段

ALTER TABLE 表名 ADD 字段名 类型 FIRST

ALTER TABLE hero ADD id INT FIRST;

在表中插入字段

将指定的字段放在表中某字段的后面

ALTER TABLE 表名 ADD 字段名 类型 AFTER 表中某字段

在名字后面追加密码字段

ALTER TABLE hero ADD pwd VARCHAR(30) AFTER name

删除字段

ALTER TABLE 表名 DROP 字段名

删除hero表中的pwd字段

ALTER TABLE hero DROP pwd;

修改字段

ALTER TABLE 表名 CHANGE 原字段名 新字段名 类型

将hero表中年龄字段的长度改为5

ALTER TABLE hero CHANGE age age INT(5)

将hero表中gender字段改名为pwd并且类型为VARCHAR(30)

ALTER TABLE hero CHANGE gender pwd VARCHAR(30)

注意事项:

修改字段时,如果表中已经包含数据:

当修改字段类型的长度时,应当只增不减,由于原字段某记录的值长度缩小了会导致修改失败。

当修改字段类型时,尽量不进行。例如将name字段改为int型。"张三"怎么改成int??

DML数据操作语句

对表中记录进行操作的语言

关键字:INSERT,UPDATE,DELETE

准备一张表

CREATE TABLE person(

        name VARCHAR(30),

        age INT(3)

)

插入数据(INSERT语句)

INSERT INTO 表名 [(字段1,字段2,.....)] VALUES (字段值1,字段值2,.....)

INSERT INTO person (name ,age) VALUES ('张三',18)

INSERT INTO person (age,name) VALUES (20,'李四')

注:数据库中,字符串得字面量使用单引号,并且字符串得内容是区分大小写的

       插入数据时指定的字段的顺序可以与表不同,但是VALUES后面指定的值必须与指定的字段顺序、类型、个数一致。

插入默认值

        当插入数据时,某个字段不指定时,则会插入默认值,当表中该字段没有明确指定默认值是,字段默认值为NULL

INSERT INTO person (name) VALUES ('王五')

没有指定age,则该条记录插入后age字段的值为null

默认值的指定

注:这属于DDL语句的范畴,使用DEFAULT指定默认值

创建表时

CREATE TABLE person(

        name VARCHAR(30) DEFAULT '无名氏',

        age INT(3)

)

修改表时

ALTER TABLE person CHANGE age age INT(3) DEFAULT 18;

修改后,age字段的默认值为18

INSERT INTO person (name) VALUES ('赵六');

插入数据后,赵六的年龄为18(默认值)

全列插入

        当不指定字段名时,则为全列插入,此时VALUES后面指定的值得顺序,类型,个数必须与表结构一致。

INSERT INTO person VALUES ('钱七',25)

年龄插入默认值:使用DEFAULT关键字代替值

INSERT INTO person VALUES ('孙八',DEFAULT)

插入NULL值:使用NULL关键字代替值

INSERT INTO person VALUES ('周九',NULL)

错误示范:

INSERT INTO person VALUES ('老十')            列对应值得个数不匹配

INSERT INTO person VALUES(22,'老十')        列对应的值类型不匹配(第一列应是名字

                                                                            VARCHAR类型)

修改数据(UPDATE语句)

UPDATE 表名 SET 字段1名=字段1值[,字段2名=字段2值,.....]

[WHERE 过滤条件]

UPDATE person SET age=40

上述SQL执行后person表中每条记录的age字段值都会被改为40!

WHERE字句在UPDATE中的使用

        通常修改表中数据时,要在UPDATE语句中添加WHERE字句,WHERE字句的作用是添加过滤条件用于帅选要修改的记录。

        字句:在SQL中一个关键字后面搭配一些内容,这个就是一个字句

将张三的年龄改为20岁

UPDATE person SET age&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值