数据库基础语言

article/2025/8/27 21:34:01

目录

数据库与表的概念

如何操作数据库

数据库连接方式

SQL分类

DDL数据定义语言

DML 数据操作语言

数据库常用数据类型

约束条件

主键约束(PRIMARY KEY)

具有主键约束的字段同时可以使用自增来让DBMS自行对其值进行维护

非空约束(NOT NULL)

唯一性约束(UNIQUE)

DQL 数据查询语言


数据库基本概念:数据库(DataBase)就是存储数据的仓库
数据库管理系统(DBMS):可以独立运行的软件,维护磁盘上的数据,用统一的方式维护不同种类的数据,做到通用且高效。

常见的DBMS: mysql 、oracle 、db2 、sqlserver

数据库与表的概念

以MySQL为例 在DBMS中,一个项目中用到的所有数据都可以以一个数据库形式保存在一起。每种不同的数据都是以 表的形式保存。

表用来保存数据,一张表是由行和列构成

列被称为字段:保存一组数据中各个属性

行被称为记录:保存具体的一条信息。

如何操作数据库

所有的DBMS都支持SQL语句进行对应的操作。我们以客户端的角度与DBMS进行连接,并发送对应的 SQL语句进行操作。

所有数据库都支持SQL92标准

SQL结构化查询语言:Structured Query Language

数据库连接方式

命令行形式、图形化界面、JDBC连接(集成开发环境中idea)

SQL分类

1.DDL语言:数据定义语言,用来进行数据库对象操作的。

        数据库对象:数据库,表,视图,索引等

        CREATE,ALTER,DROP

2.DML语言:数据操作语言,用来对表中的数据进行操作的。

        INSERT,UPDATE,DELETE

3.DQL语言:数据查询语言,用来查询表中数据的。

        SELECT

4.TCL语言:事务控制语言,用来保证一些列数据库操作具有原子性,隔离性,一致性,持久性

        COMMIT,ROLLBACK

5.DCL语言:数据控制语言,进行数据库管理操作的,比如用户创建,权限分配等,是DBA经常使用的操作。

DDL数据定义语言

1.查看当前DBMS中已有的数据库:

        SHOW DATABASES

2.查看数据库信息:

        SHOW CREATE DATABASE 数据库名

3.新建一个数据库:

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

4.删除数据库:

        DROP DATABASE 数据库名

5.使用数据库(切换一个数据库):

        USE 数据库名

6.创建表

        CREATE TABLE 表明(

                字段名1 类型[(长度)][默认值] [约束],

                字段名2 ... )

7.查看表结构:

        DESC 表名

8.查看已创建表的信息:

        SHOW CREATE TABLE 表名

9.删除表:

        DROP TABLE 表名

10.修改表   修改表名:

        RENAME TABLE 原表名 TO 新表名

11.修改表结构    添加字段    向表的末尾追加一个新的字段:

        ALTER TABLE 表名 ADD 字段名 类型[(长度)] [默认值] [约束]

12.将字段添加到表的第一列上:

        ALTER  TABLE  表名  ADD  字段名  类型  FIRST

13.将字段插入到表中,将新字段添加到表中现有某个字段之后:

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

14.删除字段:

        ALTER TABLE 表名 DROP 字段名

15.修改字段:

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

16.查看一个数据库中创建了多少张表

        SHOW TABLES

例子:

1.创建一个名为mydb的数据库

        CREATE DATABASE mydb;

2.创建数据库时指定字符集

        CREATE DATABASE mydb1 CHARSET=UTF8;

        CREATE DATABASE mydb2 CHARSET=GBK;

3.可以查看到曾经创建mydb库时的SQL,查看指定的字符集信息。

        SHOW CREATE DATABASE mydb;

4.删除数据库mydb1

        DROP DATABASE mydb1;

5.切换到数据库mydb上

        USE mydb;

6.创建userinfo表

        CREATE TABLE userinfo(

        id INT, 

        username VARCHAR(30), 

        password VARCHAR(30),

        nickname VARCHAR(30), 

        age INT(3) );

7.查看userinfo表的结构

        DESC userinfo;

8.查看创建userinfo表的信息

        SHOW CREATE TABLE userinfo;

9.删除userinfo表

        DROP TABLE userinfo;

10.将userinfo表改名为user

        RENAME TABLE userinfo TO user

11.向hero表中追加性别字段gender

        ALTER TABLE hero ADD gender VARCHAR(10)

12.向hero中最开始添加字段ID

        ALTER TABLE hero ADD id INT FIRST

13.插入字段pwd,并且插入到name字段之后

        ALTER TABLE hero ADD pwd VARCHAR(30) AFTER name

14.将pwd字段从hero表中删除

        ALTER TABLE hero DROP pwd;

15.将hero表中的age字段长度改为5

        ALTER TABLE hero CHANGE age age INT(5)

16.将hero表中的age字段类型改为VARCHAR(10)

        ALTER TABLE hero CHANGE age age VARCHAR(10)

17.将hero表中的gender字段改为phonenumber

        ALTER TABLE hero CHANGE gender phonenumber INT(11)

18.将hero表中phonenumber字段添加非空约束

        ALTER TABLE hero CHANGE phonenumber phonenumber INT(11) NOT NULL

DML 数据操作语言

1.INSERT 插入数据

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

2.插入默认值

        当插入一条记录时,表中某字段没有指定时,则是插入该字段的默认值。若该字段没有明确指定过默认值时,默认值为NULL。

3.用DEFAULT关键字为某个字段指定默认值

4.全列插入

        在INSERT语句中没有指定字段名时就是全列插入,此时需要注意VALUES子句中指定的值的个数,顺 序,类型必须与表中定义时指定的字段一致。

5.UPDATE 修改数据

        UPDATE 表名 SET 字段1=新值1[,字段2=新值2,...] [WHERE 过滤条件]

6.WHERE子句常用的条件

        =,>,>=,(不等于:<>。实际上 != 也可以用)

7.DELETE 删除数据,通常都要添加WHERE条件,否则是清空表操作!

        DELETE FROM 表名 [WHERE 过滤条件]

8.清空表操作

        DELETE FROM 表名

练习:

1.创建数据库day2db 字符集utf8并使用

        CREATE DATABASE day2db CHARSET=UTF8;

        USE day2db;

2.创建t_hero表, 有name字段,字符集utf8

        CREATE TABLE t_hero( name VARCHAR(30) )

3.修改表名为hero

        RENAME TABLE t_hero TO hero;

4.最后面添加价格字段money, 最前面添加id字段, name后面添加age字段

        ALTER TABLE hero ADD money INT(5);

        ALTER TABLE hero ADD id INT FIRST;

        ALTER TABLE hero ADD age INT(3) AFTER name;

5.表中添加以下数据:

        1,李白,50,6888 2,赵云,30,13888 3,刘备,25,6888

        INSERT INTO hero (id,name,age,money) VALUES(1,'李白',50,6888);

        INSERT INTO hero (id,name,age,money) VALUES(2,'赵云',30,13888);

        INSERT INTO hero (id,name,age,money) VALUES(3,'刘备',25,6888);

6.修改刘备年龄为52岁

        UPDATE hero

        SET age=52

        WHERE name='刘备';

7.修改年龄小于等于50岁的价格为5000

        UPDATE hero

        SET money=5000

        WHERE age<=50;

8.删除价格为5000的信息

        DELETE  FROM   hero  WHERE   money=5000;

9.删除表, 删除数据库

        DROP TABLE hero;

        DROP DATABASE day2db;

总结:

DML语言:数据操作语言,是对表中数据进行操作的语言。涵盖的内容:

INSERT(增),DELETE(删),UPDATE(改)

INSERT语句:

1.插入时指定的字段可以与表中字段顺序,个数不一致。但是VALUES中指定的值要与指定的字 段顺序,类型,个数完全一致。

2.插入数据时某个字段没有指定,那么该记录中该字段会插入默认值。字段没有显示指定默认值 是,默认值就为NULL。

3.插入数据时,可以将默认值插入到对应字段上,此时只需要使用DEFAULT即可。

4.插入数据时,显示的使用NULL将一个null插入到对应的字段上。

5.插入数据时若没有指定任何字段,则为全列插入,此时VALUES中指定的值的个数,顺序,类 型必须与表结构完全一致。

数据库常用数据类型

数字类型:整数类型:INT(m)和BIGINT(m)

m:整数的位数

INT(5):保存1个5位整数。 若保存整数19,实际保存时会在前面补0来达到指定长度:00019

浮点数:DOUBLE(m,n)

m:数字的位数    n:小数的位数    m包含n

DOUBLE(5,2):一共5位数,其中有2位小数。

保存的最大值:999.99

  • 当指定的小数部分超过了可保存的精度,则会进行四舍五入。

例: Person1表,其中有salary字段,类型为:Double(7,4) 此时插入数据时:

INSERT INTO person1 (salary)  VALUES(546.55789);

实际上salary保存的值:546.5579

  • 当最大值需要进行四舍五入,则会报错(值超过了范围)

INSERT INTO person1(salary) VALUES(999.99996)

 字符类型

  • 定长字符:CHAR(m)
  • m表示长度,单位是字符
  • name CHAR(5):表示name字段最多可以保存5个字符
  • 最大值为255
  • 实际保存数据时,如果实际保存的内容不足指定长度时,会在末尾补充若干的空格来占满对应的长度。
  • 优点:在磁盘中每条记录该字段的长度是固定的,检索速度快
  • 缺点:磁盘空间存在浪费

变长字符:VARCHAR(m)

  • m表示长度,单位是字节
  • m的最大值为 65535
  • name VARCHAR(30):name保存的字符转换的字节最多保存30个。实际数据占用多少字节就保存多少字节。
  • 例如:保存'jack'。jack实际占用4个字节因此在磁盘上就占用4字节。如果是CHAR类型则会补充空格 占满30字节。
  • 优点:不浪费磁盘空间
  • 缺点:每条记录该字段长度不一致,查询效率低

变长字符:TEXT(m)

  • m表示长度,但是为字符
  • m的最大值为65535

日期类型

  1. DATE:保存年月日
  2. TIME:保存时分秒
  3. DATETIME:保存年月日时分秒
  4. TIMESTAMP:时间戳,保存UTC时间,保存自1970-01-01 00:00:00到该时间所经过的毫秒

插入日期时,可以以字符串形式插入,格式:'YYYY-MM-DD hh:mm:ss'

INSERT INTO userinfo(id,username,gender,birth,salary)

VALUES(1,'张三','男','2008-08-05 12:22:55',5000.89)

插入日期时,类型为DATETIME,在字符串中可以不指定时分秒

INSERT INTO userinfo(id,username,gender,birth,salary)

VALUES(2,'李四','女','1998-07-16',7000.55)

不指定时分秒则都为0

DATETIME类型不能忽略年月日

INSERT INTO userinfo(id,username,gender,birth,salary)

VALUES(3,'王五','男','16:55:23',9500.34)

会报错

约束条件

可以对表添加相应的约束,只有满足约束条件的操作才可以进行。这样通常用来保证表中的数据可以正确服务于业务

主键约束(PRIMARY KEY)

  • 一张表只能有一个字段被添加主键约束
  • 主键约束的特点:非空且唯一
    • 不能想主键字段插入重复的值
    • 不能将NULL值插入主键字段
  • 通常使用主键字段的值来标识表中唯一一条记录

CREATE TABLE user1(

        id INT PRIMARY KEY,

        name VARCHAR(30),

        age INT(3) );

INSERT INTO user1(id,name,age) VALUES(1,'张三',22);

INSERT INTO user1(id,name,age) VALUES(2,'李四',35);

具有主键约束的字段同时可以使用自增,来让DBMS自行对其值进行维护

在声明主键约束时同时声明自增(AUTO_INCREMENT)

创建表时指定主键自增

CREATE TABLE user2(

        id INT PRIMARY KEY AUTO_INCREMENT,

        name VARCHAR(30),

        age INT(3) );

插入数据时可以忽略主键字段

显示的为主键插入NULL值,此时主键仍然会自增(不推荐)

非空约束(NOT NULL)

  • 非空约束要求该字段的值不允许为NULL
  • 不能将NULL值插入到具有非空约束的字段上
  • 插入时不能忽略具有非空约束的字段,否则报错

唯一性约束(UNIQUE)

唯一性约束允许字段的值为NULL,但是不为NULL的值整表中,每条记录该字段的值都不允许重复。

  • 允许重复插入NULL值
  • 不允许插入重复值

DQL 数据查询语言

DQL用用于检索表中数据的语言。也是SQL中重点内容,也是难点内容。

SELECT [DISTINCT] 子句

FROM 子句

JOIN ... ON ... 子句

WHERE 子句

GROUP BY 子句

HAVING 子句

ORDER BY 子句

LIMIT 子句                       注:LIMIT子句是mysql使用的,其他数据库则不一定用。


http://chatgpt.dhexx.cn/article/C05rYCFX.shtml

相关文章

MySQL-SQL语言

文章目录 SQL语法要求&#xff1a;1、DDL1.1、数据库操作(1) 查询当前数据库(2) 查询当前数据库(3) 创建数据库(4) 创建一个itheima数据库&#xff0c;并且指定字符集(5) 删除数据库(6) 切换数据库 1.2、表操作1.2.1、表的基本操作(1) 查询当前数据库所有表(2) 查看指定表结构(…

只知道SQL数据库?又一国产数据库语言诞生了

一、为什么学习数据库&#xff1f; 学习数据库&#xff0c;你肯定需要先了解它&#xff0c;这样你才知道你为什么要学习它&#xff0c;数据库除了SQL还有一些别的数据库&#xff0c;了解它们的作用&#xff0c;可以在不同的场景选择最符合的一个数据库。 1.1 什么是数据库&am…

比SQL还好用,又一门国产数据库语言诞生了

目录 一、数据库语言的目标1、要说清这个目标&#xff0c;先要理解数据库是做什么的。2、什么样的计算体系才算好呢&#xff1f; 二、SQL为什么不行1、先看写着简单的问题2、为什么 SQL 不行呢&#xff1f;3、再看跑不快的原因4、我们再做个类比&#xff1a; 三、SPL为什么能行…

MySQL数据库——SQL语言

文章目录 MySQL数据库——SQL语言前言一、数据定义语言&#xff08;DDL&#xff09;二、数据操纵语言&#xff08;DML&#xff09;三、事务控制语言&#xff08;TCL&#xff09;四、数据查询语言&#xff08;DQL&#xff09;1.select/for 基本查询语句2.给列起别名&#xff08;…

写着简单跑得又快的数据库语言 SPL

数据库语言的目标 要说清这个目标&#xff0c;先要理解数据库是做什么的。 数据库这个软件&#xff0c;名字中有个“库”字&#xff0c;会让人觉得它主要是为了存储的。其实不然&#xff0c;数据库实现的重要功能有两条&#xff1a;计算、事务&#xff01;也就是我们常说的 OLA…

大数据和云计算有什么关系?

前言 本文隶属于专栏《大数据从0到1》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和文献引用请见《大数据从0到1》 解答 云计算关注资源的分配和利用&#xff0c;侧重…

【云原生|云计算系列】云计算基础概念

欢迎来到云原生专题的云计算系列第一篇博客&#xff0c;我们将探索云计算的基础知识&#xff0c;以帮助您深入了解这个迅速发展的领域。在前一篇博客中&#xff0c;我们介绍了云原生的概念和重要性&#xff0c;强调了它作为云计算的核心理念和实践的关键角色。本篇博客将进一步…

云计算之概念——IaaS、SaaS、PaaS、Daas

云计算通俗来说就是输入/输出和计算不在一个主机上。计算要用到计算设备&#xff0c;计算设备一般是指CPU、内存和硬盘&#xff0c;输入/输出设备一般是指键盘、鼠标、显示器、耳机、音响、话筒等外设。而我们的个人计算机是使用主板将这些东西连接到一起来协调工作。 一个软件…

盘点云计算的概念,分类和特点

云计算主要分为 4 种类型&#xff1a;私有云、公共云、混合云和多云。同时&#xff0c;云计算服务主要有 3 种&#xff1a;基础架构即服务&#xff08;IaaS&#xff09;、平台即服务&#xff08;PaaS&#xff09;和软件即服务&#xff08;SaaS&#xff09;。 怎么选择云类型或云…

云计算(详细解释)

云计算 云计算实现了通过网络提供可伸缩的,廉价的分布式计算能力,用户只需要在具备网络接入条件的地方,就可以随时随地获得所需的各种IT资源.云计算代表了以虚拟化技术为核心,以低成本为目标的,动态可拓展的网络应用基础设施.云计算包括3种典型的服务模式:laas(基础设施即服务…

云计算的概念、原理和关键技术

1 云计算的定义 NIST&#xff08;美国国家标准及技术研究所&#xff09;对云计算的定义&#xff1a; “ 云计算是一种模型&#xff0c;实现无处不在的、方便、通过网络按需访问的可配置的共享计算资源池&#xff08;例如&#xff0c;网络、服务器、存储、应用程序、服务&…

云计算的概念与原理

接下来这几篇将给大家介绍KVM的相关知识&#xff0c;讲到KVM之前我们先了解一下云计算&#xff0c;这也是自己在网上找的一些知识总结。给大家参考一下。 一、云计算的概念 1.1、云是什么 我们可能使用过百度云是吧&#xff0c;就是将自己的文件放到那里去保存&#xff0c;要用…

什么叫云计算?云计算通俗解释

云计算通俗点讲就是把以前需要本地处理器计算的任务交到了远程服务器上去做。仔细给您解释云计算的概念可能比较抽象&#xff0c;我给您举几个云计算的应用实例吧。 第一是webQQ&#xff0c;你访问webqq的时候就会发现这里面有很多像是图片处理&#xff0c;网页浏览&#xff0…

云计算的概念及关键技术

1、云计算的概念 1.1概念 云计算是一种通过互联网访问、可定制的IT资源共享池&#xff0c;并按照使用量付费的模式,这些资源包括网络&#xff0c;服务器&#xff0c;存储、应用、服务等。广泛意义上 来说&#xff0c; 云计算是指服务的交付和使用模式&#xff0c;即通过网络以…

云计算 概念与技术

如果我倡导的计算机在未来得到使用&#xff0c;那么有一天&#xff0c;计算也可能像电话一样成为共用设施。计算机应用将成为一全新的、重要的产业的基础。 ——John McCarthy 云计算的概念 定义 Garther公司的定义 一种计算方式&#xff0c;能通过Internet技术将可扩展的和…

云计算的概念和价值

云计算的概念&#xff1a; 云计算(cloud computing)是一种按是使用量付费的模式&#xff0c;这种模式是可用的、便捷的、按需的网络访问&#xff0c;进入可配置的计算机资源共享池&#xff08;资源包括网络&#xff0c;服务器&#xff0c;存储&#xff0c;应用软件&#xff0c…

什么是云计算?云计算概念集合

云计算的3种服务模式 IaaS&#xff08;基础设施服务&#xff09;&#xff1a;提供给客户的服务是运营商运行在云计算基础设施上的应用程序&#xff0c;用户可以在各种设备上通过客户端界面访问&#xff0c;如浏览器。消费者不需要管理或控制任何云计算基础设施&#xff0c;包括…

云计算的概念

1、云计算概念 云是网络、互联网的一种比喻说法。过去在图像中往往用云来表示电信网&#xff0c;后来也用来表示互联网和底层基础设施的抽象。 云计算&#xff08;Cloud Computing&#xff09;是以虚拟化技术为核心&#xff0c;以低成本为目标的&#xff0c;基于互联网服务的…

第一讲:云计算的概念

云计算&#xff08;cloud computing&#xff09;是一种基于互联网的计算方式&#xff0c;通过这种方式&#xff0c;共享的软硬件资源和信息可以按需提供给计算机和其他设备。 云其实是网络、互联网的一种比喻说法。云计算有狭义云计算和广义云计算两种概念&#xff1a; 1.狭义…

云计算概念详解

1.云计算的定义&#xff1a; (1)云计算是一种能够通过网络以便利的按需的方式获取云计算资源(网络&#xff0c;服务器&#xff0c;存储&#xff0c;应用和服务)的模式 (2)这些资源来自一个共享的&#xff0c;可配置的资源池&#xff0c;并能够快速获取和释放&#xff0c;提供资…