文章目录

  • 前言
  • 查看表
  • 创建表
  • 删除表
  • 修改表

前言

WEB安全–MYSQL–语法


查看表

1、列出当前数据库上所有表

show tables;

2、查看当前库中所有表的具体属性信息

show table status;查看的信息包括每张表的名称,所使用的存储引擎,版本,字符集,描述信息,创建时间

3、只查看当前库的某张表的状态,可以使用like匹配表名称

show table status LIKE=""

4、使用通配符,查看表名类似的表的信息

show tables status where name like "%xxx%";

5、查看表结构

desc table_name;

6、查看某张表被创建时对应的sql语句

show create table table_name;

创建表

1、创建一个新表的基本语法

CREATE TABLE [IF NOT EXISTS] table_name (create_definition,...)CREATE TABLE [IF NOT EXISTS] table_name中
CREATE TABLE是关键字,表示创建表
table_name 是表名
[IF NOT EXISTS]可选,表示表不存在时才创建(create_definition,...)-----需要注意括号
括号中的
字段定义、表级别约束定义、索引定义
字段定义: 例,AUTO_INCREMENT 表示对应字段使用自动增长,一个表中只有一个字段能被设置为自动增长,而且这个字段必须被定义为key(或者索引),mysql默认也会认为”自动增长的键字段”为主键字段。表级别约束(key定义):
PRIMARY KEY(col1[,col2, ….]) 用于定义主键,一个表中只能有一个主键,一个主键可以包含多个字段。UNIQUE KEY (col1[,col2, ….]) 用于定义唯一键,一个表中可以有多个唯一键。FOREIGN KEY  用于定义外键CHECK(expr)  用于定义检查性约束当我们创建key时,即相当于创建了index。索引定义(index定义):
{INDEX|KEY} 我们可以使用index或key关键字创建索引,注意,如果key写在此位置,与index相同,表示定义索引,而不是定义key。

2、能直接在字段定义时就指定主键,也可以在表级别的约束定义中定义约束

<mysql>create table test1
->(
->id int (11) key,
->name varchar(45) not null comment 'student name'
->);
<mysql>create table test2
->(
->id int (11),
->name varchar(45) not null,
->primary key(id)
);

3、联合主键,上述示例中,创建表时只定义了单一主键,在创建表时,也可在表级别定义联合主键

<mysql>create table test3
->(
->id int,
->name varchar(50)not null,
->primary key(id,name)
);

4、定义外键,在创建表时定义外键。如下表示test1表中的tid字段引用了test2表中的id字段为外键

<mysql>create table test1
(
id int primary key,
name varchar(100) not null,
tid int,
foreign key(tid) references test2(id)
);

5、在创建数据表时定义索引

在创建数据表时创建ind_name索引,此时key与index关键字都表示创建索引

<mysql>create table test3
(
id int (11),
name varchar(50),
primary key(id),
index ind_name(name)
);<mysql>create table test4
(
id int (11),
name varchar(50),
primary key(id),
key ind_name(name)
);

除了像上述语法创建新的空表外,还能根据查询出的数据创建出一个新表。

将查询的数据填充的创建的表中

例:将students表中的stuid,name,age三个字段中的数据取出,填充到创建的新表testtb2中,但通过这种方式创建完成后,只能将对应的数据填充过去,但表中的字段中的约束以及表的索引无法复制过去。

当然,我们也可以将students表的数据全部查询出来,然后创建一张新表,将students表中的数据全部存入新表中,这样就相当于复制表,但是只是复制了students表中的数据,字段的约束以及表的索引会丢失。

我们也可以只复制表结构,比如,我们创建一个新表,表结构与students表完全一致,也就是说,新表的所有字段都与students表一致,而且字段的约束也都相同,表中存在的索引也都相同。

6、单纯的完全复制表结构,使用下列语句

删除表

删除表比较简单,但是非常危险,如果不是确定要删而且必须要删,请勿随意删除,数据无价,请勿手贱,此处没有回收站。

删除表的语句如下,可以删除指定的单张表,也可以一次删除多张表,表之间用逗号隔开。

drop table students;
drop table if exists tt1,tt2;

修改表

如果在表中还没有任何数据时,我们可以相对轻松的修改表结构,但是如果表中已经存在了很多数据,那么我们应该充分的考虑修改表结构以后给我们带来的麻烦,所以,在设计表的时候,就应该具有一定的前瞻性,以免以后带来更多不必要的麻烦,此处我们只是练习改怎么修改表,当然,也不一定是修改表结构,也有可能是修改表的一些属性。

修改表的基本语法如下

ALTER  TABLE tbl_name [alter_specification [, alter_specification] …]

此处列出修改表的常用语句

1、修改表名、重命名表

将表test1改名为test2

alter table test1 rename as test2;

2、添加字段

  • 为表添加字段,只添加字段,不指定字段的任何其他属性,如下语句表示为ttt表添加age字段。
alter table ttt add column age int;
  • 修改表的字段时,column可省,不指定被操作对象时,默认为操作列。省略column后如下。
alter table ttt add age int;
  • 为表添加字段,同时为添加的字段设定相应的约束。
alter table ttt add age int not null default 0;alter table ttt add column age int not null default 0;
  • 为表添加字段,同时指定新添加字段在表中的位置,如下语句表示将新添加的id字段设置为表中的第一个字段。
alter table ttt add  id int first;
  • 为表添加字段,同时指定新添加字段在表中的位置,如下语句表示将新添加的age字段添加到name字段的后面。
alter table ttt add column age  int after name;

3、删除字段

删除包含数据的字段时需要三思,珍爱数据,请勿手欠。

如下语句表示从tt表总删除stuname字段。

alter table tt drop stuname;

4、修改字段

此处只列出修改字段名称和修改字段数据类型的相关语句,修改字段约束和索引的语句单独归为一类总结。

重命名字段,修改字段名称

如下语句表示将testtable表中的name字段重命名为name1,name字段的数据类型为char(5),即使只是重命名,我们也需要在新名称后指定原字段的数据类型,否则会报错。

alter table testtable change name name1 char(5);

5、修改字段类型

修改字段数据类型可以使用两种语法,modify与change两种,我们先来看看使用change这个语法怎么做。

使用change改变字段的数据类型,与使用change重命名字段的方法几乎一样,因为即使你不是想要重命名字段,也需要将字段名称重复写两次,比如将age字段从int类型改为char类型,当然,在有数据的情况下,这样改还不会出现什么问题,但是如果是把字符型改为整数类型,则会出现问题,所以,在修改字段之前多次确定,语句示例如下

alter table testtable change  age age char(10);

或者使用modify来改变字段类型,modify不能用于修改字段名称,示例如下。

alter table testtable modify age int;

注意:假如有一个name字段,数据类型为varchar(20), 同时,这张表上存在一个索引,这个索引使用了name字段的前10个字符作为索引,那么如果你想要将name字段的数据类型的长度缩短,则最短只能改为varchar(10)。

新建一张表

mysql> create table student(-> suid int(10) unsigned not null primary key auto_increment,-> sname varchar(50) not null comment "学生姓名",-> sgender char(2) default "M" CHECK (sgender in("M","F")),-> sadder varchar(100) not null-> )ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4;


修改

为表添加字段,不指定字段的任何其他属性

为表添加字段,添加约束



添加字段,指定相应的位置


修改字段类型—change modify


mysql基础(表管理语句)相关推荐

  1. mysql单表备份语句

    mysql单表备份语句 mysql单表备份 SELECT CONCAT("mysqldump -uroot -p123456 ",table_schema," " ...

  2. mysql单表备份语句 +多表

    mysql单表备份语句 mysql单表备份 SELECT CONCAT("mysqldump -uroot -p123456 ",table_schema," " ...

  3. mysql联表查询语句示例

    mysql联表查询语句示例 ps:本人亲测,阿里云2核4G5M的服务器性价比很高,新用户一块多一天,老用户三块多一天,最高可以买三年,感兴趣的可以戳一下:阿里云折扣服务器 示例: "sele ...

  4. MySQL多表查询语句

    MySQL多表查询语句 1.内连接查询 1.隐式内连接:使用where条件消除无用数据例子: --查询所有员工信息和对应的部门信息SELECT * FROM emp,dept WHERE emp.de ...

  5. mysql基础+用户管理+完增日志备份+innobackupex在线全增备份

    官网:http://dev.mysql.com/downloads/mysql 配置mysql数据库: 下载源码包解压:切换到目录下 yum -y install mysql-community-*. ...

  6. mysql删除表命令语句_MySQL增删改查语句命令(一)

    增删改查语句 增删改查的语句命令为 增:insert 删:delete 改:update 查:SELECT或者show 库操作 创建数据库:create database shujukuba; 创建带 ...

  7. MySQL基础之DDL语句

    讲解SQL语句三大分类和每个分类的SQL使用入门. 使用的是数据库是:MySQL 8.0.27 1.SQL分类   DDL(Data Definition Language)语句:数据定义语句. 用途 ...

  8. Mysql基础——表操作

    ** 一.Mysql的表数据类型 1. 整型--INT(显示宽度) 其实是显示宽度,因为整型的显示宽度,对数值大小无影响,只是当设置了zerofill的时候,在显示的时候补0而已. 2. 浮点型与定点 ...

  9. mysql基本表管理sql语句

    管理表记录 insert into 表名 values(字段值列表) 增 select 字段名 -字段N from 表名: 查 select 字段名.. 字段N from表名 where 条件 upd ...

最新文章

  1. 没有什么不可能(1)
  2. linux webrtc浏览器,WebRTC 浏览器支持
  3. Py:利用pyautogui实现自动将pdf文件(需手动设定pdf总页数)自动翻页并截取另存为图片形式,或自动隔0.1秒自动截笔记本全屏保存到指定文件夹
  4. C#语言实现定时开启或禁用网卡小程序
  5. 20071103网工考试
  6. linux汇编stdin,汇编:从标准输入中读取整数,将其递增并打印到标准输出
  7. 微信小程序和传统网页开发的区别
  8. NUC1937 B.函数【水题】
  9. 深入解密来自未来的缓存-Caffeine
  10. win10+Linux双系统安装
  11. Zabbix学习(十七)zabbix low-level discover zabbix批量部署必备
  12. 统计源期刊目录_护理核心期刊投稿最强攻略:期刊目录、投稿周期、发文倾向全在这里了!...
  13. 中国IP库(2022年最新版-包含港澳台地区)
  14. 拼多多百亿补贴商品详情数据抓取
  15. K8S实战进阶篇:一文带你深入了解K8S持久化存储解决方案
  16. 唐灵州吕氏夫人墓志的史证和书证价值
  17. 软考真题答案-2021年5月系统集成项目管理工程师上午题
  18. 本地搭建SIP服务器
  19. 电路课组(一)电路原理 Part 2 求解电路的一般方法(2) 基尔霍夫定律和2b法
  20. 转载:云HBase小组成功抢救某公司自建HBase集群,挽救30+T数据

热门文章

  1. 基于Transformer的YOLOv5小目标检测器 | 四头加注意力
  2. Notepad++强大的代码补全和代码提示功能的方法
  3. php 中实现页面跳转的方法
  4. 这个牛逼的Python模块,能让你轻松模拟并记录键盘操作(附零基础学习资料)
  5. 计算机一级wps模拟软件,2017计算机一级WPS仿真练习题及答案
  6. 精品搜索导航网站纯JS源码
  7. C++抽象类和接口的区别
  8. 如何利用互联网工具深入调研你仰慕已久的网站
  9. android 自动开启调试模式,android user版本默认开启调试模式
  10. 第3.1.1章 WEB系统最佳实践 js控件之slimScroll的使用