首页 > 数据库 >数据库的增删改查、数据表的增删改查、数据相关的插入、查看、更改、删除

数据库的增删改查、数据表的增删改查、数据相关的插入、查看、更改、删除

时间:2024-06-04 15:14:30浏览次数:23  
标签:-- 数据库 改查 数据表 表名 增删 table 字段名

【一】操作MySQL数据库

【1】数据库相关

(1)创建数据库

create database [if not exists]数据库名字 [charset set 字符编码集];
# 例如:
create database if not exists day01;
# 设置库的默认编码
create databases db1 charset='gbk';

(2)查看当前所有数据库

show databases;  -- 查看所有数据库
show databases like '%test%'; -- 查看名字中包含test的数据库
show create database 数据库名; -- 查看数据库的建库sql语句
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| day01              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

(3)修改数据库

  • 查看数据编码格式
show variables like "character_set_database";
  • 修改数据库编码集
alter database 数据库名 [character set 编码字符集];

#例如:
alter database db2 charset='utf8';

(4)删除数据库

  • 不能轻易删除数据库,因为不可逆
drop database [if exists] 数据库名;

# 例如
drop database day01;

【2】数据表相关

  • 在操作表的时候要指定所在的数据库

(1)查看当前所在库的名字

select database();  --  查看当前使用的数据库

# 例如
select database();

(2)切换到指定库

use 数据库名;        -- 切换数据库

# 例如
use db1;
  • 示例
mysql> use day01;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| day01      |
+------------+
1 row in set (0.00 sec)

  • 切换数据库 注意:
    • 进入到某个数据库后没办法再退回之前状态,但可以通过 **use **进行切换

(3)创建表

  • 数据表就相当于文件,文件有文件名,自然地,数据表也要有表名。
  • 同样道理,数据表中的一条记录就相当于文件的一行内容。
  • 只是不同的是,数据表需要定义表头(上图中的首行),称为表的字段名。
  • 而且因为数据库的存储数据更加科学、严谨,所以需要创建表时要给每一个字段设置数据类型以及字段约束(完整性约束条件)。
create table  [if not exists]  表名 (
    字段名1    数据类型[ ( 存储空间 )    字段约束 ],
    字段名2    数据类型[ ( 存储空间 )    字段约束 ],
    字段名3    数据类型[ ( 存储空间 )    字段约束 ],
    .....
    字段名n   数据类型[ ( 存储空间 )    字段约束 ],
    primary key(一个 或 多个 字段名)    -- 注意,最后一段定义语句,不能有英文逗号的出现,否则报错。
) [engine = 存储引擎 character set 字符集];
  • 注意:

    • 上面SQL语句中,小括号中的定义字段语句后面必须以英文逗号结尾,而最后一个字段的定义语句不能有英文逗号出现,否则报错。
    • 在同一张数据表中,字段名是不能相同,否则报错!
    • 创建数据表的SQL语句中,存储空间和字段约束是选填的,而字段名和数据类型则是必须填写的。
  • 示例:

create table classes(
	name varchar(10),
    password int,
    address varchar(100)
);

# #######要点
-- mysql中创建数据表要以 create table `表名`
-- 表的字段信息必须写在 (  )  小括号里面
create table classes (
    -- 建议一行一个字段,id 就是字段名
    -- int 表示设置字段值要以整数的格式保存到硬盘中,
    -- auto_increment表示当前字段值在每次新增数据时自动+1作为值保存
    -- primary key,mysql中叫主键,表示用于区分一个数据表中不同行的数据的唯一性,同时还具备加快查询速度的作用
    -- 注意:auto_increment与primary key 一般是配合使用的,对应的字段名一般也叫id,而且在一个数据表中只有一个字段能使用auto_increment primary key进行设置。
    id int auto_increment primary key,
    -- 字段名:name
    -- varchar(10) 表示当前name这一列可以存储的数据是字符串格式,并且最多只能存10个字符
    name varchar(10),
    -- 字段名:address
    -- varchar(100) 表示adderss这一列可以存储的数据是字符串格式,并且最多只能存100个字符
    address varchar(100),
    -- 字段名:total
    -- int 表示当前total这一列的数据只能是整数,而且一个数据表中,整数的最大范围只能是42亿
    total int
);
  • 要点中
    • SQL语句就相当于创建了一个表格。
id name address total

(4)查看表

  • 查看当前数据库下的所有表
show tables;
  • 查看指定的表
show create table 表名;
  • 查看当前表的详细信息
describe 表名;

# 简写
desc t1;
  • 查看建表语句
show create table 表名 \G;
show create table 表名;

(5)修改表

  • 修改表的字段类型
  • modify 只能改类型不能改名字
alter table 表名 modify 字段名 字段类型(宽度);
  • change 名字类型都可以改
alter table 表名 change 字段名 字段类型(宽度);
  • 修改表名
alter table 原来的表名 rename 新表名;

# 例如
alter table classes rename class_data; 
  • 追加字段
alter table 表名 add 字段名 字段类型;

# 例如
alter table class_data add age int;
  • 指定某字段添加的位置
alter table 表名 add 字段名 字段类型(长度) after 字段名;

# 例如
alter table class_data add gender varchar(32) after name;
  • 将字段插入到头部
alter table 表名 add 字段名 字段类型(长度) first;

# 例如
alter table class_data add sex varchar(3) first;

(6)删除字段

alter table 表名 drop 字段名;

# 例如
alter table class_data drop sex;

(7)删除表

  • 删除表结构,并把数据一并删除,
  • 使用需谨慎,强烈建议先备份后删除,或者直接改表名来代替删除操作。
drop table 表名;

# 例如
drop table class_data;

【3】数据相关

(1)插入数据

insert into 表名 (字段名,字段名) values(值,值);
INSERT [INTO] <表名> [ <列名1> [ , … <列名n>] ] VALUES (值1) [… , (值n) ];

# 例如
insert into user (name,age) values("chosen",20);
insert into user (name,age) values('max',18),('opp',28);

(2)查看数据

select *|字段1,字段2 ...   from 表名
                  					 WHERE 条件
                  					 GROUP BY field
                  					 HAVING 筛选
                  					 ORDER BY field
                  					 LIMIT 限制条数
                  					 
                  					 
# 例如
select * from user;
mysql> select * from user;
+--------+------+----------+
| name   | age  | password |
+--------+------+----------+
| chosen |   20 |   123456 |
| max    |   18 |     NULL |
| opp    |   28 |     NULL |
+--------+------+----------+
3 rows in set (0.00 sec)

(3)更改数据

update 表名 set 字段名=字段值 where name="";

# 例如
update user set age=999 where name="max";
update user set password=123456 where name="chosen";

(4)删除数据

delete from 表名 where 字段名=字段值;

# 例如
delete from user where name="max";

【特别提示】

  • 使用 DROP DATABASE/TABLE 命令时要非常谨慎,
  • 在执行该命令后,MySQL 不会给出任何提示确认信息。
  • DROP DATABASE 删除数据库后,数据库中存储的所有数据表和数据也将一同被删除,而且不能恢复。
  • 因此最好在删除数据库之前先将数据库进行备份。

标签:--,数据库,改查,数据表,表名,增删,table,字段名
From: https://www.cnblogs.com/chosen-yn/p/18230750

相关文章

  • ### Python 字典操作详解:从创建、增删改查到高级技巧全解析
    1.创建字典使用大括号{}创建空字典empty_dict={}print(empty_dict)#输出:{}使用dict函数创建字典#通过键值对创建字典person=dict(name="Alice",age=30,city="NewYork")print(person)#输出:{'name':'Alice','age':30,'c......
  • ### Python 列表操作详解:从创建、增删到高级技巧全覆盖
    1.创建列表使用list函数创建空列表:empty_list=list()print(empty_list)#输出:[]从字符串创建列表:string="hello"list_from_string=list(string)print(list_from_string)#输出:['h','e','l','l','o']......
  • 详解和实现数据表格中的行数据合并功能
    theme:smartblue前言需求场景:在提供了数据查看和修改的表格视图中(如table、a-table等…),允许用户自行选择多行数据,依据当前状态进行特定列数据的合并操作。选中的数据将统一显示为选中组的首条数据值。同时,页面会即时反馈显示合并后的效果,提供直观的操作反馈。效果......
  • 在MySQL中,你可以使用动态SQL和存储过程来根据元数据表查询多个表,并将结果集合并。以下
    DELIMITER$$CREATEPROCEDUREMergeDataFromTables()BEGIN--游标声明DECLAREdoneINTDEFAULTFALSE;DECLAREtbl_nameVARCHAR(255);DECLAREcurCURSORFORSELECT表明FROMtable_col;DECLARECONTINUEHANDLERFORNOTFOUNDSETdone=TRU......
  • MyBatis实现MySQL表字段及结构的自动增删
    前言在开发过程中,总会涉及到数据库表结构字段的增加或者删除,或者是索引的增加和减少,这个时候能把修改表结构字段这些工作都交给程序来进行,那能大大方便开发。正好有一个现成的工具可以在springboot里面实现这个流程。介绍mybatis-enhance-actable上述是gitee链接。这个工具是m......
  • 【专题】2022年智慧城市白皮书报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=32732本白皮书对智慧城市的发展历程进行了归纳和总结,分析了发展实践中的新变化和新内涵,并提出了一系列新的智慧城市建设理念、架构和建议。阅读原文,获取专题报告合集全文,解锁文末29份智慧城市相关行业研究报告。其目的在于为建设新型智慧城市提供......
  • 【专题】2022母婴行业洞察报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33430我国出生人口数量在2022年为956万人,比去年减少了10%。多种因素影响了这一趋势,包括育龄人口减少、生育观念改变以及婚育年龄推迟。然而,与此同时,由于母婴人群消费水平不断提高,以及精细化喂养逐渐成为育儿的主流方式,我国母婴市场产业规模持续增长......
  • linux 文件属性被替换修改查询并修改
    系统服务发布本来非常正常,但是今天不知道为什么,打包发布异常,删除文件目录的权限都没有。上网搜索后,最终找到文件属性被修改,导致无法删除。通过lsattr命令查询文件的属性,如果出现,其中----i-----------的文件是属性被修改的。查找文件时,注意,隐藏文件也要查询。[root@localhost......
  • Django 里的增删改查
    下面是步骤先更新urls.py来添加新的urlfromdjango.contribimportadminfromdjango.urlsimportpathfromapp01importviewsurlpatterns=[path('demo/',views.demo),]在models.py里创建表fromdjango.dbimportmodels#Createyourmodelsher......
  • .NET 6 Entity Framework Core Db First(2) 增删改查
    基础代码在Program.cs注入DemoContext新建HomeController,继承ControllerBase添加Controller特性,[ApiController] [Route("[controller]/{action=index}")]通过构造函数获取数据库上下文实例(DemoContext) 接口地址为了方便测试,这里全部使用了HttpGet,也不需要传参数1、......