创建和操作表

17.1.3  指定默认值SQL允许指定默认值,在插入行时如果不给出值,DBMS将自动采用默认值。默认值在CREATE TABLE语句的列定义中用关键字DEFAULT指定。

请看下面的例子:

输入▼

CREATE TABLE OrderItems
(
    order_num      INTEGER          NOT NULL,
    order_item     INTEGER          NOT NULL,
    prod_id        CHAR(10)         NOT NULL,
    quantity       INTEGER          NOT NULL      DEFAULT 1,
    item_price     DECIMAL(8,2)     NOT NULL
);

分析▼
这条语句创建OrderItems表,包含构成订单的各项(订单本身存储在Orders表中)。quantity列为订单中每个物品的数量。在这个例子中,这一列的描述增加了DEFAULT 1,指示DBMS,如果不给出数量则使用数量1

默认值经常用于日期或时间戳列。例如,通过指定引用系统日期的函数或变量,将系统日期用作默认日期。MySQL用户指定DEFAULT CURRENT_DATE(),Oracle用户指定DEFAULT SYSDATE,而SQL Server用户指定DEFAULT GETDATE()。遗憾的是,这条获得系统日期的命令在不同的DBMS中几乎都是不同的。表17-1列出了这条命令在某些DBMS中的语法。这里若未列出某个DBMS,请参阅相应的文档。

表17-1 获得系统日期

DBMS 函数/变量
Access NOW()
DB2 CURRENT_DATE
MySQL CURRENT_DATE()
Oracle SYSDATE
PostgreSQL CURRENT_DATE
SQL Server GETDATE()
SQLite date(‘now‘)

提示:使用DEFAULT而不是NULL

复杂的表结构更改一般需要手动删除过程,它涉及以下步骤:

  1. 用新的列布局创建一个新表;
  2. 使用INSERT SELECT语句(关于这条语句的详细介绍,请参阅第15课)从旧表复制数据到新表。有必要的话,可以使用转换函数和计算字段;
  3. 检验包含所需数据的新表;
  4. 重命名旧表(如果确定,可以删除它);
  5. 用旧表原来的名字重命名新表;
  6. 根据需要,重新创建触发器、存储过程、索引和外键。
时间: 2024-10-10 07:08:35

创建和操作表的相关文章

Swift - 操作表(UIActionSheel)的用法,也叫底部警告框

1,下面创建一个操作表(或叫底部警告框)并弹出显示 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class ViewController: UIViewController,UIActionSheetDelegate {     override func viewDidLoad() {         super.viewDidLoad()                 var actionSheet=UIActionSheet()       

【13】Python应用系列--ORM

DB First 通过类和对象操作数据库 Code First 自定义生成表 class 类(base): 列1 列2 根据类创建表 使用类操作表 session.query(类) 1. 创建单表,一对多 rom sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, Foreign

sql必知必会

注意: sql不区分大小写 一.检索SELECT 检索单列 select pro_id form products: 检索多列 select pro_id,pro_name,pro_price form products: 检索所有列 select * form products; 二.排序数据order by (必须放在where 后面) 按单列排序 select pro_name from products order by pro_name; 按多列排序 select pro_name,p

安卓数据云端同步(一)生成操作Sqlite记录

同步思想: 先介绍客户端为最新数据的数据同步问题,这种机制常常应用在云笔记,随手记类似的app. 这里我建了一个listview,对listview上item的增删改,来代替实际项目中的情况. 1.对listview 和本地数据表datatable表(使用id作为数据唯一表示)映射,实现增删改. 2.每次将对本地数据表的操作记录在operation表中,在表中记录该操作的时间戳. 3.将operation 表中内容封装成json数据发送给服务器(从服务器获取上次同步时间戳,只提交在这次更新以后的

《SQL必知必会》阅读进度

0 阅读计划 [0] 2015/01/04 ch01~10 [1] 2015/01/05 ch10~22 又,补充了这个基础知识后要尽快切换到PostgreSQL (9.4)的基础SQL部分,极早练习实际数据库的操作. ---------------------------------------- 目录 第1章 了解SQL第2章 检索数据第3章 排序检索数据第4章 过滤数据第5章 高级数据过滤第6章 用通配符进行过滤第7章 创建计算字段第8章 使用数据处理函数第9章 汇总数据第10章 分组数据

基本的Web控件二

ListBox控件 ListBox控件用于创建多选的列表框,而可选项是通过ListItem元素来定义的. ListBox控件常用的属性: 1.Count:表示列表框中条目的总数. 2.Items:表示列表框中的所有项,而每一项的类型都是ListItem. 3.Rows:表示列表框中显示的行数. 4.Selected:表示某个条目是否被选中. 5.SelectedIndex:列表框中被选择项的索引值. 6.SelectedItem:获得列表框中被选择的条目,返回的类型是ListItem. 7.Se

SQL Server编程必知必会(插入/删除/更新数据,视图) -- (80-85 点总结)

------------------------插入数据------------------------- 80.1. 插入完整的行-- 各个列必须以他们在表定义中出现的次序填充INSERT INTO customersVALUES ('Pep E. LaPew','100 Main Street','LOS Angeles','CA','90046','USA',NULL,NULL) -- INSERT 语句的安全操作方法,指定列, INTO 关键字是可选的INSERT INTO custom

OracleDBA之用户管理

再分享一下Oracle中对用户的管理,以下这些东西是我的麦库上存的当时学Oracle的学习笔记今天拿出来和大家分享一下,转载请注明出处,下面用的Oracle的版本是10g,用的时WinServer2003的操作系统,可能有些命令和Oracle11g的有所不同,但大部分是一样的,接下来还会陆续的分享一下Oracle中对数据库的管理,对表的管理,还有Oracle中的存储过程和PL/SQL编程.用到的Oracle的管理工具是PL/SQL Developerl和SQL PLUS,欢迎大家批评指正. 1.

mysql学习日志

Mysql学习日志; 安装:Linux :yum install mysql* -y 验证Mysql是否正常安装:mysqladmin --version 进入 Mysql,要先启动#service mysqld start#mysql 更换Mysql初始密码: 安装完成mysql为空密码,修改密码方式:mysqladmin -u root password newpassword 用户已经有旧密码的更改方式:MYSQLADMIN -u root -p'oldpassword' PASSWORD