数据库_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指令执行之后,到底发生了什么?
- 指定数据库下已经存在对应的表
- 在数据库对应的文件夹下,会产生对应表的结构文件(跟存储引擎有关系)
二、查看数据表
数据库能查看的方式,表都可以查看。
查看所有表: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;
当删除数据表指令执行之后发生了什么?
- 在表空间中,没有了指定的表(数据也没有了)
- 在数据对应的文件夹下,表对应的文件(与存储引擎有关)也会被删除
删除数据表指令执行之后:
注意:删除有危险,操作需谨慎(不可逆)
转载于:https://www.cnblogs.com/tianqizhi/p/8987911.html
数据库_7_SQL基本操作——表操作相关推荐
- 数据库 MySQL 之 表操作、存储引擎
数据库 MySQL 之 表操作.存储引擎 浏览目录 创建(复制) 删除 修改 查询 存储引擎介绍 一.创建(复制) 1.语法: 1 2 3 4 5 CREATE TABLE 表名( 字段名1 ...
- 第69节:Java中数据库的多表操作
第69节:Java中数据库的多表操作 前言 学习数据库的多表操作,去电商行业做项目吧!!! 达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文 ...
- Java中数据库的多表操作
前言 学习数据库的多表操作,去电商行业做项目吧!!! 达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文章,会上瘾!,帮你成为更好的自己. 感 ...
- 从零开始学 MySQL —数据库和数据表操作
前言 今天我们学习下核心的内容,学习并实践如何对数据库表和表中的内容做修改,删除,重命名等操作.(想看看周末还有多少爱学习的小伙伴,你们在哪里呀,O(∩_∩)O哈哈~) 1.目录 数据库操作:删除数 ...
- CDA数据分析师 - SQL数据库基础 数据类型表操作语句
SQL 基础概念 [领会] 关系型数据库基本概念 表的基本概念(字段.记录) 表的约束条件(主键.外键.非空.唯一.自增.默认值) 实体关系图(E-R 图) ANSI-SQL 以及不同的数据库实现的关 ...
- java mysql单库多表_第69节:Java中数据库的多表操作
第69节:Java中数据库的多表操作 前言 学习数据库的多表操作,去电商行业做项目吧!!! 达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文 ...
- 6.MySQL数据库与数据表操作
数据库的操作:数据库创建 :数据库删除 数据表的操作:数据表的创建:数据表的修改 (表结构) :数据表的删除 数据库的操作 1.数据库的创建 # 链接mysql数据库后,进入mysql后可以操作数据 ...
- django系列5.2--ORM数据库的单表操作
单表操作 在views.py中添加对数据库的操作语句 #在逻辑代码中导入你要操作的表 from app import modelsdef add_book(request):'''添加表记录:para ...
- MySQL入门指南1(进入命令行,数据库,数据表操作)
目录 进入mysql命令行步骤: 常用MySQL命令 一.数据库操作 二.数据表操作 三.最后的话 进入mysql命令行步骤: 1.以管理员身份进入命令提示符 2.通过命令: net start my ...
最新文章
- 使用HttpOnly提升Cookie安全性
- 在Eclipse中使用OpenCV Java
- 2019 WAIC | 腾讯张正友:人工智能的热与酷
- 反积分饱和 程序_用抗积分饱和PID控制传递函数为G(s)的被控对象
- 图论 —— 弦图 —— LexBFS 算法
- Luogu P1550 [USACO08OCT]打井Watering Hole
- deepin终端启动自安装程序
- 华为交换机基本配置命令
- 「leetcode」111.二叉树的最小深度(与求最大深度还有所不同的)
- Red Giant Trapcode Suite 17 for Mac视频编辑粒子插件
- 精益企业中架构师的角色
- 【Qt开发】关于QWSServer
- hiho 满减优惠(暴力)
- redis命令之string类型setex命令用法详情
- 入驻QQ一天就爆满,Midjourney中文版来了
- 数学、键盘符号和时间复杂度的英语术语及表述方法(编程,标识符,按键,空间复杂度,指数,对数,模运算)
- Dynamics CRM 客户端程序开发:常用工具介绍之Dynamics XRM Tools
- zabbix 监控hp 打印机
- 使用PCL库将KITTI数据集可视化
- Centos7学习——echo命令
热门文章
- matlab z变换离散化_用C++编写一个简单的光栅化渲染器:3D篇
- php网页多个倒计时,怎么实现一个页面有多个倒计时同时进行
- php网址变量怎么输出,【PHP网站】如何使用dedecms v5.7前台模版里输出变量
- mysql什么是长事务
- redisTemplate.opsForHash()
- php配合jade使用,前端自动化系列(四)之jade预编译html
- python字符串函数运算_Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】 原创...
- java 关闭语句_java.sql.SQLRecoverableException: 关闭的语句
- 电脑知识:BIOS和UEFI的对比介绍!
- 《SpringBoot从菜鸟到老鸟》之SpringBoot 如何配置全局的异常捕获