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

数据库_7_SQL基本操作——表操作相关推荐

  1. 数据库 MySQL 之 表操作、存储引擎

    数据库 MySQL 之 表操作.存储引擎 浏览目录 创建(复制) 删除 修改 查询 存储引擎介绍 一.创建(复制) 1.语法: 1 2 3 4 5 CREATE TABLE 表名(     字段名1 ...

  2. 第69节:Java中数据库的多表操作

    第69节:Java中数据库的多表操作 前言 学习数据库的多表操作,去电商行业做项目吧!!! 达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文 ...

  3. Java中数据库的多表操作

    前言 学习数据库的多表操作,去电商行业做项目吧!!! 达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文章,会上瘾!,帮你成为更好的自己. 感 ...

  4. 从零开始学 MySQL —数据库和数据表操作

    ​前言 今天我们学习下核心的内容,学习并实践如何对数据库表和表中的内容做修改,删除,重命名等操作.(想看看周末还有多少爱学习的小伙伴,你们在哪里呀,O(∩_∩)O哈哈~) 1.目录 数据库操作:删除数 ...

  5. CDA数据分析师 - SQL数据库基础 数据类型表操作语句

    SQL 基础概念 [领会] 关系型数据库基本概念 表的基本概念(字段.记录) 表的约束条件(主键.外键.非空.唯一.自增.默认值) 实体关系图(E-R 图) ANSI-SQL 以及不同的数据库实现的关 ...

  6. java mysql单库多表_第69节:Java中数据库的多表操作

    第69节:Java中数据库的多表操作 前言 学习数据库的多表操作,去电商行业做项目吧!!! 达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文 ...

  7. 6.MySQL数据库与数据表操作

    数据库的操作:数据库创建 :数据库删除 数据表的操作:数据表的创建:数据表的修改 (表结构) :数据表的删除 数据库的操作 1.数据库的创建 # 链接mysql数据库后,进入mysql后可以操作数据 ...

  8. django系列5.2--ORM数据库的单表操作

    单表操作 在views.py中添加对数据库的操作语句 #在逻辑代码中导入你要操作的表 from app import modelsdef add_book(request):'''添加表记录:para ...

  9. MySQL入门指南1(进入命令行,数据库,数据表操作)

    目录 进入mysql命令行步骤: 常用MySQL命令 一.数据库操作 二.数据表操作 三.最后的话 进入mysql命令行步骤: 1.以管理员身份进入命令提示符 2.通过命令: net start my ...

最新文章

  1. 使用HttpOnly提升Cookie安全性
  2. 在Eclipse中使用OpenCV Java
  3. 2019 WAIC | 腾讯张正友:人工智能的热与酷
  4. 反积分饱和 程序_用抗积分饱和PID控制传递函数为G(s)的被控对象
  5. 图论 —— 弦图 —— LexBFS 算法
  6. Luogu P1550 [USACO08OCT]打井Watering Hole
  7. deepin终端启动自安装程序
  8. 华为交换机基本配置命令
  9. 「leetcode」111.二叉树的最小深度(与求最大深度还有所不同的)
  10. Red Giant Trapcode Suite 17 for Mac视频编辑粒子插件
  11. 精益企业中架构师的角色
  12. 【Qt开发】关于QWSServer
  13. hiho 满减优惠(暴力)
  14. redis命令之string类型setex命令用法详情
  15. 入驻QQ一天就爆满,Midjourney中文版来了
  16. 数学、键盘符号和时间复杂度的英语术语及表述方法(编程,标识符,按键,空间复杂度,指数,对数,模运算)
  17. Dynamics CRM 客户端程序开发:常用工具介绍之Dynamics XRM Tools
  18. zabbix 监控hp 打印机
  19. 使用PCL库将KITTI数据集可视化
  20. Centos7学习——echo命令

热门文章

  1. matlab z变换离散化_用C++编写一个简单的光栅化渲染器:3D篇
  2. php网页多个倒计时,怎么实现一个页面有多个倒计时同时进行
  3. php网址变量怎么输出,【PHP网站】如何使用dedecms v5.7前台模版里输出变量
  4. mysql什么是长事务
  5. redisTemplate.opsForHash()
  6. php配合jade使用,前端自动化系列(四)之jade预编译html
  7. python字符串函数运算_Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】 原创...
  8. java 关闭语句_java.sql.SQLRecoverableException: 关闭的语句
  9. 电脑知识:BIOS和UEFI的对比介绍!
  10. 《SpringBoot从菜鸟到老鸟》之SpringBoot 如何配置全局的异常捕获