SQL Server、Oracle和MySQL三种常用数据库的比较(三)
发布日期:2021-05-15 07:34:15 浏览次数:18 分类:精选文章

本文共 1646 字,大约阅读时间需要 5 分钟。

  1. 可以使用INSERT INTOVALUES向数据表中插入行。Oracle不允许在VALUES后边指定多个行
    --SQL ServerINSERT INTO Customers(FirstName, LastName, State)VALUES('Virginia', 'Jon', 'OH'),('Clark', 'Woodland', 'CA')--OracleINSERT INTO Customers(FirstName, LastName, State)VALUES ('Virginia', 'Jon', 'OH');INSERT INTO Customers(FirstName, LastName, State)VALUES ('Clark', 'Woodland', 'CA');

     

  2. 除了VALUES关键字以外,INSERT INTO之后还可以接SELECT语句。
    INSERT INTO Customers(FirstName, LastName, State)SELECT Name1, Name2, StateFROM CustomerTransactionsWHERE State = 'RI'

     

  3. 列的自增属性(AUTO_INCREMENT)是指当表格每增加一行,会自动地按照升序序列将一个数值赋给该列。主键通常是自增型的列。这是MySQL中的用法。SQL Server使用IDENTITY术语表示相同的属性。Oracle没有自增属性,但是存在序列sequence和触发器trigger的概念。
  4. 使用CREATE TABLE关键字可以创建表。但是三种数据库的语法有所不同,尤其注意Oracle不允许有自增型的列
    --SQL ServerCREATE TABLE MyTable(ColumnOne INT IDENTITY (1,1) PRIMARY KEY NOT NULL,COlumnTwo INT NOT NULL REFERENCES RelatedTable (FirstColumn),ColumnThree VARCHAR (25) NULL,ColumnFour FLOAT NULL DEFAULT (10) )--MySQLCREATE TABLE MyTable(ColumnOne INT AUTO_INCREMENT PRIMARY KEY NOT NULL,COlumnTwo INT NOT NULL,ColumnThree VARCHAR (25) NULL,ColumnFour FLOAT NULL DEFAULT 10,CONSTRAINT FOREIGN KEY (ColumnTwo)REFERENCES 'RelatedTable' (FirstColumn) );--OracleCREATE TABLE MyTable(ColumnOne INT PRIMARY KEY NOT NULL,COlumnTwo INT NOT NULL,ColumnThree VARCHAR (25) NULL,ColumnFour FLOAT DEFAULT 10 NULL,CONSTRAINT "ForeignKey" FOREIGN KEY (ColumnTwo)REFERENCES RelatedTable (FirstColumn) );

     

  5. 可以使用CREATE INDEX关键字为列添加索引。关键字DROP INDEX可以删除索引。
    --SQL ServerCREATE INDEX Index2 ON MyTable (ColumnFour)DROP INDEX Index2 ON MyTable--OracleDROP INDEX Index2;

     

以上对比基于Microsoft SQL Server 2008,Oracle Database 11g和同一时期的MySQL。部分功能可能已经发生变化。

仅供参考。

上一篇:Linux学习笔记(一):设备文件与磁盘分区格式
下一篇:SQL Server、Oracle和MySQL三种常用数据库的比较(二)

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月27日 18时47分55秒