SQL数据库

    数据库管理系统在Web中极其重要,我们会把数据放在数据库(database)。而在数据库中可能会有一张或多张表,表中的列都具有相应的数据类型,每一列都表示一种属性,表中的行是一个记录。表中的每一行都应该有主键。主键的满足条件为:

1 任意两行都不具有相同的主键值

2 每一行都必须具有一个主键(主键列不允许NULL值)
3 主键列中的值不允许修改或者更新
4 主键不能重用(如果有一行从表中删除,它的主键不能赋给以后的新行)

    同时,主键通常定义在表的一列上,但并不是必须这样做。也可以使用多个列作为主键。但是多给列每个列都必须满足上面的条件

事务机制可以确保数据一致性。

事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。

  • 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
  • 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
  • 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
  • 持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

表名:students

idname
1dog_1
2dog_2

   1 索引数据

    SELECT  name  FROM students;(数据库语句必须以分号分隔)  返回该列所有的内容

    SELECT   name id    FROM students;                                             --返回 name 和 id  两个列的内容

    SELECT    *    FROM  students;                                                      --返回所有的列

    SELECT  DISTINCT  name      FROM  students;                             --只返回不同的列(不是所有列)

    SELECT TOP 5  name  FROM  students;                                        --限制输出结果

     SELECT   name FORM students LIMIT 5 OFFSET 5;                       --第五行之后的5行

    2 排序检索数据

    SELECT name FORM students  ORDER  BY name

    SELECT  id name  FROM  students ORDER 2 3                                --按列位置排序

     SELECT  id ,name  FROM  students  ORDER BY id  DESC, name

     3 过滤数据

        SELECT  id , name FROM students WHERE id = 2  
        SELECT  id name FROM   students WHERE id < 2
        SELECT  id name FROM students WHERE id   <> 2;

        SELECT id name FROM students  WHERE   BETWEEN  5 and  10

        #空值检查

        SELECT  id  FROM  students   is  NULL;

       4  高级过滤数据

            SELECT  id  name  FROM students FROM WHERE id = 1 and name = 'dog_1'
            SELECT name id FROM students WHERE  id = 1 OR name = ‘dog_1’
            SELECT   name  id FROM  students WHERE  id  = 1  AND   name = dog_1  OR dog_2  
            #求值顺序AND优先于OR
            SELECT id FROM  students WHERE id IN {1,2,3) 
            SELECT id FROM  students   WHERE NOT id = 1

           视图

                     视图是虚拟的表,它和包含数据的表不一样,视图只包含动态检索数据的查询
                      视图的优势:
                       
重用SQL语句
简化复杂的SQL操作,在编写查询后,可以方便的重用它而不必知道其基本的查询细节
使用表的一部分而不是整个表
保护数据。可以授予用户访问表的特定部分的权限,而不是整个表的访问权限。
更改数据格式和表示 。视图可返回与底层表的表示和格式不同的数据。

                        视图的规则和限制

                        

与表一样,视图必须唯一命名
对于可以创建的视图数目没有限制
创建视图,必须具有足够的访问权限。这些权限通常是由数据库管理人员授予
视图可以嵌套,既可以利用从其他视图中检索数据的查询来构造视图
有些DBMS把视图作为只读的查询,这表示可以从视图检索数据,但是不能写回底层表。
视图不能索引,也不能有关联的触发器或默认值
很多DBMS禁止在视图查询中使用ORBER  BY  字句
视图本身不包含数据,返回的数据是从其他表中检索出来的。在添加或更改这些表中的数据时,视图将返回改变过的数据。因为视图不包含数据,所以每次使用视图时,都必须处理查询执行时需要的所有检索。所以如果创建了复杂的视图或者嵌套了视图,性能可能会下降的很厉害。
        常用的SQL语句
ALTER TABLE用来更新现存表的模式
CREATE  TABLE用来创建新的表
CREATE INDEX用来为一列或多列创建索引
CREATE VIEW用来创建一个或多个表的视图
DELETE用来从表中删除一行或者多行
DROP用来永久性地删除数据库对象
INSERT用来对表添加一个新行
INSERT  SELECT用来将SELEC的结果插入表中
ROLLBACK

用来撤销事务块

SELECT用来对一个或多个表中索引数据
UPDATE用来对表中的一行或多行进行更新
  
  
  
  

事务处理:使用事务处理来确保成批的SQL操作要么完全执行,要么不完全执行。来维护数据库的完整性。

事务(transaction)指一组SQL语句
回退指撤销指定SQL语句过程
提交指将未存储的SQL语句结果写入数据库表
保留点指事务处理中设置临时占位符,可以对它发布回退

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值