数据库_7_SQL基本操作——表操作

SQL基本操作——表操作

建表的过程就是声明列的过程。

表与字段是密不可分的。

一、新增数据表

create table [if not exists] 表名(
字段名字 数据类型,
字段名字 数据类型  -- 最后一行不需要逗号
)[表选项];if not exists:如果表名不存在,那么就创建,否则不执行创建代码,起到检查功能的作用
表选项:控制表的表现字符集:charset/character set 具体字符集; --保证表中数据存储的字符集校对集:collate 具体校对集; --表采用数据比较的方式存储引擎:engine 具体的存储引擎(innodb和myisam)

 举例:

-- 创建表
create table if not exists student(
name varchar(10),
gender varchar(10),
number varchar(10),
age int
)charset utf8;

 

任何一个表的设计都必须指定数据库

方案1:显示的指定表所述的数据库

  crate table 数据库名.表名;     --将当前数据表创建到指定的数据库下

-- 创建表
create table if not exists mydatabase.student(  -- 显示的将student表放到mydatabase数据库下
name varchar(10),
gender varchar(10),
number varchar(10),
age int
)charset utf8;

方案2:隐式的指定表所属的数据库:先进入到某个数据库环境,然后这样创建的表自动归属到某个指定的数据库

  进入数据库环境:use 数据库名字;

-- 先进入数据库,再创建表
use mydatabase;
create table class(
name varchar(10),
room varchar(10)
)charset utf8;

 

当创建数据表的SQL指令执行之后,到底发生了什么?

  1. 指定数据库下已经存在对应的表
  2. 在数据库对应的文件夹下,会产生对应表的结构文件(跟存储引擎有关系)

二、查看数据表

 数据库能查看的方式,表都可以查看。

  • 查看所有表:show tables;

  

  • 查看部分表:模糊匹配     show tables like 'pattern';  --pattern是匹配模式,  %:表示匹配多个字符, _:表示匹配单个字符

    -- 查看以s结尾的表(尽量不要用这种方式查,效率低)
    show tables like '%s';
    

  • 查看表的创建语句:show create table 表名;

    -- 查看表的创建语句
    show create table student\g -- \g等价于;
    show create table student\G -- \G表示将查到的结构旋转90度变成纵向
    

  • 查看表结构:查看表中的字段信息       desc/describe/show columns from 表名;

    -- 查看表结构
    desc class;
    describe class;
    show columns from class;
    

    注:上图最后一行写错了,将form改成from

三、修改数据表

表本身存在,还包括字段,所以表的修改分为两个部分:修改表本身和修改字段

修改表本身:

表本身可以修改:表名和表选项

  修改表名:rename table 老表名 to 新表名;

-- 重命名:student表 -> my_student(取数据库名字前两个字母)
rename table student to my_student;

    

  修改表选项:字符集,校对集和存储引擎  alter table 表名 表选项 [=] 值;

show create table my_student;-- 修改表选项:比如字符集
alter table my_student charset =GBK;show create table my_student;

   

  

修改字段:

  字段操作很多:新增,修改,重名,删除

  • 新增字段    alter table 表名 add [column] 字段名 数据类型 [列属性] [位置]

    位置:字段名可以存放表中的任意位置,存放方式分为两类,第一类为first:第一个位置,第二类为after:在哪个字段之后(after 字段名;默认的是在最后一个字段之后)

use mydatabase;
desc my_student;
-- 给学生表增加ID放到第一个位置
alter table my_student
add column id int
first; -- mysql会自动寻找分号作为语句结束符
desc my_student;

   

  • 修改字段(通常修改属性或者数据类型)         alter table 表名 modify 字段名 数据类型 [属性] [位置];

desc my_student;
-- 将学生表中的number学号字段变成固定长度,且放到第二位(id之后)
alter table my_student
modify number char(10)
after id;
desc my_student;

   

  • 重名字段  alter table 表名 change 旧字段 新字段名 数据类型 [属性] [位置];

    desc my_student;
    -- 修改学生表中的gender字段为sex
    alter table my_student
    change gender sex varchar(10);
    desc my_student;
    

     

  • 删除字段    alter 表名 drop 字段名;

    desc my_student;
    -- 删除学生表中的年龄字段(age)
    alter table my_student
    drop age;
    desc my_student;
    

     

    小心:如果表中已经存在数据,那么删除字段会清空该字段的所有数据(不可逆)

注:varchar

VARCHAR(M)是一种比CHAR更加灵活的数据类型,同样用于表示字符数据,但是VARCHAR可以保存可变长度的字符串。其中M代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。因此,对于那些难以估计确切长度的数据对象来说,使用VARCHAR数据类型更加明智。

四、删除数据表

drop table 表名1,表名2,...;   -- 可以一次性删除多张表(删除数据库没有这种方式;尽量别用这种一次性删表的方式太危险)

show tables;
-- 删除数据表
drop table class;
show tables;

当删除数据表指令执行之后发生了什么?

  1. 在表空间中,没有了指定的表(数据也没有了)
  2. 在数据对应的文件夹下,表对应的文件(与存储引擎有关)也会被删除

删除数据表指令执行之后:

 

 注意:删除有危险,操作需谨慎(不可逆)

转载于:https://www.cnblogs.com/tianqizhi/p/8987911.html

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

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

相关文章

EXT.NET 更改lable和Text的颜色

2019独角兽企业重金招聘Python工程师标准>>> &#xfeff;&#xfeff; <ext:TextField ID"TextField1" " runat"server" FieldLabel"编号" LabelWidth"60" LabelAlign"Left" LabelStyle"color:red…

rest_framework08:分页器/根据ip进行频率限制

分页器 # 查询所有&#xff0c;才需要分页 from rest_framework.generics import ListAPIView# 内置三种分页方式 from rest_framework.pagination import PageNumberPagination,LimitOffsetPagination,CursorPaginationPageNumberPaginationclass MyPageNumberPagination(Pag…

NYOJ746 整数划分

该题是一道区间DP的题目&#xff0c;做了几道区间DP&#xff0c;说起来高大上&#xff0c;也就是DP在区间内的形式而已&#xff0c;核心思想还是要想到转移->规划。 题意是在n位数中间加m个称号&#xff0c;使得最终乘积最大。 状态转移方程如下&#xff1a; dp[ i ][ j ]ma…

Spring MVC实现文件下载

方法一&#xff1a; RequestMapping("/testHttpMessageDown")public ResponseEntity<byte[]> download(HttpServletRequest request) throws IOException {File file new File(request.getSession().getServletContext().getClassLoader().getResource("…

[MobX State Tree数据组件化开发][3]:选择正确的types.xxx

?系列文章目录? 定义Model时&#xff0c;需要正确地定义props中各字段的类型。本文将对MST提供的各种类型以及类型的工厂方法进行简单的介绍&#xff0c;方便同学们在定义props时挑选正确的类型。 前提 定义props之前&#xff0c;有一个前提是&#xff0c;你已经明确地知道这…

ubuntu系统备份和还原_如何使用Aptik在Ubuntu中备份和还原您的应用程序和PPA

ubuntu系统备份和还原If you need to reinstall Ubuntu or if you just want to install a new version from scratch, wouldn’t it be useful to have an easy way to reinstall all your apps and settings? You can easily accomplish this using a free tool called Apti…

rest_framework09:自动生成接口文档(简略)

coreapi 参考 python/Django-rest-framework框架/8-drf-自动生成接口文档 | Justin-刘清政的博客 Swagger 很多语言都支持&#xff0c;看起来用的人多。 参考fastapi的界面

AppDomainManager后门的实现思路

本文讲的是AppDomainManager后门的实现思路&#xff0c;0x00 前言从Casey SmithsubTee学到的一个技巧&#xff1a;针对.Net程序&#xff0c;通过修改AppDomainManager能够劫持.Net程序的启动过程。 如果劫持了系统常见.Net程序如powershell.exe的启动过程&#xff0c;向其添加…

所有内耗,都有解药。

你是否常常会有这种感觉&#xff1a;刚开始接手一件事情&#xff0c;脑海中已经幻想出无数个会发生的问题&#xff0c;心里也已笃定自己做不好&#xff1b;即使别人不经意的一句话&#xff0c;也会浮想一番&#xff0c;最终陷入自我怀疑&#xff1b;随便看到点什么&#xff0c;…

ABAP 通过sumbit调用另外一个程序使用job形式执行-简单例子

涉及到两个程序&#xff1a; ZTEST_ZUMA02 (主程序)ZTEST_ZUMA(被调用的程序&#xff0c;需要以后台job执行)"ztest_zuma 的代码DATA col TYPE i VALUE 0.DO 8 TIMES.MESSAGE JOB HERE TYPE S.ENDDO.程序ZTEST_ZUMA是在程序ZTEST_ZUMA02中以job的形式调用的&#xff0c;先…

那些影响深远的弯路

静儿最近反思很多事情&#xff0c;不仅是当时做错了。错误定式形成的思维习惯对自己的影响比事情本身要大的多。经常看到周围的同事&#xff0c;非常的羡慕。他们都很聪明、有自己的方法。就算有些同事工作经验相对少一些&#xff0c;但是就像在废墟上创建一个辉煌的城市要比在…

如何使用APTonCD备份和还原已安装的Ubuntu软件包

APTonCD is an easy way to back up your installed packages to a disc or ISO image. You can quickly restore the packages on another Ubuntu system without downloading anything. APTonCD是将安装的软件包备份到光盘或ISO映像的简便方法。 您可以在不下载任何东西的情况…

rest_framework10:base64补充/修改头像

base64补充 # base64 变长&#xff0c;可反解 # md5 固定长度&#xff0c;不可反解# base64 编码和解码 import base64 import json dic{name:test,age:18} dic_strjson.dumps(dic)retbase64.b64encode(dic_str.encode(utf-8)) print(ret)# 解码 ret2base64.b64decode(ret) pri…

next_permutation(全排列算法)

next_permutation(全排列算法) STL提供了两个用来计算排列组合关系的算法&#xff0c;分别是next_permutation和prev_permutation。 首先解释下全排列&#xff0c;顾名思义&#xff0c;即一组数的全部排列的情况。 next_permutation 即列出一组数的全部排列情况&#xff0c;不过…

C#自定义字符串压缩和解压缩源码库

如下的内容是关于C#自定义字符串压缩和解压缩库的内容。class ZipLib{public static string Zip(string value){byte[] byteArray new byte[value.Length];int indexBA 0;foreach (char item in value.ToCharArray()){byteArray[indexBA] (byte)item;}System.IO.MemoryStrea…

使用 Visual Studio 2022 调试Dapr 应用程序

使用Dapr 编写的是一个多进程的程序, 两个进程之间依赖于启动顺序来组成父子进程&#xff0c;使用Visual Studio 调试起来可能会比较困难&#xff0c;因为 Visual Studio 默认只会把你当前设置的启动项目的启动调试。好在有Visual Studio 扩展&#xff08;Microsoft Child Proc…

卸载 cube ui_如何还原Windows 8附带的已卸载现代UI应用程序

卸载 cube uiWindows 8 ships with built-in apps available on the Modern UI screen (formerly the Metro or Start screen), such as Mail, Calendar, Photos, Music, Maps, and Weather. Installing additional Modern UI apps is easy using the Windows Store, and unins…

rest_framework11:jwt简单例子/自定制基于jwt认证类

jwt简单例子 一、登陆设置 1.不需要写login的视图类&#xff0c;使用jwt内置的。 2.需要前置条件&#xff0c;已有继承AbstractUser models,并且有数据&#xff0c;用于校验&#xff0c;返回token。 urls.py from rest_framework_jwt.views import obtain_jwt_tokenurlpat…

Java各种数据类型,自己学习写的笔记!!!

java编程规范&#xff1a; 1.良好的标识符的命名保留字不能作为标识符命名&#xff1a; class、public、static..., goto,const区分大小写&#xff1a;helloWorld、HelloWorld 2.良好的注释习惯 3.良好的缩进&#xff1a;没遇到一个代码块缩进一次&#xff08;一个tab键&…

Java Decompiler(Java反编译工具)

Java Decompiler官网地址&#xff1a;http://jd.benow.ca/ 官网介绍&#xff1a; The “Java Decompiler project” aims to develop tools in order to decompile and analyze Java 5 “byte code” and the later versions. JD-Core is a library that reconstructs Java sou…