数据表的操作

02数据表的操作

01显示表

这个没啥说的,就像显示所有数据库一样,命令简短。

语法:

show tables;

02创建表

就像创建数据库一样,有两类语句,简单的和复杂的。如果你曾经创建过名为A的数据库,当你再次创建数据表A时,会报错,但是如果加上 if not exists就不会再报错了,if not exists的意思是:如果不存在。如果你要创建的数据表名恰好是关键字,创建时会报错,加上一个反引号``将数据表名括起来就不会报错了。

语法:

create table [if not exists] `数据表名`(
    `字段名` 数据类型 [not null | null] [auto_increment] [primary key] [comment] ,
    `字段名` 数据类型 [default]
) engine = innodb;

解释一下:

  1. 第二行的字段名相当于表格中的表头(比如姓名、班级、id之类的词)。
  2. 第二行数据类型涉及内容比较多,下篇文章会讲。
  3. 第二行not nullnull指的是是否可以为空,比如申请账号,密码不能为空,但是个性签名可以为空,就是数据是否能空着。
  4. 第二行的[]符号表示可以省略不写。
  5. 第二行auto_increment表示自增(自动增加),比如id,你创建下一条数据时,将id设为自增,则id会随着你创建的数据自动增加。
  6. 第二行primary key表示主键,一个数据表往往会有一个字段名是主键。
  7. comment是备注的意思,表示字段名的备注。
  8. 第三行default表示默认值,可以设置默认值,比如如果设置成绩的默认值为缺考,则填写成绩时,把某名同学的成绩空着不填,系统会自动填写缺考。
  9. 第四行engine表示引擎为innodb(一般初学者选择这个引擎就可以了)。除此之外,引擎还有myisam,memory引擎不同,存储数据的方式不同。

说了这么多,不如举个例子:创建一个名为student的数据表,分别有id,name,phone,add,几个字段名。

-- 简单写
create table student (
    id int ,
    name varchar(20),
    phone varchar(20),
    `add` varchar(100)
);
-- 完整写
create table student (
    id int auto_increment primary key comment '主键',
    name varchar(20) not null comment '姓名',
    phone varchar(20) comment '电话号码',
    `add` varchar(100) default '地址不详' comment '地址'
) engine = innodb;
注意点:

如果表中内容有中文,且在语法内容无误情况下在cmd中输入总是报错,此时或许你需要加一句set names gbk

多学一招:

如果你想在当前数据库中为别的数据库创建数据表,可以用点来实现,比如你当前使用的是AAschool数据库,你想为数据库BBschool创建一个数据表student,实现语句是create table BBschool.student;

语法:
create table 数据库名.数据表名;

03显示创建表的语句

语法:

show create table `数据库名` [\G];

\G与不写的区别是,后者显示结果显示的更清晰一些。

04查看表结构

-- 简单写
desc `数据表名`;
-- 复杂写
describe `数据表名`;

descdescribe的缩写,一般缩写更常用。

05删除表

语法:

drop table [if exists] `表1` , `表2`;

方括号表示可省略,内容简单,不再解释!

06修改表

要想修改表,首先要有表,详见附录一,修改表的例子基于附录一。

(1)添加字段

语法:

alter table `表名` add [clumn] 字段名 数据类型 [完整性约束条件] [位置];
#位置用[first | after 字段名]插在首列或字段名的后面

关键词: addfirstafter

比如:我想在name后插入性别sex,使用关键词after

alter table student add sex char(1) comment '性别' after name;

如果想在id的前面插入iid,使用first关键词插入首列。

alter table student add iid int first;

如果既不写关键词first也不写关键词after,默认插在最后。

alter table student add last int ;

(2)删除字段

语法:

alter table `表名` drop [clumn] `字段名`;

比如:删除字段add

alter table `student` drop `add`;

(3)修改字段之改名改类型

语法:

alter table `表名` change [clumn] 字段名(改前) 字段名(改后) 数据类型;

关键词:change

例如:将phone改为cellPhone默认值666666.

alter table student change phone cellPhone varchar(20) default '666666' comment '座机';

注意:改过之后,你会发现Null属性变了,之前为no,不能为空,现在变为了YES可以为空,是因为改的时候,它自动改为默认的了。如果改的时候你没有写字段的约束性条件,会自动改为默认值。

(4)修改字段之只改类型

语法:

alter table `表名` modify `字段名` [改后的数据类型] [改后的完整性约束性条件];

关键词:modify

例如:改nameint型,默认值为123。

alter table student modify name int not null default 123;

(5)修改引擎

语法:

alter table `表名` engine = 新引擎;

(6)修改表名

语法:

alter table `表名` rename [to] `新表名`;

过于简单,不再举例。

附录一:

create database if not exists `t_e_s_t` ;  #创建数据库t_e_s_t

use `t_e_s_t`; #选择使用数据库t_e_s_t

create table if not exists student ( #创建表student
    id int auto_increment primary key comment '主键',
    name varchar(20) not null comment '姓名',
    phone varchar(20) not null comment '电话号码',
    `add` varchar(100) default '地址不详' comment '地址'
) engine = innodb;

desc student;
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 207,113评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,644评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,340评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,449评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,445评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,166评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,442评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,105评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,601评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,066评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,161评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,792评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,351评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,352评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,584评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,618评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,916评论 2 344

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,189评论 0 9
  • 创建数据表的实例: create table if not exists users( id int unsign...
    FKTX阅读 172评论 0 0
  • 数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格...
    假正经乄阅读 1,882评论 0 2
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,723评论 0 10
  • 吾辗转书馆,若许年纵览群书,悟得此文以判当今读书文化。 既有“开谈不言红楼梦,纵读诗书也枉然”的狂傲之说,我就从红...
    时光间隙阅读 281评论 0 0