sql高级教程

  • select into  : 从一个表中选取数据,然后把数据插入到另一表中。
select 列名1
into 新表 [in 数据库]
from 旧表
where 列名2 = 值;

从一个以上的数据中选取数据也是可以做到的。 

SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
  • 创建数据库
创建数据库:
   create database 数据库名
   create database my_db
  • 创建表
  • 创建表: create 表名(
               列名1,数据类型,
               列名2,数据类型,
               列名3,数据类型,
               ....
             )
    • integer(size)
    • int(size)
    • smallint(size)
    • tinyint(size)
    仅容纳整数。在括号内规定数字的最大位数。
    • decimal(size,d)
    • numeric(size,d)

    容纳带有小数的数字。

    "size" 规定数字的最大位数。"d" 规定小数点右侧的最大位数。

    char(size)

    容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。

    在括号中规定字符串的长度。

    varchar(size)

    容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。

    在括号中规定字符串的最大长度。

    date(yyyymmdd)

    容纳日期。 

CREATE TABLE Persons
(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
  •  约束
  •  方法1:在创建表时添加约束(create table)
  •   方法2:表创建之后(alter table)
  • NOT NULL   非空约束

  

CREATE TABLE Persons
(
Id_P int  not  null,
LastName varchar(255) not null ,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
  •  UNIQUE   唯一约束     
  • 每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
  •   表创建时:
        CREATE TABLE Persons
        (
        Id_P int NOT NULL,
        LastName varchar(255) NOT NULL,
        FirstName varchar(255),
        Address varchar(255),
        City varchar(255),
        UNIQUE (Id_P)
        )
    
    表创建后:
    ALTER TABLE Persons
    ADD UNIQUE (Id_P)
    
    撤销约束:
    ALTER TABLE Persons
    DROP INDEX uc_PersonID

    PRIMARY KEY 主键约束

  • CREATE TABLE Persons
    (
    Id_P int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    PRIMARY KEY (Id_P)
    )

     

  • FOREIGN KEY 外键约束
  • FOREIGN KEY 约束用于预防破坏表之间连接的动作。

    FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

  • CREATE TABLE Orders
    (
    Id_O int NOT NULL,
    OrderNo int NOT NULL,
    Id_P int,
    PRIMARY KEY (Id_O),
    FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
    )

    CHECK 检查约束

  • CHECK 约束用于限制列中的值的范围。

  • CREATE TABLE Persons
    (
    Id_P int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    CHECK (Id_P>0)
    )

     

  • DEFAULT 默认约束

  如果没有规定其他的值,那么会将默认值添加到所有的新记录、

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)

 创建索引:

创建索引:
   create index 索引名
   on 表名(列名);

创建唯一索引:
   create unique index 索引名
   on 表名(列名);
CREATE INDEX PersonIndex
ON Person (LastName DESC);

CREATE INDEX PersonIndex
ON Person (LastName, FirstName) 

  • 通过使用 DROP 语句,可以轻松地删除索引、表和数据库。

删除索引:

 删除索引: alt table 表名 drop index 索引名
 删除表:  drop table 表名
 删除数据库:drop  database 数据库名  
 删除表中的数据:truncate table 表名  
  • alter table :在已有表中添加,修改,删除列
  • 添加列:  alter table 表名
             add  列名 数据类型
    删除列:   alter table 表名
              drop column 列名
    改变表中的数据类型:
               alter table 表名
               alter column 列名 datatype
    
    

    auto-increment

    •   会在新纪录插入表中时生成一个唯一的数字

    • CREATE TABLE Persons
      (
      P_Id int NOT NULL AUTO_INCREMENT,
      LastName varchar(255) NOT NULL,
      FirstName varchar(255),
      Address varchar(255),
      City varchar(255),
      PRIMARY KEY (P_Id)
      )

      让 AUTO_INCREMENT 序列以其他的值起始,请使用下列 SQL 语法:

ALTER TABLE Persons AUTO_INCREMENT=100
  • 创建视图
  •  数据库的设计和结构不会受到视图中的函数、where 或 join 语句的影响。

子查询:
     集合成员规格

     集合之间比较

   集合基数测试

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值