当前位置: 首页 > news >正文

MySQL数据库管理(一)

目录

1.MySQL数据库管理

1.1 常用的数据类型​编辑

1.2 char和varchar区别

2. 增删改查命令操作

2.1 查看数据库结构

2.2 SQL语言

2.3 创建及删除数据库和表

2.4 管理表中的数据记录

2.5 修改表名和表结构

3.MySQL的6大约束属性


1.MySQL数据库管理

1.1 常用的数据类型

1.2 char和varchar区别

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

下表显示了将各种字符串值保存到CHAR(4)和VARCHAR(4)列后的结果,说明了CHAR和VARCHAR之间的差别:

字节大小

char无论是否有值,都会占用固定长度的字节大小,保存在磁盘上都是4字节。
varchar在保存字符时,默认会加一个隐藏的结束符,因此结束符会多算一个字节。

优劣比较

varchar比char节省磁盘空间。
但varchar类型的数据读写速度比char慢,因为char是连续的磁盘空间,·而varchar在多次增删改查中会产生一些磁盘空间碎片。

2. 增删改查命令操作

mysql -u root -pabc123   #登录数据库

2.1 查看数据库结构

(1)查看当前的 MySQL 版本信息及连接用户名

SELECT VERSION();
SELECT USER();

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

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

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

use 数据库名;   #切换库
show tables;    #查看库中的表
show tables from 数据库;     #不登录数据库,直接查看数据库中的表信息


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

use 数据库名;               #切换数据库
describe 表名               #查看数据库中的表结构信息
describe  数据库名.表名;    #不登录数据库,查看数据库中的表结构信息
可缩写成:desc 表名;



2.2 SQL语言

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

SQL语言分类:

DDL: 数据定义语言,用于创建数据库对象,如库、表、索引等.

DML:数据操纵语言,用于对表中数据进行管理(增、删、改).

DQL:数据查询语言,用于从数据表中查找符合条件的数据记录.

DCL:数据控制语言,用于设置或者更改数据库用户或角色权限.

2.3 创建及删除数据库和表

(1)创建新的数据库

create database 数据库名;

(2)创建新的表

use  数据库名;
create table 表名 (字段1 数据类型,字段2 数据类型,.....,[primary key(设为主键的字段名)]);     #主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键

(3)删除指定的数据表

use  数据库名;
drop table [数据库名].表名;           #如不用use进入库中,则需加上数据库名
drop table 


(4)删除指定的数据库

drop  database 数据库名;

2.4 管理表中的数据记录

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

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

(2)查询数据记录

use xy101  #进入数据库
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
select * from xy102;
select name,age from xy102 where sex='男';
select * from xy102 where id>=2 and id<=3;
select * from xy102 where id=1 or id=3;
select * from xy102 limit 2;       #只显示头2行
select * from xy102 limit 1,2;    #显示第1行后的前2行(不包括第1行,也就是第2、3行)
select * from xy102\G      #以列表方式竖向显示,结尾没有分号,在Xshell中可以看到效果,在Navicat中无法实现







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

update 表名 set 字段名1=字段值1, [字段名2=字段值2]  [WHERE条件表达式1];
update xy102 set id=4 where age=24;

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

delete from 表名 [where条件表达式];
delete from xy102 where id=4;

2.5 修改表名和表结构

(1)修改表名

alter table 旧的表名 rename 新的表名
alter table xy101 rename xy110;

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

alter table 表名 add 字段 数据类型  default ' 默认值' ;
alter table xy110 add hobby varchar(40) default '和平';
#default '和平':表示此字段设置默认值,爱好不明,可与NOT NULL配合使用


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

alter table 表名 change 旧列名 新列名 数据类型  [unique key];
alter table xy110 change age aage int(11) unique key;#unique key代表唯一键,不可以添加相同值,一张表可以有多个唯一值。

(4)删除字段

alter table 表名 drop 字段名;
alter table xy110 drop hobby;

(5)添加、删除约束属性

alter table xy110 drop primary key;
alter table xy110 add primary key(name);

3.MySQL的6大约束属性

not null:非空约束

auto_increment:自增约束

案例扩展:

use mybl;
create table if not exists info (				  #表示检测要创建的表是否已存在,如果不存在就继续创建。
id int(4) zerofill primary key auto_increment,    #指定主键的第二种方式。其中int(4) zerofill表示若数值不满4位数,则前面用"0"填充,例如0001。
name varchar(10) not null default '匿名',
cardid int(18) not null unique key,
hobby varchar(50));

注意: int(N) 需要和zerofill primary配合使用,否则N的值没有意义

相关文章:

  • 2024年6月13日随笔
  • 拥抱数字世界|AI在娱乐行业的应用,娱乐新纪元已到来
  • 浅谈Web开发的三大主流框架:Angular、React和Vue.js
  • 京准电钟|基于纳秒级的GPS北斗卫星授时服务器
  • SSM名城养老院管理系统-计算机毕业设计源码03948
  • c++_0基础_讲解1 认识c++
  • 判断当前设备为移动端自适应 平板和pc端为375移动端样式
  • 二进制中的相反数
  • 从零实现ChatGPT:第一章构建大规模语言模型的数据准备
  • AWS无服务器 应用程序开发—第十一章API Gateway
  • C++ 字符串处理5-手机号邮箱如何脱敏处理
  • How To: Localize Bar and Ribbon Skin Items
  • 【超详细】使用RedissonClient实现Redis分布式锁
  • ArrayList集合+综合案例
  • 英语复习之英语同音词总结(六)
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • hexo+github搭建个人博客
  • [数据结构]链表的实现在PHP中
  • 「译」Node.js Streams 基础
  • Android 控件背景颜色处理
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • Cumulo 的 ClojureScript 模块已经成型
  • Java深入 - 深入理解Java集合
  • mongo索引构建
  • Mysql5.6主从复制
  • nginx 负载服务器优化
  • 电商搜索引擎的架构设计和性能优化
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 技术胖1-4季视频复习— (看视频笔记)
  • 聊聊hikari连接池的leakDetectionThreshold
  • 码农张的Bug人生 - 初来乍到
  • 前端面试总结(at, md)
  • 说说动画卡顿的解决方案
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • ionic入门之数据绑定显示-1
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ​520就是要宠粉,你的心头书我买单
  • ​ssh免密码登录设置及问题总结
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (C语言)字符分类函数
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • ./configure,make,make install的作用(转)
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .a文件和.so文件
  • .gitignore文件忽略的内容不生效问题解决
  • .NET Core中的去虚
  • .Net IOC框架入门之一 Unity
  • .NET 分布式技术比较
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化