SQL必知必会——创建和操纵表(十七)
1、创建表
一般有两种创建表的方法:
多数DBMS都具有交互式创建和管理数据库表的工具
表也可以直接用SQL语句操纵
1.1、表创建基础
CREATE TABLE products
(
prod_id,CHAR(10),NOT NULL,
vend_id,CHAR(10),NOT NULL,
prod_name,CHAR(10),NOT NULL,
prod_price,DECIMAL(8,2),NOT NULL,
prod_desc,VARCHAR(1000),NULL
);
1
2
3
4
5
6
7
8
1.2、使用NULL值
允许NULL值的列也允许在插入行时不给出该列的值。不允许NULL值的列不接受没有列值的行,换句话说,在插入或更新行时,该列必须有值。
每个表列要么是NULL列,要么是NOT NULL列,这种状态在创建表由表的定义规定。
1.3、指定默认值
SQL允许指定默认值,在插入行时如果不给出值,DBMS将自动采用默认值。
CREATE TABLE products
(
prod_id,CHAR(10),NOT NULL,
vend_id,CHAR(10),NOT NULL,
prod_name,CHAR(10),NOT NULL,
prod_price,DECIMAL(8,2),NOT NULL DEFAULT 1,
prod_desc,VARCHAR(1000),NULL
);
#在这个例子中,这一列的描述增加了DEFAULT 1,指示DBMS,如果不给出数量则使用数量1
1
2
3
4
5
6
7
8
9
2、更新表
更新表定义,可以使用ALTER TABLE语句。虽然所有的 DBMS都支持ALTER TABLE,但他们所允许更新的内容差别很大。一下时使用ALTER TABLE时需要考虑的事情:
理想情况下,不要再表中包含数据时对其进行更新。应该再表的设计过程中充分考虑未来可能的需求,避免今后对表的结构做大改动、
所有的DBMS都允许给现有的表增加列,不过对所增加的数据类型有所限制
许多DBMS不允许删除或更改表中的列
多数DBMS允许重新命名表中的列
许多DBMS限制对已经填有数据的列进行更改,对未填有数据的列几乎没有限制
ALTER TABLE Vendors
ADD vend_phone CHAR(20);
#给Vendors表增加一个名为vend_name的列,其数据类型未CHAR
1
2
3
3、删除表
DROP TABLE CustCopy;
#删除整个表而不是内容
1
2
4、重命名表
每个DBMS对表重命名的支持有所不同。对应这个操作,不存在严格的标准。DB2,MariaDB,MySQL,Oracle和PostgreSQL用户使用RENAME语句,SQL Server用户使用sp_rename存储过程,SQLite用户使用ALTER TABLE语句。
---------------------
SQL必知必会——创建和操纵表(十七)的更多相关文章
- SQL 必知必会·笔记<15>创建和操纵表
创建表的两种办法: 使用DBMS 提供的交互式创建和管理数据库表的工具: 直接用SQL 语句创建. 表创建基础 创建表示例: CREATE TABLE Products ( prod_id ) NOT ...
- 【SQL必知必会笔记(1)】数据库基础、SQL、MySQL8.0.16下数据库、表的创建及数据插入
文章目录 1.数据库基础 1.1 数据库(database) 1.2 表(table) 1.3 列和数据类型 1.4 行 1.5 主键 2.什么是SQL 3.创建后续练习所需数据库.表(MySQL8. ...
- SQL 必知必会-- 第17课:创建和操作表
我这里用的是oracle 10g,PL/SQL来做的. 第17课 创建和操纵表 14517.1 创建表 14517.2 更新表 15017.3 删除表 15317.4 重命名表 1 ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- SQL 必知必会
本文介绍基本的 SQL 语句,包括查询.过滤.排序.分组.联结.视图.插入数据.创建操纵表等.入门系列,不足颇多,望诸君指点. 注意本文某些例子只能在特定的DBMS中实现(有的已标明,有的未标明),不 ...
- SQL 必知必会 总结(一)
SQL必知必会 总结(一) 第 1 课 了解SQL 1.数据库(database): 保存有组织的数据容器(通常是一个文件或一组文件). 2.数据库管理系统(DBMS): 数据库软件,数据库是通过 D ...
- 读书笔记--SQL必知必会--建立练习环境
书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...
- 读书笔记--SQL必知必会12--联结表
12.1 联结 联结(join),利用SQL的SELECT在数据查询的执行中联结表. 12.1.1 关系表 关系数据库中,关系表的设计是把信息分解成多个表,一类数据一个表,各表通过某些共同的值互相关联 ...
- 读书笔记--SQL必知必会18--视图
读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...
- 《SQL必知必会》笔记
SQL必知必会(第4版) 作者:[美]Ben Forta 本书介绍了sql在不同数据库工具(Oracle.SQLite.SQL server.MySQL.MariaDB.PostgreSQL...)是 ...
随机推荐
- ajax 封装(集中 认证、错误、请求loading处理)
一.为什么要对 ajax 进行封装: (在使用antd pro 开发项目时,里面默认是把请求进行了封装的,放在 utils/request.js 中.使用起来非常方便 https://pro ...
- Aspect-Oriented Programming : Aspect-Oriented Programming with the RealProxy Class
Aspect-Oriented Programming : Aspect-Oriented Programming with the RealProxy Class A well-architecte ...
- MATLAB 中几个颜色空间的坐标范围
在一些图象处理的程序中,我们经常要在不同的颜色空间操作,而且经常要把各颜色空间的坐标转化到 [0,1] 之间,这就需要知道一些常用颜色空间的坐标范围. 虽然可以通过颜色空间转化的公式推导这些范围,但是 ...
- PAT_A1077#Kuchiguse
Source: PAT A1077 Kuchiguse (20 分) Description: The Japanese language is notorious for its sentence ...
- python 打印日历
import calendar as c'''x = c.monthcalendar(2017,11) 使用这个结果打印出日历 s = 1while s <= 7: print('周%d '%( ...
- mysql FROM_UNIXTIME 时间不准确
mysql 使用 FROM_UNIXTIME 函数计算出来的时间少了6个小时或者8个小时 解决办法: 添加 default-time_zone = '+8:00' 这个再配置文件中 vi /etc/m ...
- if语句基本练习需求
1.需求:键盘录入一个成绩,判断并输出成绩的等级. 90-100 优 80-89 良好 70-79 中等 60-69 及格 0-59 不及格 import java.util.Scanner; cla ...
- python面试题之迭代器和生成器的区别
1 迭代器是一个更抽象的概念,任何对象,如果它的类有next方法和iter方法返回自己本身.对于string.list.dict.tuple等这类容器对象,使用for循环遍历是很方便的.在后台for语 ...
- hdu3438 Buy and Resell(优先队列+贪心)
Buy and Resell Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
- Unity接入AbMob踩坑记
之前是配置好的环境,不知道怎么突然就不正常了. 一直弹出下面的报错: Error running CocoaPods. Please ensure you have at least version ...