数据表的修改

1. 创建实验表people

  • people

CREATE TABLE people
(
name varchar(),
gender varchar(),
birthday varchar()
)

2.修改表

ALTER TABLE 表名
子句

--(1) 添加字段
ALTER TABLE 表名
ADD 列名 类型 [列说明]

-- 列说明
-- [NULL | NOT NULL]
-- [DEFAULT]
-- [PRIMARY KEY][约束]

--例  在people中添加电话号码

ALTER TABLE people
ADD tel varchar() --例 在people中添加年龄 ALTER TABLE people
ADD age int DEFAULT CHECK(age >= and age <= ) SELECT * FROM people --例 在people中添加id字段作主键
ALTER TABLE people
ADD id varchar() CONSTRAINT pkey PRIMARY KEY

-- (2) 删除字段
ALTER TABLE 表名
DROP COLUMN 列名

--例如  删除“电话”字段
ALTER TABLE people
DROP COLUMN tel

-- (3)修改字段类型

ALTER TABLE 表名
ALTER COLUMN 列名 新类型

--例 将出生日期改为日期型
ALTER TABLE people
ALTER COLUMN birthday date ALTER TABLE people
ALTER COLUMN age decimal(,) --即使修改类型也不能与建表时的约束产生冲突,这里出错

--(4)添加约束

ALTER TABLE 表名
ADD CONSTRAINT 约束名
CHECK (条件)

--例 为性别字段添加约束
ALTER TABLE people
ADD CONSTRAINT pgender
CHECK(gender='男' or gender='女')

--(5)删除约束

ALTER TABLE 表名
DROP CONSTRAINT 约束名

--例如 删除为性别加的约束
ALTER TABLE people
DROP CONSTRAINT pgender --为约束命名,便于引用 --删除id上的主键
ALTER TABLE people
DROP CONSTRAINT pkey

--(6)添加主键约束
ALTER TABLE 表名
ADD CONSTRAINT 约束名
PRIMARY KEY(字段列表)

--例如 将people中id和姓名设为主键(当前无主键)
--注: (1) 目前表中无主键
--     (2) 所用字段不允许空

ALTER TABLE people
ALTER COLUMN
name varchar() NOT NULL --修改name字段的类型 ALTER TABLE people
ADD CONSTRAINT pkey
PRIMARY KEY(id, name) --组合主键

--(7)添加外键约束

ALTER TABLE 表名
ADD CONSTRAINT 约束名 FOREIGN KEY(外键字段名)
REFERENCES 表名2(被参照字段名)

--例 id设为外键

ALTER TABLE people
ADD CONSTRAINT fkey FOREIGN KEY(id)
REFERENCES Student(snumb) --此时列的长度不匹配, 报错,即:先运行下段代码,再重新运行上段代码
ALTER TABLE people
ALTER COLUMN
id varchar(10) NOT NULL

--3.删除表

DROP
DROP TABLE 表名

--例如 删除people表
DROP TABLE people

SQL语句(三)数据表的修改的更多相关文章

  1. mysql详解常用命令操作,利用SQL语句创建数据表—增删改查

    关系型数据库的核心内容是 关系 即 二维表 MYSQL的启动和连接show variables; [所有的变量] 1服务端启动 查看服务状态 sudo /etc/init.d/mysql status ...

  2. 用SQL语句将数据表中的数据保存为JSON格式

    没有找到好的工具,只想到了拼字符串的方式,用   NVARCHAR(MAX)  可能有截断,不推荐使用,方法中使用了 FOR XML PATH('') 实现,有关其使用方法参考这里 表结构: SQL ...

  3. sql语句删除数据表重复字段的方法

    大家都可能遇到字段重复的情况,网上很多人在找方法,也给出了一些方法,但是有的方法是误导大家,铁牛写出以下方法,方便大家使用 1.通过group by把重复的字段筛选出来,并建立临时表tmp 1 cre ...

  4. sql语句创建数据表

    unsigned 数值类型 无符号化 AUTO_INCREMENT 自增长 PRIMARY KEY 唯一主键 COMMENT 备注信息 BIT 类型只有1和0两个值 enum 枚举数值类型 UNIQU ...

  5. sql语句中----删除表数据drop、truncate和delete的用法

    sql语句中----删除表数据drop.truncate和delete的用法 --drop drop table  tb   --tb表示数据表的名字,下同 删除内容和定义,释放空间.简单来说就是把整 ...

  6. PHP如何通过SQL语句将数据写入MySQL数据库呢?

    1,php和MySQL建立连接关系 2,打开 3,接受页面数据,PHP录入到指定的表中 1.2两步可直接使用一个数据库链接文件即可:conn.php <?phpmysql_connect(&qu ...

  7. SQL语句之 数据约束

    SQL语句之 数据约束 什么是数据约束 数据约束用来限制用户对数据的非法的修改操作. 1.约束字段的默认值 如果插入记录时,没有给某个字段赋值,那么我们可以设置它的默认值 关键字:default CR ...

  8. 通过Sql语句导数据

    在通过SQL Server向导中的SQL语句导数据时,默认情况下源表中的nvarchar字段类型会变成202,解决此问题的方法是,要重新选择一下对应的数据接收表.

  9. 使用sql语句获取数据库表的信息

    下面的sql语句可以查看表的信息.其中modify_date和create_date可以根据表的修改时间来查看.如果不需要删除后,就能看到所有表的字段信息 ) PERCENT d.name AS 表名 ...

随机推荐

  1. Java中对域和静态方法的访问不具有多态性

    1.将方法调用同方法主体关联起来被称为 2.编译期绑定(静态)是在程序编译阶段就确定了引用对象的类型 3.运行期绑定(动态绑定)是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法 ...

  2. 使用TensorFlow实现分类

    这一节使用TF搭建一个简单的神经网络用于分类任务,首先把需要的包引入,另外为了防止在多次运行中一些图中的tensor在内存中影响实验,采取重置操作: import tensorflow as tf i ...

  3. 关于utf8mb4的学习了解笔记

    占位下班写 据说可以存储emoji ..妈蛋今天大神又秀我一脸 大概意思是,我们整个后端数据库,最近都升级了编码格式.从以前久的utf-8整个升级到了utf8mb4的格式 该格式支持emoji表情. ...

  4. 简介浏览器内核与JavaScript引擎

    本文介绍了常用浏览器内核与JavaScript引擎 一.浏览器内核 Rending Engine, 顾名思义,称之为渲染网页内容的,将网页的代码转换为你看得见的页面,因为是排版,所以排版,所以肯定会有 ...

  5. 黄金Corner

    春水初生 春林初盛 春风十里 你在哪里

  6. redis map存储的注意点

  7. luogu1856

    P1856 [USACO5.5]矩形周长Picture 题目背景 墙上贴着许多形状相同的海报.照片.它们的边都是水平和垂直的.每个矩形图片可能部分或全部的覆盖了其他图片.所有矩形合并后的边长称为周长. ...

  8. jupyter快捷键

    jupyter快捷键(jupyter有两个模式,命令模式和编辑模式) 当前cell侧边为蓝色时,表示此时为命令模式,按Enter切换为编辑模式 当前cell侧边为绿色时,表示此时为编辑模式,按Esc切 ...

  9. 洛谷 P4174 [NOI2006]最大获利 解题报告

    P4174 [NOI2006]最大获利 题目描述 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU 集团旗下的 CS&T 通讯公司在新一代通讯技术血战的前夜,需要 ...

  10. bzoj4817/luogu3703 树点涂色 (LCT+dfs序+线段树)

    我们发现,这个染色的操作他就很像LCT中access的操作(为什么??),然后就自然而然地想到,其实一个某条路径上的颜色数量,就是我们做一个只有access操作的LCT,这条路径经过的splay的数量 ...