MySQL数据库和表管理

news2024/11/15 23:34:36

MySQL数据库和表管理

    • 一、常用的数据类型
      • 1、int(N)
      • 2、float(m,d)
      • 3、char与varchar
    • 二、查看数据库结构
      • 1、查看当前服务中的数据库
      • 2、查看数据库中存在的表
      • 3、查看表结构
    • 三、SQL语句
      • 1、SQL语言规范
      • 2、SQL语言分类
    • 四、创建、删除数据库和表
      • 1、创建数据库
      • 2、创建表
      • 3、删除数据表
      • 4、删除数据库
    • 五、管理数据表中的记录(增删改查)
      • 1、向表中插入新的信息(增)
      • 2、查询表中记录(查)
      • 3、修改更新数据表中记录(改)
      • 4、在数据表中删除指定的记录(删)
    • 六、修改表名和表结构
      • 1、修改表名(rename)
      • 2、扩展增加字段(add)
    • 七、常见的约束
    • 总结

一、常用的数据类型

1、int(N)

int(N)中的N不是限制字段取值范围的,int的取值范围是固定的(0至4294967295)或(-2147483648至2147483647)。N这个值是为了zerofill在字段中的值不够时补零的。

int默认是signed(有符号),取值范围(-2147483648至2147483647)。如果加了unsigned( 无符号)参数那么取值范围就为(0至4294967295)。

2、float(m,d)

设一个字段定义为float(6,3),表示6个有效长度数字,小数点后面有3位。如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位。如果插入数12.123456,存储的是12.123,如果插入12.12,存储的是12.120。

整数部分最大是3位,如果插入1234.56,会插入失败。

3、char与varchar

CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

二、查看数据库结构

mysql默认不区分大小写,表名和库名区分大小写。

在Linux系统中,命令结束后一定要加分号,结尾符。

1、查看当前服务中的数据库

show databases;    #查看数据库

在这里插入图片描述

2、查看数据库中存在的表

方法一:
use  数据库名;     #切换库
show  tables;     #查看库中的表
 
方法二:
 show tables from 数据库名;    #直接查看某个库中的表
 例:show tables from mysql;

在这里插入图片描述
在这里插入图片描述

3、查看表结构

 方法一:
 use 数据库名;     #切换库
 desc 表名;     #查看指定表的结构
 
 方法二:
 desc [数据库名.]表名;
 可缩写成:desc 数据库名.表名;
 例:desc mysql.user;

在这里插入图片描述
在这里插入图片描述

三、SQL语句

关系型数据,都是使用SQL语句来管理数据库中的数据。

SQL及结构化查询语言。

SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

1、SQL语言规范

SQL语句可单行或多行书写,默认是以英文 " ; "结尾,关键字不能跨多行或简写。子句通常位于独立行,便于编辑,提高可读性。

命名规则:

必须以字母开头,后续可以包括字母,数字和三个特殊字符(# _ $)

不要使用MySQL的保留字,如table、select、show、databases。

数据库名、表名、用户名区分大小写

2、SQL语言分类

(1)DDL:数据定义语言(Data Definition Language),用于创建数据库对象,如库、表、索引等。

如:CREATE,DROP,ALTER 等。

(2)DML:数据操纵语言(Data Manipulation Language),用于对表中的数据进行管理。

如: SELECT、UPDATE、INSERT、DELETE 等。

(3)DQL:数据查询语言( Data Query Languag ),用于从数据表中查找符合条件的数据记录。

如: SELECT

(4)DCL:数据控制语言(Data Control Language),用于设置或者更改数据库用户或角色权限。

如: GRANT,REVOKE

(5)TCL:事务控制语言(Transaction Control Language),用于管理数据库中的事务。 TCL经常被用于快速原型开发、脚本编程、GUI和测试等方面。

四、创建、删除数据库和表

1、创建数据库

create database 库名;    #创建数据库

在这里插入图片描述

2、创建表

 CREATE TABLE 表名(字段1 数据类型,字段2 数据类型[,...] [,PRIMARY KEY (主键名)]);
 
 #主键一般选择能代表唯一性的字段,不允许取空值(NULL),值也不允许重复,主键字段的值是唯一的。一个表只能有一个主键。
 
  USE school;                  #切换school库
 CREATE TABLE class (id int NOT NULL,name char(10) NOT NULL,score decimal (6,2),passwd char(48) DEFAULT '',PRIMARY KEY (id));        #新建表class
 
 #第一个字段名id,数据类型是int整数型,NOT NULL不许为空值。
 #第二个字段名name,数据类型是char固定长度的字符,长度是10个字节。
 #第三个字段名score,数据类型是decimal (6,2),表示5个有效数字、其中小数点后2位。
 #第四个字段名passwd,DEFAULT '' 表示默认值是无值(不是空值null)。
 #PRIMARY KEY (id),表示id字段是主键。
 
 DESC class;    #查看class表的结构

在这里插入图片描述

3、删除数据表

drop table [数据库名.]表名;
 
例:drop table class01;

在这里插入图片描述

4、删除数据库

drop database 数据库名;
 
例:drop database  school;

在这里插入图片描述

五、管理数据表中的记录(增删改查)

1、向表中插入新的信息(增)

 方法一:为所有字段插入值
 insert into 表名 values (所有字段的值);    #每个字段值用逗号相隔;
 
方法二:为指定字段插入值
 INSERT INTO 表名(字段1,字段2[,...]) VALUES (字段1的值,字段2的值,...);    #注意字段的属性not null,则必须为该字段插入值

 #下面这条命令不生效,因为name字段设置了not null,不允许为空值。
 INSERT INTO student (id, score, age,gender) values (3, 88, 123123);
 
 SELECT * FROM student;    #查询表的数据记录

1.先创建个数据表student
 create table student(id int NOT NULL,name char(5) NOT NULL,age char(6),sex char(8));
2.向表中添加数据
insert into student values('01','李华','16','M');
Query OK, 1 row affected (0.00 sec)

insert into student values('03','小红','18','F');
Query OK, 1 row affected (0.00 sec)

insert into student values('02','小明','12','M');
Query OK, 1 row affected (0.00 sec)

insert into student values('04','张三','15','M');
Query OK, 1 row affected (0.00 sec)

insert into student values('05','李四','11','F');
Query OK, 1 row affected (0.00 sec)

在这里插入图片描述

2、查询表中记录(查)

 SELECT * FROM 表名;      #查询表中所有记录
 
 #按条件查找数据记录,且只显示指定字段的值
 SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
 
 #表中的记录默认是横向展示的,当字段很多时显示很乱,可以将";"换成"\G",改成纵向展示每条记录。
 select * from 表名\G
 
 #mysql的分页语句:
 select * from 表名 limit 2; 
 select * from 表名 limit 2,3;       #显示第2行后的前3行(即显示第3~5行)
 select * from 表名 limit 19,11;     #查看第20行到第30行的记录

 select * from 表名 id>=10 and id<=20;    #查看id值在10到20之间的数据记录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、修改更新数据表中记录(改)

UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
  
例: student set age=20 where id=1;
Query OK, 1 row affected (0.00 sec)
  #修改id=1的数据记录,将age字段值改为20。 建议使用唯一性比较好的字段作为指定条件,因为名称可能有重复,但id不会重复。

修改时加上条件,否则会把表中的所有行都修改
在这里插入图片描述

4、在数据表中删除指定的记录(删)

DELETE FROM 表名 [WHERE 条件表达式];     #删除一定要加条件,不然会删除整个表

例: from student where id=2;     #删除id字段值为2的数据记录

删除数据记录时,一定要加条件,否则会将整个表都删除!
在这里插入图片描述

六、修改表名和表结构

1、修改表名(rename)

ALTER TABLE 旧表名 RENAME 新表名
 
例:ALTER TABLE student RENAME zzt;   #将student的表名修改为zzt
   ALTER TABLE zzt RENAME student;   #将zzt的表名修改回student

在这里插入图片描述

2、扩展增加字段(add)

  ALTER TABLE 表名 ADD 字段名 数据类型;
 
 例:
 alter table student add address varchar(30) not null default '云计算学院';
 #增加“address"字段,不允许为空值,默认值为“云计算学院”。
 #default '云计算学院':表示此字段设置默认值为"云计算学院",可与NOT NULL配合使用。

在这里插入图片描述

七、常见的约束

主键约束(primary key) PK

自增长约束(auto_increment)

非空约束(not null)

唯一性约束(unique)

默认值约束(default)

零填充约束(zerofill)

外键约束(foreign key)FK

总结

查看数据库和表

show databases;

use 库名;

show tables;

desc 表名;

desc 表名\G

show create table 表名

创建删除数据库和表

insert into 表名 values (所有字段的值)。

insert into 表名 (指定字段名称) values(字段的值)。

delete from 表名 [where …]。

truncate table 表名; #删除表中所有数据。相当于格式化,速度很快。

update 表名 set 字段=值[, 字段2=…] [where …]。

select 字段1[,字段2…] from 表名 [where …]。

select * from 表名。
修改表名和表结构

alter table 表名 RENAME/ADD/CHANGE/DROP 字段名 数据类型 属性。

库和表

insert into 表名 values (所有字段的值)。

insert into 表名 (指定字段名称) values(字段的值)。

delete from 表名 [where …]。

truncate table 表名; #删除表中所有数据。相当于格式化,速度很快。

update 表名 set 字段=值[, 字段2=…] [where …]。

select 字段1[,字段2…] from 表名 [where …]。

select * from 表名。
修改表名和表结构

alter table 表名 RENAME/ADD/CHANGE/DROP 字段名 数据类型 属性。

alter table 表名 ADD 键名(字段); //给指定字段添加键约束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/399500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云医疗信息系统源码(云HIS)商业级全套源代码

云his系统源码&#xff0c;有演示 一个好的HIS系统&#xff0c;要具有开放性&#xff0c;便于扩展升级&#xff0c;增加新的功能模块&#xff0c;支撑好医院的业务的拓展&#xff0c;而且可以反过来给医院赋能&#xff0c;最终向更多的患者提供更好地服务。 私信了解更多&…

HTTPS加密流程

什么是HTTPSHTTPS是加密后的HTTP,相当于:HTTPS HTTP SSL/TLSHTTPS是基于"密钥"来实现的,客户端将发送的数据用密钥进行加密,服务器将收到的数据用密钥解密.对称加密和非对称加密对称加密是指:交互双方共同使用同一个密钥进行加密 或 解密.如下(图中的客户端和服务器…

还不会CAD批量打印图纸?学会这招再也不怕

各位工程师&#xff0c;相信大家在工作过程中&#xff0c;经常会遇到需要打印大量图纸文件的时候&#xff0c;那么多的图纸&#xff0c;一张张打印太麻烦&#xff0c;此时便需要用到CAD批量打印功能啦&#xff01;可是&#xff0c;总有些新手设计师不直达奥CAD批量打印&#xf…

Spring事务及传播机制

概念 在MySQL中介绍过&#xff0c;当同一时间出现一起读写数据的情况&#xff0c;可能会导致最终的结果出错&#xff0c;因此可以使用事务来提高隔离级别 而Spring中也可以实现事务 手动添加事务 使用SpringBoot中的DataSourceTransactionManager对象可以获取事务&#xff0…

计算机科学导论笔记(六)

目录 八、算法 8.1 概念 8.1.1 非正式定义 8.1.2 示例 8.1.3 定义动作 8.1.4 细化 8.1.5 泛化 8.2 三种结构 8.2.1 顺序 8.2.2 判断 8.2.3 循环 8.3 算法的表示 8.3.1 UML 8.3.2 伪代码 8.4 更正式的定义 8.5 基本算法 8.5.1 求和 8.5.2 求积 8.5.3 最大和最…

Egg:使用joi进行参数校验以及注册接口小demo

目录 前言&#xff1a; 准备工作&#xff1a; 前端代码&#xff1a; 后端目录截图&#xff1a; 1.获取参数 2.校验参数 3.查询数据库中是否已经存在该用户 4.用户入库 5.测试一哈 添加用户成功 同样的用户名再注册一遍 ​编辑总结&#xff1a; 前言&#xff1a; 在阅…

C#基础之基础语法(一)

总目录 文章目录总目录前言一、C#简述1 C#是什么&#xff1f;2 .Net平台3. C# 和.Net的关系4. 集成开发环境&#xff08;IDE&#xff09;二、控制台应用程序1. 常用代码2.注意事项三、基础语法1.编写C#代码注意事项2.C#注释2. 变量&标识符&关键字4. 变量&#xff0c;字…

unity 面试汇总

1、什么是协同程序&#xff1f;答&#xff1a;在主线程运行时同时开启另一段逻辑处理&#xff0c;来协助当前程序的执行。换句话说&#xff0c;开启协程就是开启一个可以与程序并行的逻辑。可以用来控制运动、序列以及对象的行为。2、Unity3D中的碰撞器和触发器的区别&#xff…

【C++进阶】四、AVL树(二)

目录 前言 一、AVL树的概念 二、AVL树节点的定义 三、AVL树的插入 四、AVL树的旋转 4.1 左单旋 4.2 右单旋 4.3 左右双旋 4.4 右左双旋 五、AVL树的验证 六、AVL树的性能 七、完整代码 前言 前面对 map/multimap/set/multiset 进行了简单的介绍&#xff0c;在其文…

2023年湖北武汉安全员C证报考条件是什么?考试题型是什么 启程别

2023年湖北武汉安全员C证报考条件是什么&#xff1f;考试题型是什么 启程别 武汉安全员C证报考条件&#xff1a; 1.注册地在本市的施工单位在职“三类人员”可申请参加安全生产考核&#xff1b; 2、职业道德良好&#xff0c;身体健康&#xff0c;年龄不超过60周岁&#xff08…

pdf多页合并为一页方法总结,你觉得哪个最好?

PDF格式的文件在现代办公中是不可或缺的&#xff0c;许多人在工作中需要频繁处理PDF文档。然而&#xff0c;当我们需要阅读多个PDF文件时&#xff0c;不断切换不同的文件并一个一个地打开查阅会非常麻烦。为了提高阅读效率&#xff0c;人们一般会将pdf多页合并为一页。那么&…

传输线的物理基础(四):传输线的驱动和返回路径

驱动一条传输线对于将信号发射到传输线的高速驱动器&#xff0c;传输线在传输时间内的输入阻抗将表现得像一个电阻&#xff0c;相当于线路的特性阻抗。鉴于此等效电路模型&#xff0c;我们可以构建驱动器和传输线的电路&#xff0c;并计算发射到传输线中的电压。等效电路如下图…

虹科分享 | 网络流量监控 | 数据包丢失101

什么是数据包&#xff1f; 数据包是二进制数据的基本单位&#xff0c;在网络连接的设备之间编号和传输&#xff0c;无论是在本地还是通过互联网。一旦数据包到达其目的地&#xff0c;它就会与其他数据包一起按编号重新组合&#xff0c;回到最初传输的较大消息中。 数据包是我们…

2022(二等奖)C2594江淮分水岭植被碳汇时空可视化系统

作品介绍 一、需求分析 1.1 设计背景 气候变化是全球性问题&#xff0c;随着二氧化碳排放的增加生物的生存与生命受到威胁。人类活动对自然界生态系统的破坏&#xff0c;不仅降低了地球生物圈的生产力&#xff0c;威胁到人类社会未来经济的发展&#xff0c;同时还破坏了陆地与…

WireShark如何抓包,各种协议(HTTP、ARP、ICMP)的过滤或分析,用WireShark实现TCP三次握手和四次挥手

WireShark一、开启WireShark的大门二、如何抓包 搜索关键字2.1 协议过滤2.2 IP过滤2.3 过滤端口2.4 过滤MAC地址2.5 过滤包长度2.6 HTTP模式过滤三、ARP协议分析四、WireShark之ICMP协议五、TCP三次握手与四次挥手5.1 TCP三次握手实验5.2 可视化看TCP三次握手5.3 TCP四次挥手5.…

【大数据处理与可视化】一 、大数据分析环境搭建(安装 Anaconda 3 开发环境)

【大数据处理与可视化】一 、大数据分析环境搭建&#xff08;安装 Anaconda 3 开发环境&#xff09;实验目的实验内容实验步骤一、下载Anaconda安装包二、安装Anaconda3三、验证Anaconda是否安装成功四、Jupyter Notebook的使用1. 启动Anaconda自带的Jupyter Notebook2. 在code…

Volatile关键字

Volatile关键字和JMM内存模型一JUC并发包API 包介绍二JMM&#xff08;Java Memory Model&#xff09;三 volatile关键字3.1.可⻅性3.1.1.问题演示3.1.1.1案例代码3.1.1.2.案例分析3.1.2.volatile 保证可见性演示3.1.2.1对number添加了volatile修饰3.1.2.2运⾏结果是&#xff1a…

Docker学习(二十一)构建 java 项目基础镜像

目录1.下载 JDK 包2.编写 Dockerfile3.构建镜像4.创建容器测试1.下载 JDK 包 JDK各版本官网下载地址&#xff1a; https://www.oracle.com/java/technologies/downloads/archive/#JavaSE 这里我们以 JDK 8u351 为例&#xff0c;点击 Java SE (8U211 and later)。 点击下载 jd…

Mysql问题:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause

1 问题描述 使用Navicat连接到MySQL(版本&#xff1a;8.0.18)&#xff0c;执行查询&#xff1a; select * from t_user WHERE user_name admin查询结果没有问题&#xff0c;但是报错&#xff1a; [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY claus…

分布式 微服务

微服务学习 soa和微服务 业务系统实施服务化改造之后&#xff0c;原本共享的业务被拆分形成可复用的服务&#xff0c;可以在最大程度上避免共享业务的重复建设、资源连接瓶颈等问题。那么被拆分出来的服务是否也需要以业务功能为维度来进行拆分和独立部署&#xff0c;以降低业…