MySQL数据库 表的操作

【MySQL基础】数据库与表的基本操作:从创建到管理 学习MySQL的基本操作,就像是搭建一个井然有序的图书馆。我们需要先建立存放数据的“库”,这就是数据库的创建和管理,通过来新建一个库,并用查看已经存在的库,必要时还能用清理不再需要的库。接下来,在数据库中创建存放具体数据的“架子”,也就是表的创建与管理。用新建表结构,比如定义表里有哪些“格子”(字段)来放数据,DROP TABLE用于删除表,则可以灵活调整表的结构,让数据更符合需求。为了把每个“格子”设计得恰到好处,我们要了解MySQL支持的数据类型。 阅读详情

目录

1. 创建表

2. 创建表案例

3. 查看表结构

4. 修改表

5. 删除表


1. 创建表

语法:

CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

说明:

field 表示列名

datatype 表示列的类型

character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准

collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

2. 创建表案例

create table users (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
) character set utf8 engine MyISAM;

说明:

不同的存储引擎,创建表的文件不一样。

users 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:

users.frm:表结构

users.MYD:表数据

users.MYI:表索引

备注:创建一个 engine 是 innodb 的数据库,观察存储目录

3. 查看表结构

desc 表名;

示例:

4. 修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
datatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
datatype]...);
ALTER TABLE tablename DROP (column);

案例:

在users表添加二条记录

mysql> insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01-
04');

在users表添加一个字段,用于保存图片路径

mysql> alter table users add assets varchar(100) comment '图片路径' after
birthday;
mysql> desc users;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| password | char(32) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| assets | varchar(100) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+

插入新字段后,对原来表中的数据没有影响:

mysql> select * from users;
+------+------+----------+------------+-------+
| id | name | password | birthday | assets |
+------+------+----------+------------+-------+
| 1 | a | b | 1982-01-04 | NULL |<= 原来的数据仍然存在
| 2 | b | c | 1984-01-04 | NULL |
+------+------+----------+------------+-------+

修改name,将其长度改成60

mysql> alter table users modify name varchar(60);
mysql> desc users;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(60) | YES | | NULL | |<= 长度变成60
| password | char(32) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| assets | varchar(100) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+

删除password列

注意:删除字段一定要小心,删除字段及其对应的列数据都没了
mysql> alter table users drop password;
mysql> desc users;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(60) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| assets | varchar(100) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+

修改表名为employee

mysql> alter table users rename to employee;
mysql> select * from employee;
+------+------+------------+-------+
| id | name | birthday | assets |
+------+------+------------+-------+
| 1 | a | 1982-01-04 | NULL |
| 2 | b | 1984-01-04 | NULL |
+------+------+------------+-------+

to:可以省掉

将name列修改为xingming

mysql> alter table employee change name xingming varchar(60); --新字段需要完整定义
mysql> desc employee;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| xingming | varchar(60) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| assets | varchar(100) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+

5. 删除表

语法格式:

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

示例:

drop table t1;
使用Pycharm里的Database对数据库进行可视化操作 其实,我们大可不必舍近求远,因为Pycharm是一个十分强大的工具,它本身自带着一个叫Database的数据库管理工具。我们可以使用它对数据库进行可视化操作。使用Database打开sqlite数据库,很简单,我们直接在项目里把db.sqlite3这个文件直接用鼠标拖到database里去即可。引擎名称:django.db.backends.sqlite3,在全局配置文件settings.py可以看到确认配置使用的sqlite数据库。点击应用之后,我们就可以看到数据库里的内容了。安装数据库驱动软件。 阅读详情

相关推荐

嵌入式开发新思路:用QP框架5步搞定状态机设计(附STM32移植指南)

本文介绍了在嵌入式开发中使用QP框架进行状态机设计的新思路。通过对比传统RTOS与事件驱动模型的差异,详细解析了QP框架的核心组件与优势,并提供了基于STM32的5步实战指南,包括环境搭建、状态机实现与性能优化技巧,帮助开发者从顺序阻塞思维转向高效的事件驱动架构。

milk5的博客 900

【MySQL基础】数据库及表的操作

本文详细介绍了MySQL数据库的基本操作,包括数据库的创建、显示、使用和删除方法,并说明了常用数据类型的特点。重点讲解了表的创建、查看和删除操作,通过一个商店数据管理的实例演示了如何设计包含商品、客户和购买信息的数据库表结构。文章涵盖了字符集设置、数据类型选择等关键知识点,为后续学习数据库的增删改查操作奠定了基础。

Mr_star_galaxy的博客 769

手把手教你用C语言实现GNSS卫星方位角计算(附RTKLIB风格代码解析)

本文详细介绍了如何使用C语言实现GNSS卫星方位角计算,包括从地固坐标系到站心坐标系的转换链条。通过RTKLIB风格的代码解析,展示了XYZ到ENU坐标转换的核心原理和C语言实现框架,帮助开发者掌握卫星方位角和高度角的计算技巧,适用于GNSS观测数据质量分析和精密定位算法开发。

weixin_30699915的博客 364

MySQL : 数据库和表操作

MySQL中数据库,表的基本操作

zm3rttqs9f的博客 2114

ifix5.8连接ab plc的点-通过rslinx

以ifix连接ab plc的点为例 1.先在rslinx上把plc的点导出为opc server 2.使用opc power tool 作为opc client 去连接 3.保存到项目的PDB文件夹下面,并且以节点名命名。 也可以不以节点名命名,系统自动会生成一个以节点名命名的这种文件,就显得很乱。 同时,项目的PDB目录下面必须还得拷过来一个de...

中国智造2025 4110

Stata实战入门:从数据导入到基础分析的全流程指南

本文提供了Stata实战入门的全流程指南,从数据导入、清洗到基础分析和可视化,帮助初学者快速掌握Stata的核心功能。通过详细的步骤和实用技巧,读者可以高效完成数据处理、变量操作、描述性统计和回归分析等任务,提升数据分析效率。

weixin_28327051的博客 383

【MySQL】数据库与表的操作

【MySQL】数据库与表的操作 本章目录【MySQL】数据库与表的操作1.数据库操作1.1显示当前数据库1.2创建数据库1.3删除数据库1.4使用数据库2.表的操作2.1创建数据表 1.数据库操作 进入数据库 mysql -u root -p 1.1显示当前数据库 SHOW DATABASES; 1.2创建数据库 语法规则 CREATE DATABASE [IF NOT EXISTS] db...

qq_43676757的博客 251

Bootloader Design of PIC18 series MCU

注意:下列描述是在PIC单片机上启用Bootloader的一个相关知识的近似完备集。所有需要了解的,与bootloader与用户态程序交互的理论知识都已给出。包含内存组织,跳转,中断等必备功能的描述。

含光左卫的工作笔记集 1266

【MySQL】数据库和表的操作

【MySQL】数据库和表的操作。本期【MySQL】内容主要讲解关于数据库和表的相关操作,包括增删查改等内容,才外拓展讲解关于字符集的有关内容。

jupangMZ的博客 2157

精确时钟同步协议ptp/IEEE-1588v2协议-------(1)简介

ptp, 1588V2, IEEE-1588, 精确时钟同步协议

meihualing的专栏 5355

T型三电平逆变器中点电位平衡详解

T型三电平逆变器(T-type Three-Level Inverter)是一种高效的多电平拓扑,相比传统NPC(Neutral Point Clamped)三电平逆变器,具有更低的开关损耗、更高效率和更简单的结构,尤其适用于中功率应用(如光伏逆变器、风电变换器和工业驱动)。(T-type Three-Level Inverter)中的应用已成为当前中高压功率变换领域(如光伏逆变器、储能PCS、电动汽车充电桩、风电并网和工业驱动)的热门方案。针对 T型逆变器,类似 NPC 的零序注入法适用。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 544

Database学习 - mysql 数据库 表操作

mysql 数据库 表操作 创建数据表   基本语法格式: 创建数据表: create table 表名( 字段名 datatype 约束, 字段名 datatype 约束, ...... ) 修改表名 rename table 表名 新表名; 修改表结构   增加一个字段 ...

dixian4894的博客 133

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

MySQL之对数据库和表的操作

再来看看下面test2(使用utf8_ bin校验规则)数据库中的我们根据name的排序结果:因为其区分大小写且小写字母的ascii码大于大写字母,所以会得到下面的结果。从上面的结果中,我们可以发现,在select查询中,utf8_ general_ ci是不会区分大小写的,而utf8_ bin是会区分大小写的。注:如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建一个数据库,然后使用数据库,再使用source来还原。一般来说,我们对数据库的修改主要是修改数据库的字符集和校验规则。

zdlynj的博客 1660

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

MySQL数据库和表的操作

不同的编码格式支持不同范围的字符,并且影响数据库的排序规则和比较结果。了解和选择合适的编码格式对于数据库的国际化和字符数据的准确存储至关重要。的超集,支持最长四个字节的 UTF-8 字符,能够存储所有 Unicode 字符,包括表情符号。在create table语句的末尾添加一个select语句,可以实现表结构的复制,甚至可以将源表的表。在create table语句的末尾添加like子句,可以将源表的表结构复制到新表中,语法格式如下。下面的语法格式将源表的表结构以及源表的所有记录拷贝到新表中。

rrl18215821889的博客 899

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MySQL数据库和表的基本操作

最常用的字符串的类型,带一个参数参数,这里表示存储的最大限度,varchar(50)表示这列最多存50个字符,至于这个size设置为多少,根据实际需求来制定,并不是size订多少就直接分配多少,而是动态分配,但是最大不会超过size。我们在学习MySQL数据类型时,会发现有些数据类型设计的并不好,和java有一些区别,这是因为MySQL这里语言比较久远了,那时还没有Java这样语言,那个时候能够设计出来这样已经很厉害啦。: 可以精确的表示浮点数,因为它牺牲了空间和运算速度,换来的是更精确的表示方法。

buhuisuanfa的博客 3273

MySql 对数据库和表的操作

登入MySql,创建数据库,字符集和校验规则,操纵数据库,数据库备份和恢复,查看连接情况,创建表,查看表结构,表属性操作,查看表中具体信息,修改表名,删除表,备份和恢复

2301_76293625的博客 930

数据库 MySQL表操作

这样的问题,一种是访问量确实很高, MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力,另外一种情况是MySQL配置文件中max_connections值过小, 这时就需要调整当前最大连接数。开启mysql二进制日志,在误删除数据的情况下,可以通过二进制日志恢复到某个时间点。禁止root账户远程访问(允许普通用户远程访问,某个网段即可)使用mysql的时候,经常会遇到。针对所有库和表的权限,比如。授权,为用户赋予访问权限。取消授权,撤回授权权限。针对具体到库的权限,比如。

2301_78195109的博客 687

【MySQL】数据库和表的操作详解

数据库和表的结构的操作大学习!

2303_80828380的博客 1324
上一篇: MySQL数据库 库的操作
下一篇: MySQL数据库 详谈数据类型
万我.
博客等级 码龄1年 460粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值