数据库应用:MySQL数据库使用与管理

news2024/11/16 9:20:41

目录

一、理论

1.MySQL基本操作

2.数据类型

2.使用MySQL数据库

二、实验

1.查看数据库结构

2.创建及删除库和表

 3.管理表中的数据记录

4.修改表名和表结构

5.查看、修改字符集

三、问题

1.表导入新记录报错

四、总结




一、理论

1.MySQL基本操作

(1)SQL分类

表1 SQL分类

序号分类
1

数据库:database

2

表:table,行:row 列:column

3

索引:index

4

视图:view

5

存储过程:procedure

6

存储函数:function

7

触发器:trigger

8

事件调度器:event scheduler,任务计划

9

用户:user

10

权限:privilege

(2)SQL语言规范

① 在数据库系统中,SQL 语句不区分大小写,建议用大写

② SQL语句可单行或多行书写,默认以 " ; " 结尾

③ 关键词不能跨多行或简写

④ 用空格和TAB 缩进来提高语句的可读性

⑤ 子句通常位于独立行,便于编辑,提高可读性

(3)数据库对象和命名

① 数据库的组件(对象)

数据库、表、索引、视图、用户、存储过程、函数、触发器、事件调度器等

② 命名规则

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

不要使用MySQL的保留字,如tabble select show databases

(4)SQL语句分类

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

表2 SQL语句分类

语句英文功能命令

    DDL

Data Defination Language 数据定义语言,用于创建数据库对象,如库、表、索引等CREATE,DROP,ALTER
DMLData Manipulation Language 数据操纵语言,用于对表中的数据进行管理INSERT,DELETE,UPDATE
DQLData Query Language数据查询语言,用于从数据表中查找符合条件的数据记录SELECT
DCLData Control Language 数据控制语言,用于设置或者更改数据库用户或角色权限GRANT,REVOKE
TCLTransaction Control Language事务控制语言COMMIT,ROLLBACK,SAVEPOINT

(5)帮助信息

#help后面跟上具体命令可以查看帮助
例如:mysql> help select

(6)查看、修改字符集

1. #查看支持字符集
show charset;
默认拉丁文字,需要修改为
 
utf8     | UTF-8 Unicode   
#阉割版的
 
utf8mb4  | UTF-8 Unicode 
#真实的版本
 
2. #修改字符集
vim /etc/my.cnf
[mysqld]
character-set-server=utf8mb4

2.数据类型

(1)常用数据类型

表3 常用数据类型

说明备注
int整型,用于定义整数类型的数据
fload单精度浮点4字节32位,准确表示到小数点后六位
double双精度浮点8字节64位
char固定长度的字符类型,用于定义字符类型数据。
varchar可变长度的字符类型
ext文本
image图片
decimal(5,2)5个有效长度数字,小数点后面有2位。指定长度数组

(2)数据类型参考

表4 数据类型参考

数据类型说明

整数型

tinyint(m) 1个字节 范围(-128~127)

smallint(m) 2个字节 范围(-32768~32767)

mediumint(m) 3个字节 范围(-8388608~8388607)

int(m) 4个字节 范围(-2147483648~2147483647)

bigint(m) 8个字节 范围(+-9.22*10的18次方)

上述数据类型,如果加修饰符unsigned后,则最大值翻倍

如:tinyint unsigned的取值范围为(0~255)

浮点型 (float 和 double) ,近似值

float(m,d) 单精度浮点型 8位精度(4字节) m总个数,d小数位, 注意: 小数点不占用总个数

double(m,d) 双精度浮点型16位精度(8字节) m总个数,d小数位, 注意: 小数点不占用总个数

设一个字段定义为float(6,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位

定点数

在数据库中存放的是精确值,存为十进制

格式 decimal(m,d) 表示 最多 m 位数字,其中 d 个小数,小数点不算在长度内

比如: DECIMAL(6,2) 总共能存6位数字,末尾2位是小数,字段最大值 9999.99 (小数点不算在长度内)

参数m<65 是总个数,d<30且 d<m 是小数位

MySQL5.0和更高版本将数字打包保存到一个二进制字符串中(每4个字节存9个数字)。

例如: decimal(18,9)小数点两边将各存储9个数字,一共使用9个字节:其中,小数点前的9个数字用4个字节,小数点后的9个数字用4个字节,小数点本身占1个字节

浮点类型在存储同样范围的值时,通常比decimal使用更少的空间。float使用4个字节存储。double占用8个字节

因为需要额外的空间和计算开销,所以应该尽量只在对小数进行精确计算时

字符串

char(n) 固定长度,最多255个字符,注意不是字节

varchar(n) 可变长度,最多65535个字符

tinytext 可变长度,最多255个字符

text 可变长度,最多65535个字符

mediumtext 可变长度,最多2的24次方-1个字符

longtext 可变长度,最多2的32次方-1个字符

BINARY(M) 固定长度,可存二进制或字符,长度为0-M字节

VARBINARY(M) 可变长度,可存二进制或字符,允许长度为0-M字节

内建类型:ENUM枚举, SET集合

2.使用MySQL数据库

(1)查看数据库结构

查看当前服务器中的数据库

show databases;					#大小写不区分,分号“;”表示结束

查看数据库中包含的表

方法一:在库中查看表
use mysql;             #use 数据库名
show tables;           #查看表
 
法二 :在库外查看表
show tables from mysql;    #show tables from 数据库名

查看表的结构(字段)

use 数据库名;
describe [数据库名.]表名;
可缩写成:desc 表名;

④ 查看myql版本

mysql -V

(2)创建及删除库和表

① 创建新的数据库(create database)

#建立数据库 
create database 数据库名;
 
#建立数据库并指定字符集utf8mb4
create database 数据库名 charset=utf8mb4;
后文有详细操作及其演示

② 删除指定的数据库(drop database)

drop database 数据库名;

③ 创建新的表 (create table)

use 数据库名;
create table 表名 (字段1 数据类型,字段2 数据类型[,...][,primary key (主键名)]);
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
 
例如:
use david;
create table students (id smallint unsigned primary key auto_increment, name varchar(10), age tinyint unsigned,gender enum('M','F') default 'M' );
 
#unsigned:取消负数
primary  key:主键
auto_increment: 自增长
enum('M','F'):多选 
default 'M':默认值为 M

④ 删除指定的数据表(drop table)

方法一:库内删除
use 数据库名;
drop table 数据表名;
 
方法二:库外删除
#如不用USE进入库中,则需加上数据库名
drop table 数据库名.数据表名;			

(3)管理表中的数据记录

向数据表中插入新的数据记录(insert into)

insert into 表名(字段1,字段2[,...]) values(字段1的值,字段2的值,...);
 
例如:
insert into students(id,name,age,passwd) values(1,'zhangsan',20,'112233' );
insert into students(id,name,age,passwd) values(2,'lisi',22,PASSWORD('123456'));
#PASSWORD('112233'):查询数据记录时,密码字串以加密形式显示;若不使用PASSWORD(),查询时以明文显示
select * from students;
 
提前新建数据表(注意长度设置)
use mysql;
create table students (id smallint unsigned primary key auto_increment, name varchar(10),age tinyint unsigned, passwd varchar(48));

查询数据表内数据记录(select)

select 字段名1,字段名2[,...] from 表名 [where 条件表达式];
 
基本操作:
1. #查询全部数据
select * from 数据表名;
例如:
select * from students;
 
2. #查询指定数据
例如:
select id,name from students where id=2;
更多操作:
3. #以列表方式竖向显示
select * from 数据表名\G;			
例如:
select * from students\G;
 
4. #只显示头2行
select * from 数据表名 limit 2;
例如:	
select * from students limit 2;
 
5. #显示第3行后的2行
select * from 数据表名 limit 3,2;
例如:
select * from students limit 3,2;

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

update 表名 set 字段名1=字段值1[,字段名2=字段值2] [where 条件表达式];
 
例如:
update students set age=19 where id=4;
update students set age=20,passwd='111111' where id=2;    #同时修改age和passwd
 

在数据表中删除指定的数据记录

delete from 表名 [where 条件表达式];
 
例如:
delete from students where id=2;
 
#注意id并不会顶上去

(4)修改表名和表结构

修改表名(rename)

alter table 旧表名 rename 新表名;
 
例如:
alter table students rename xuesheng;

扩展表结构,增加字段(add)

alter table 表名 add 字段;
 
例如:
alter table xuesheng add address varchar(50) default 'wait get';
#default 'wait get':表示此字段设置默认值 wait get;可与 NOT NULL 配合使用

修改字段(列)名,添加唯一键(change)

alter table 表名 change 旧列名 新列名 数据类型 [unique key];
 
例如:
alter table xuesheng change name user_name char(30) unique key;
#CHANGE可修改字段名、数据类型、约束等所有项。
验证:
insert into xuesheng values(6,lili,23,234567,NANKING);
失败,因为设置了唯一键,lili不能重复,改成lulu即可
insert into xuesheng values(6,lulu,23,234567,NANKING);

删除字段(drop)

alter table 表名 drop 字段名;
 
例如:
#删除表中passwd字段
alter table xuesheng drop passwd;

(5)查看、修改字符集

查看MySQL支持的所有字符集

show charset;

查看数据库字符集

show create database 数据库名\G
 
例如:
#查看mysql数据库中mysql库的字符集
show create database mysql\G

查看数据表的字符集

show table status from 库名 like '表名';
 
例如:
#查看zhuzi数据库中students表的字符集
show table status from zhuzi like 'students';

修改数据库字符集(character set)

#建立数据库并指定字符集utf8mb4
create database 数据库名 charset=utf8mb4;
 
#若数据库已建立,修改字符集
alter database 数据库名 character set 字符集;
例如:
alter database mysql character set utf8mb4;

二、实验

1.查看数据库结构

(1)查看当前服务器中的数据库

(2) 查看数据库中包含的表

在库中查看表

在库外查看表

 (3)查看表的结构(字段)

 (4)查看mysql版本

 

2.创建及删除库和表

(1)创建新的数据库(create database)

 

 (2)删除指定的数据库(drop database)

删除前:

删除后:

 (3)创建新的表 (create table)

 (4)删除指定的数据表(drop table)

库内删除

 库外删除

 
3.管理表中的数据记录

(1)向数据表中插入新的数据记录(insert into)

查询数据记录时,密码字串以加密形式显示;若不使用PASSWORD(),查询时以明文显示:

 (2) 查询数据表内数据记录(select)

以列表方式竖向显示:

 

只显示头2行:

 

显示第3行后的2行:

 

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

 

 

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

4.修改表名和表结构

(1)修改表名(rename)

 

 (2)扩展表结构,增加字段(add)

 (3)修改字段(列)名,添加唯一键(change)

 

 (4)删除字段(drop)

 

5.查看、修改字符集

(1)查看MySQL支持的所有字符集

(2)查看数据库字符集

 (3)查看数据表的字符集

 (4)修改数据库字符集(character set)

 

三、问题

1.表导入新记录报错

(1)报错

ERROR 1054 (42S22): Unknown error 1054

 (2)原因分析

字段拼写错误或字段缺少。

(3)解决方法

 

四、总结

MySQL数据库语句在“mysql>”操作环境中执行。

MySQLde 基本管理操作包括查看数据库结构、创建及删除库和表、管理表中的数据记录。

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

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

相关文章

【sql注入-延时注入】sleep()、benchmark()函数 延时注入

目录 sleep()、benchmark()延时注入 一、语法介绍&#xff1a; 二、延时注入 三、不同数据库 网络安全小圈子 sleep()、benchmark()延时注入 一、语法介绍&#xff1a; 版本&#xff1a; sleep() MySQL>5.7.8 benchmark() MySQL>5.7.5 语法&#xff1a; 使用…

孤立随机森林(Isolation Forest)(Python实现)

目录 1 简介 2 孤立随机森林算法 2.1 算法概述 2.2 原理介绍 2.3 算法步骤 3 参数讲解 4 Python代码实现 5 结果 1 简介 孤立森林&#xff08;isolation Forest&#xff09;是一种高效的异常检测算法&#xff0c;它和随机森林类似&#xff0c;但每次选择划分属性和划分点&…

Linux5.95 ELK企业级日志分析系统

文章目录 计算机系统5G云计算第四章 LINUX ELK 企业级日志分析系统一、ELK 概述1.ELK 简介1&#xff09;ElasticSearch2&#xff09;Kiabana3&#xff09;Logstash4&#xff09;可以添加的其它组件&#xff1a;Filebeat5&#xff09;缓存/消息队列&#xff08;redis、kafka、Ra…

Ubuntu 18.04 下 uhd+gnuradio 安装指南,国产B210

安装ubutnu18.04&#xff0c;换源&#xff0c;apt-get update 一、虚拟机设置以及安装low-latency内核 给虚拟机分配尽可能多的cpu及内存。在USB控制器选项中&#xff0c;将USB兼容性设置为USB 3.1。 USRP B210需要用USB线连接到电脑的USB 3.0/3.1接口上&#xff0c;实现供电…

Melon库运用——栈篇

头文件片段 // mln_stack.htypedef struct mln_stack_node_s {void *data;struct mln_stack_node_s *prev;struct mln_stack_node_s *next; } mln_stack_node_t;typedef struct {mln_stack_node_t *bottom;mln_stack_node_t *top;mln_stac…

喜讯|电巢科技与陕西理工大学“新工科人才联合培养基地”签约暨揭牌仪式成功举行

7月6日上午&#xff0c;深圳市电巢科技有限公司联合陕西理工大学物理与电信工程学院在校内举行产学研座谈会&#xff0c;并完成了“新工科人才联合培养基地”的签约暨揭牌仪式。陕西理工大学物电学院党委书记韩强&#xff0c;院长卢超&#xff0c;副书记潘峰&#xff0c;副院长…

吸烟(抽烟)检测和识别2:Pytorch实现吸烟(抽烟)检测和识别(含吸烟(抽烟)数据集和训练代码)

吸烟(抽烟)检测和识别2&#xff1a;Pytorch实现吸烟(抽烟)检测和识别(含吸烟(抽烟)数据集和训练代码) 目录 吸烟(抽烟)检测和识别2&#xff1a;Pytorch实现吸烟(抽烟)检测和识别(含吸烟(抽烟)数据集和训练代码) 1.吸烟(抽烟)检测和识别 2.吸烟(抽烟)数据集 &#xff08;1&am…

msvcp120.dll丢失的解决方法?哪种方法更推荐

msvcp120.dll是一个Windows操作系统的动态链接库文件。它属于Microsoft Visual C Redistributable软件包的一部分。这个文件包含了一些用于C程序编译和运行的函数和类。当某个程序需要使用这些函数和类时&#xff0c;它会在系统中寻找msvcp120.dll文件。如果系统中缺少这个文件…

运行别人gitub上的vue代码

1.删除package-lock.json和node_modules文件 package-lock.json记录了整个node_moudles文件夹的树状结构&#xff0c;还记录了模块的下载地址&#xff0c;但是它是基于项目作者的npm版本库生成的&#xff0c;若不删掉这个依赖文件&#xff0c;容易出现npm版本差异导致的报错。…

性能测试测什么?如何做性能测试?超级详细总结

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试 负载&a…

深入理解Dockerfile:构建镜像的详细解释与常用命令

目录 1.Dockerfile 简介 2.Dockerfile 指令解析 2.1 FROM 2.2 RUN 2.3 COPY 2.4 ADD 2.5 CMD 2.6 ENTRYPOINT 2.7 ENV 2.8 ARG 2.9 EXPOSE 2.10 WORKDIR 2.11 VOLUME 2.12 USER 3.构建 Docker 镜像的常用命令 3.1 docker build 3.2 docker tag 3.3 docker pu…

银河麒麟V10使用编译安装PostSQL+PostGIS

一、安装环境 银河麒麟V10 1、PostGIS简介 PostGIS是对象关系型数据库系统PostgreSQL的一个扩展&#xff0c;PostGIS提供如下空间信息服务功能&#xff1a; 空间对象、空间索引、空间操作函数和空间操作符。同时&#xff0c;PostGIS遵循OpenGIS的规范。 二、使用make安装Post…

Day49

思维导图 练习 闹钟设计 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> #include <QPushButton> #include <QLabel> #include <QLineEdit> #include <QTextEdit> #include <QTimer> …

【C++】STL——stack和queue使用及模拟实现

&#x1f680; 作者简介&#xff1a;一名在后端领域学习&#xff0c;并渴望能够学有所成的追梦人。 &#x1f681; 个人主页&#xff1a;不 良 &#x1f525; 系列专栏&#xff1a;&#x1f6f8;C &#x1f6f9;Linux &#x1f4d5; 学习格言&#xff1a;博观而约取&#xff0…

ICG试剂大合集:ICG-COOH/NHS/NH2/Maleimide/alkyne/N3

荧光染料及其荧光标记技术一直是生物领域常用的产品和技术&#xff0c;标记荧光的波长从300nm到1000nm&#xff0c;除了常见的FITC、FAM等荧光标记染料外&#xff0c;还包括Cy3&#xff0c;Cy3.5&#xff0c;Cy5, Cy5.5&#xff0c;Cy7&#xff0c;Cy7.5&#xff0c;ICG各种衍生…

vue2登录存储案例:sessionStorage会话存储+localStorage本地存储

vue2可以通过sessionStorage来实现登录以后的数据存储&#xff0c;是H5提供的一个API&#xff0c;可以在浏览器会话期间保持数据 简单模拟一个登录后的存储功能 目录 一、sessionStorage存储 二、localStorage本地存储 一、sessionStorage存储 1、登录的HTML方法 HTML &l…

Java基础---注解

目录 典型回答 什么是元注解 如何判断注解 典型回答 Java 注解用于为 Java 代码提供元数据作为元数据&#xff0c;注解不直接影响你的代码执行&#xff0c;但也有一些类型的注解实际上可以用于这一目的Java注解是从 Java5 开始添加到 Java 的Java的注解&#xff0c;可以说是…

GitHub Pages + Hexo

步骤 参考如下步骤&#xff1a;https://blog.csdn.net/yaorongke/article/details/119089190 出现的问题 1 Fluid主题 其更换Fluid主题时&#xff1a; 下载最新 release 版本 解压到 themes 目录&#xff0c;并将解压出的文件夹重命名为 fluid 按照上面执行后&#xff0c;后…

Michael.W基于Foundry精读Openzeppelin第7期——Timers.sol

Michael.W基于Foundry精读Openzeppelin第7期——Timers.sol 0. 版本0.1 Timers.sol 1. 目标合约2. 代码精读2.1 区块链时间戳维度2.1.1 Timestamp结构体2.1.2 setDeadline(Timestamp storage, uint64) && getDeadline(Timestamp memory)2.1.3 reset(Timestamp storage)…

Linux:基于PXE的kickstart无人值守技术

*创建应答文件&#xff0c;预先定义好各种安装设置 *免去交互设置过程&#xff0c;从而实现全自动化安装 *通过添加%post脚本&#xff0c;完成安装后的各种配置操作 需要的环境为 pxe&#xff08;dhcp&#xff0c;tftp&#xff0c;yum&#xff09; Linux&#xff1a;PXE网络装…