【WEEK5】 【DAY4】数据库操作【中文版】

2024.3.28 Thursday

目录

  • 2.数据库操作
    • 2.1.数据库
      • 2.1.1.新建数据库(右键的方法)
      • 2.1.2.查询:点击“查询”->“新建查询表”即可输入所需要的语句,点击“运行”,如:
    • 2.2.结构化查询语句分类
    • 2.3.数据库操作
      • 2.3.1.命令行操作数据库
    • 2.4.数据库的数据类型(列类型)
      • 2.4.1.列类型: 规定数据库中该列存放的数据类型
        • 2.4.1.1.数值类型
        • 2.4.1.2.字符串类型
        • 2.4.1.3.时间类型
        • 2.4.1.4.Null
    • 2.5.数据库的字段属性(重点)
      • 2.5.1.UnSigned
      • 2.5.2.ZEROFILL
      • 2.5.3.Auto_InCrement
        • 2.5.3.1.自动增长的 , 每添加一条数据 , 自动在上一个记录数上加 1(默认)
        • 2.5.3.2.通常用于设置主键 , 且为整数类型
        • 2.5.3.3.可定义起始值和步长
      • 2.5.4.NULL 和 NOT NULL
      • 2.5.5.DEFAULT
    • 2.6.使用sql语句创建表(重点)
      • 2.6.1.要求:
      • 2.6.2.注意点&代码
    • 2.7.逆向使用
      • 2.7.1.查看数据库的定义
      • 2.7.2.查看数据表的定义
      • 2.7.3.显示表结构
    • 2.8.数据表的类型
      • 2.8.1.设置数据表的类型
      • 2.8.2.数据表的存储位置
        • 2.8.2.1.MySQL数据表以文件方式存放在磁盘中
        • 2.8.2.2.MySQL引擎在物理文件上的区别
      • 2.8.3.设置数据表字符集
    • 2.9.修改、删除数据库
      • 2.9.1.修改表 ( ALTER TABLE )
        • 2.9.1.1.修改表名: ALTER TABLE 旧表名 RENAME AS 新表名
        • 2.9.1.2.添加字段: ALTER TABLE 表名 ADD字段名 列属性[属性]
        • 2.9.1.3.修改字段 :
        • 2.9.1.4.删除字段 : ALTER TABLE 表名 DROP 字段名
      • 2.9.2.删除数据表
        • 2.9.2.1.语法:DROP TABLE [IF EXISTS] 表名
      • 2.9.3.注意点

2.数据库操作

2.1.数据库

2.1.1.新建数据库(右键的方法)

在这里插入图片描述

2.1.2.查询:点击“查询”->“新建查询表”即可输入所需要的语句,点击“运行”,如:

在这里插入图片描述

2.2.结构化查询语句分类

在这里插入图片描述
DDL: Data Definition Language
DML: Data Manipulation Language
DQL: Data Query Language
DCL: Data Control Language

2.3.数据库操作

2.3.1.命令行操作数据库

  1. 创建数据库 : create database [if not exists] 数据库名;
  2. 删除数据库 : drop database [if exists] 数据库名;
  3. 查看数据库 : show databases;
  4. 使用数据库 : use 数据库名; 注意:如果表名或字段名是一个特殊字符,则需要用
` 反单引号(backquote)	`

包围

  1. [ ]内的内容为选择性的(用于避免error产生)
    在这里插入图片描述
    在这里插入图片描述
    再输入运行SHOW DATABASES能看到数据库多了一行叫做westos的,然后再运行DROP DATABASE westos删除该数据库,想要检查,则再次输入SHOW DATABASES,发现westos这行又消失了。
    USE school这行是用于选择数据库的,但是具体使用时没发现什么区别(不运行这行好像结果也一样)
    在这里插入图片描述

2.4.数据库的数据类型(列类型)

2.4.1.列类型: 规定数据库中该列存放的数据类型

2.4.1.1.数值类型

在这里插入图片描述
int类型常用
因为存在精度问题,所以金融计算时使用decimal
在这里插入图片描述

2.4.1.2.字符串类型

在这里插入图片描述
varchar常用,对应Java内的string
在这里插入图片描述
tinytext和text(保存大文本)的区别:存储大小,在Java内依然使用string

2.4.1.3.时间类型

在这里插入图片描述
最常用的时间格式:datetime(YYYY-MM-DD HH:mm:ss)
其中date为日期格式:YYYY-MM-DD
time为时间格式: HH:mm:ss
时间戳timestamp(也常用):从1970.1.1零时~现在,的毫秒数

2.4.1.4.Null

理解为 “没有值” 或 “未知值”
不要用NULL进行算术运算 , 结果仍为NULL

2.5.数据库的字段属性(重点)

2.5.1.UnSigned

  1. 无符号的
  2. 声明该数据列不允许负数

2.5.2.ZEROFILL

  1. 0填充的
  2. 不足位数的用0来填充 , 如int(3),5则为005

2.5.3.Auto_InCrement

2.5.3.1.自动增长的 , 每添加一条数据 , 自动在上一个记录数上加 1(默认)

在这里插入图片描述
设置“自动递增”后“打开表”左下角添加行后无需手动输入被自增的编号的值,填完其他信息(也可以不填写)后直接选“√”,将自动填写以及自增后的数字。如:
在这里插入图片描述=选√后=>在这里插入图片描述

2.5.3.2.通常用于设置主键 , 且为整数类型
2.5.3.3.可定义起始值和步长
  • 当前表设置步长(AUTO_INCREMENT=100) : 只影响当前表
  • SET @@auto_increment_increment=5 ; 影响所有使用自增的表(全局)

2.5.4.NULL 和 NOT NULL

  • 默认为NULL , 即没有插入该列的数值
  • 如果设置为NOT NULL , 则该列必须有值
    在这里插入图片描述选勾了则为不能非空(not null)

2.5.5.DEFAULT

  1. 默认的
  2. 用于设置默认值
  3. 例如,性别字段,默认为"男" , 否则为 “女” ; 若无指定该列的值 , 则默认值为"男"的值
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2.6.使用sql语句创建表(重点)

2.6.1.要求:

  • 目标 : 创建一个school数据库
    • 创建学生表(列,字段)
    • 学号int 登录密码varchar(20) 姓名,性别varchar(2),出生日期(datatime),家庭住址,email
    • 创建表之前 , 一定要先选择数据库

2.6.2.注意点&代码

# 学号int, 登录密码varchar(20) 姓名, 性别varchar(2), 出生日期(datatime), 家庭住址, email
#注意区分`返单引号(表名、列 名)`和'单引号(comment用)'
#创建表后应该添加(),把相关语句包含在内,每条语句结尾要有逗号(最后一行不用)

CREATE TABLE IF NOT EXISTS `student3`(
	`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学员id',
	`psw` VARCHAR(20) NOT NULL DEFAULT '111111' COMMENT 'password',
	`name` VARCHAR(20) NOT NULL DEFAULT 'LIHUA' COMMENT '姓名',
	`gd` VARCHAR(6) NOT NULL DEFAULT 'MALE' COMMENT 'gender',
	`bd` DATETIME DEFAULT NULL COMMENT 'birthday',
	`add` VARCHAR(100) DEFAULT NULL COMMENT 'address',
	`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
	
	#设置主键(一般一个表就一个主键,而且建议另外声明)
	PRIMARY KEY(`id`)
)ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
--格式--
CREATE TABLE [IF NOT EXISTS] `表名`	(
	`字段名1` 列类型 [属性] [索引] [注释],
	`字段名2` 列类型 [属性] [索引] [注释],
	......
	`字段名n` 列类型 [属性] [索引] [注释]
)[表类型] [字符集设置] [注释]

2.7.逆向使用

2.7.1.查看数据库的定义

SHOW CREATE DATABASE school;

(点击单行运行后会出现解释部分,如下)
在这里插入图片描述

2.7.2.查看数据表的定义

SHOW CREATE TABLE student;

在这里插入图片描述

2.7.3.显示表结构

DESC student;  -- 设置严格检查模式(不能容错了)

在这里插入图片描述

SET sql_mode='STRICT_TRANS_TABLES';

2.8.数据表的类型

2.8.1.设置数据表的类型

CREATE TABLE 表名(
   -- 省略一些代码
   -- Mysql注释
   -- 1. # 单行注释
  -- 2. /*...*/ 多行注释
)ENGINE = MyISAM (or InnoDB)

-- 查看mysql所支持的引擎类型 (表类型)
SHOW ENGINES;

MySQL的数据表的类型 : MyISAM , InnoDB , HEAP , BOB , CSV等…
常见的 MyISAM 与 InnoDB 类型:
在这里插入图片描述
经验 ( 适用场合 ) :

  • 适用 MyISAM : 节约空间及相应速度
  • 适用 InnoDB : 安全性 , 事务处理及多用户操作数据表

2.8.2.数据表的存储位置

2.8.2.1.MySQL数据表以文件方式存放在磁盘中
  • 包括表文件 , 数据文件 , 以及数据库的选项文件
  • 位置 : Mysql安装目录\data\下存放数据表 .(本质还是文件的储存,一个文件夹对应一个数据库) 目录名对应数据库名 , 该目录下文件名对应数据表 .
2.8.2.2.MySQL引擎在物理文件上的区别
  • InnoDB类型数据表只有一个 *.frm文件 , 以及上一级目录的ibdata1文件
  • MyISAM类型数据表对应三个文件 :
* . frm -- 表结构定义文件
* . MYD -- 数据文件 ( data )
* . MYI -- 索引文件 ( index )

在这里插入图片描述

2.8.3.设置数据表字符集

我们可为数据库,数据表,数据列设定不同的字符集,设定方法 :

  1. 创建时通过命令来设置 , 如 : CREATE TABLE 表名()CHARSET = utf8;
  2. 如无设定 , 则根据MySQL数据库配置文件 my.ini 中的参数设定:”character-set-server=utf8”

2.9.修改、删除数据库

2.9.1.修改表 ( ALTER TABLE )

2.9.1.1.修改表名: ALTER TABLE 旧表名 RENAME AS 新表名

在这里插入图片描述

2.9.1.2.添加字段: ALTER TABLE 表名 ADD字段名 列属性[属性]

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

2.9.1.3.修改字段 :
  • 重命名:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性[属性]
  • 修改约束:ALTER TABLE 表名 MODIFY 字段名 列类型[属性]
    在这里插入图片描述
    在这里插入图片描述
2.9.1.4.删除字段 : ALTER TABLE 表名 DROP 字段名

在这里插入图片描述

2.9.2.删除数据表

2.9.2.1.语法:DROP TABLE [IF EXISTS] 表名
  • IF EXISTS为可选 , 判断是否存在该数据表
  • 如删除不存在的数据表会抛出错误
    在这里插入图片描述

2.9.3.注意点

1. 可用反引号(`)为标识符(库名、表名、字段名、索引、别名)包裹,以避免与关键字重名!中文也可以作为标识符!
2. 每个库目录存在一个保存当前数据库的选项文件db.opt。
3. 注释:
  单行注释 # 注释内容
  多行注释 /* 注释内容 */
  单行注释 -- 注释内容       (标准SQL注释风格,要求双破折号后加一空格符(空格、TAB、换行等))
4. 模式通配符:
  _   任意单个字符
  %   任意多个字符,甚至包括零字符
  单引号需要进行转义 \'
5. CMD命令行内的语句结束符可以为 ";", "\G", "\g",仅影响显示结果。其他地方还是用分号结束。delimiter 可修改当前对话的语句结束符。
6. SQL对大小写不敏感 (关键字)
7. 清除已有语句:\c

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CSS3 (一)

一、CSS3 2D转换 转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果。转换(transform)你可以简单理解为变形。 移动:translate 、旋转:rotate 、缩放&#xf…

双向长短期BiLSTM的回归预测-附MATLAB代码

BiLSTM是一种带有正反向连接的长短期记忆网络(LSTM)。 BiLSTM通过两个独立的LSTM层,一个按时间顺序处理输入,另一个按时间倒序处理输入,分别从正向和反向两个方向捕捉输入序列的特征。具体地,正向LSTM按时…

接口自动化框架搭建(三):pytest库安装

1,使用命令行安装 前提条件:已安装python环境 pip install pytest 或者 pip3 install pytest2,从编译器pycharme中安装

物理寻址和功能寻址,服务器不同的应答策略和NRC回复策略

1:功能寻址,服务器应答与NRC回复策略 详细策略上,又分为服务有子功能,和不存在子功能。 1.1功能寻址,存在子功能 存在子功能的情况下,又分为supress postive response (即子功能字节的bit7&a…

WMware虚拟机配置静态IP

注意:如果是克隆的虚拟机,需要先重新生成mac地址,如下图所示 修改配置文件 :/etc/sysconfig/network-scripts/ifcfg-ens33 注意:1. BOOTPROTO设置为static 2.将下面的IPADDR地址替换为你实际要设置的ip地址 3.NAT模式…

聚酰亚胺PI材料难于粘接,用什么胶水粘接?那么让我们先一步步的从认识它开始(十三): 聚酰亚胺PI纤维的缺点

聚酰亚胺PI纤维的缺点 聚酰亚胺PI纤维虽然是一种具有许多优异特性的高性能纤维,但也存在一些缺点和局限性,这些缺点可能会影响其在某些应用领域的适用性。主要缺点包括: 1.成本高:聚酰亚胺PI纤维的生产过程复杂,原料成…

【倪琴神品品鉴】全新倪诗韵神品级古琴

倪琴朱砂神品仲尼,仅此放漏一张;龙池侧签海门倪诗韵制,雁足上方刻“雷音琴坊”方章,凤沼下方有随形章“神品”二字;老木材纹理竖直,共振良好,是难得的佳器;附带倪老师亲笔签名收藏证…

以太网/USB 数据采集卡 24位16通道 labview 256K同步采样

XM7016以太网SUB数据采集卡 XM7016是一款以太网/USB高速数据采集卡,具有16通道真差分输入,24位分辨率,单通道最高采样率256ksps. 16通道同步共计4.096Msps、精密前置增益放大、集成IEPE/ICP硬件支持的特点。本产品采用了多个高精度24位ADC单元…

想做跨境电商测评自养号需要满足什么条件?

测评对于卖家来说算是一种低成本,高回报的推广营销方式,对于商品流量,转化率,关键词质量分,链接权重等都起到了一定的辅助作用,但凡事都有好坏,倘若处理不得当,很容易影响店铺&#…

jupyter 设置工作目录

本博客主要介绍: 如何为jupyter设置工作目录 1.打开 anaconda prompt , 执行 jupyter notebook --generate-config 执行这个命令后会生成一个配置文件 2. 打开jupyter_notebook_config.py文件编辑 搜索notebook_dir,把这行代码的注释取消,…

HN热帖|替换Redis的一场赛跑

3 月 21 日, Redis Ltd. 宣布了一项重大决定:Redis “内存数据存储”项目从 Redis 7.4 版本开始将以非自由的、源代码可用的许可证发布。这一消息并不受欢迎,但也并非完全意外。这次的变化的不同寻常之处是市面上已经有了多个 Redis 替代品可…

FreeRTOS day1

1.总结keil5下载代码和编译代码需要注意的事项 需要与板子连通 配置完成后才点击下载 2.总结STM32Cubemx的使用方法和需要注意的事项 下载支持包 打开芯片配置界面 3.总结STM32Cubemx配置GPIO的方法

笔记本电脑上部署LLaMA-2中文模型

尝试在macbook上部署LLaMA-2的中文模型的详细过程。 (1)环境准备 MacBook Pro(M2 Max/32G); VMware Fusion Player 版本 13.5.1 (23298085); Ubuntu 22.04.2 LTS; 给linux虚拟机分配8*core CPU 16G RAM。 我这里用的是16bit的量化模型,…

Linux系统下使用ethtool命令定位网口位置的方法

多网口服务器安装Linux系统时我们会看到eth0、eth1、……网口过多,不好确定哪个口对应哪个eth,可以使用ethtool命令定位网口位置。 方法一 ethtool ethX 查看相应网口的详细信息 [rootMiNAS ~]# ethtool eth0Settings for eth0: Supported ports: [ …

在Windows上交叉编译STM32(环境搭建)

在Windows上交叉编译STM32 Keil 虽然好用,但是是收费的,不想破解怎么办~ 使用交叉编译工具! 交叉编译工具下载 官方交叉编译工具下载连接 下载解压好后将 bin 目录写入 PATH, 使用命令行检测是否安装成功。 Windows 安装 make …

wpsword求和操作教程

wpsword求和怎么操作: 1、首先,单纯的数据是无法求和的,所以我们必须要“插入”一个“表格” 2、接着将需要求和的数据填入到表格中。 3、填完后,进入“布局”选项卡。 4、然后打开其中的“公式” 5、在其中选择求和公式“SUM”并…

深入MNN:开源深度学习框架的介绍、安装与编译指南

引言 在人工智能的世界里,深度学习框架的选择对于研究和应用的进展至关重要。MNN,作为一个轻量级、高效率的深度学习框架,近年来受到了众多开发者和研究人员的青睐。它由阿里巴巴集团开源,专为移动端设备设计,支持跨平…

什么是超声波清洗机?六大超声波清洗机必读干货分享指南

传统的清洁方式往往难以满足高效、高质量的需求,这时,超声波清洗机就显得格外重要。但什么是超声波清洗机?为什么它能在众多清洁设备中脱颖而出?接下来,我们将通过六大必读干货,一探究竟,开启清…

RockChip Android8.1 Settings

一:Settings一级菜单 1、AndroidManifest.xml 每个APP对应都有一个AndroidManifest.xml,从该文件入手分析最为合适。 packages/apps/Settings/AndroidManifest.xml 根据<category android:name="android.intent.category.LAUNCHER" />可找到当前当前APP a…

MySQl on和where条件的区别?

MySQ L on和where条件的区别&#xff1f; on会生成临时表&#xff0c;不满足条件会置空 where 过滤数据&#xff0c;不满足的数据不会显示