zoukankan      html  css  js  c++  java
  • SqlServer数据库知识点笔记

    1.主键约束:
    要对一个列加主键约束的话,这列就必须要满足的条件就是非空
    因为主键约束:就是对一个列进行了约束,约束为(非空、不重复)
    以下是代码   要对一个列加主键,列名为id,表名为emp

    格式为:
    alter table 表格名称 add constraint 约束名称 增加的约束类型 (列名)

    例子:
    alter table emp add constraint ppp primary key (id)

    2.check约束:
    就是给一列的数据进行了限制
    比方说,年龄列的数据都要大于20的
    表名(emp) 列名(age)

    格式:
    alter table 表名称 add constraint 约束名称 增加的约束类型 (列名)

    例子:
    alter table emp add constraint xxx check(age>20)

    3.unique约束:
    这样的约束就是给列的数据追加的不重复的约束类型

    格式:
    alter table 表名 add constraint 约束名称 约束类型(列名)
    比方说可以给ename列加个unique,让ename列的数据不重复
    例子:
    alter table emp add constraint qwe unique(ename)

    4.默认约束:
    意思很简单就是让此列的数据默认为一定的数据

    格式:
    alter table 表名称 add constraint 约束名称 约束类型 默认值) for 列名

    比方说:emp表中的gongzi列默认为10000

    alter table emp add constraint jfsd default 10000 for gongzi

    5.外键约束:
    这个有点难理解了,外键其实就是引用
    因为主键实现了实体的完整性,
    外键实现了引用的完整性,
    应用完整性规定,所引用的数据必须存在!

    其实就是个引用,
    比方说一个表名称叫dept 里面有2列数据 一列是ID一列是ENAME
    id:表示产品的编号
    ename:表示产品的名称

    另外一个表格名称是emp 里面有2列数据,一列是ID 一列是DID
    id:表示用户号
    did:表示购买的产品号

    要让emp表中的did列去引用dept表中的id

    可以用下面的方法

    格式:
    alter table 表名 add constraint 约束名称 约束类型 (列名) references 被引用的表名称(列名)

    例子:
    alter table emp add constraint jfkdsj foreign key (did) references dept (id)

       

    SQL常用命令使用方法:

    数据记录筛选:

    select*from Products:查询出Products表里面的所有信息

    select ProductID,ProductName from Products:查询出Products表里面所有的ProductID,ProductName

    select ProductID,ProductName from Products where ProductID=1:查询出Products表里面ProductID=1的所有ProductID和ProductName

    select* from employee where fname='Paul' and job_id=5 :查询出employee表中fname=Paul,并且job_id=5的所有记录

    select*from Products where ProductID in(4,5,6):查询出Products表中ProductID为4,5,6的所有信息

    select*from Products where UnitPrice>10 and UnitPrice<30 order by UnitPrice:查询出Products表中10<UnitPrice<30的所有信息,并按照UnitPrice的大小由小到大排序

    select*from Products where UnitPrice between 10 and 30 order by UnitPrice:上面的另外一种写法

    select * from Employees where FirstName like 'A%':查询出Employees中FirstName里面第一个字母是A的所有人信息

    select*from Employees where FirstName like '%A%':查询出Employees中FirstName里面中间有A的所有人信息

    select*from Employees where FirstName like '%A':查询出Employees中FirstName里面最后一个字母是A的所有人信息

    select count(*) from Employees:查询出Employees表中的所有记录数

    select min(Unitprice)from Products:查询出Products表中Unitprice的最小值

    select max(Unitprice)from Products:查询出Products表中Unitprice的最大值

    select avg(Unitprice)from Products:查询出Products表中Unitprice的平均值

    select sum(Unitprice)from Products:查询出Products表中Unitprice的总和

    select * from Products where Unitprice> (select avg(Unitprice) from Products):有子查询,查找出比平均值高的商品信息

    select top 5* from Products:查询出前五条的记录信息

    select distinct [name] from Category :查出Category 中不重复的name

    select count(distinct name) from Category :查出Category 中不重复的name的数量

    (2) 更新数据记录:
    sql="update 数据表 set 字段名=字段值 where 条件表达式"
    sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

    (3) 删除数据记录:
    sql="delete from 数据表 where 条件表达式"
    sql="delete from 数据表" (将数据表所有记录删除)

    (4) 添加数据记录:
    sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"
    sql="insert into 目标数据表 select 字段名 from 源数据表" (把源数据表的记录添加到目标数据表)

    (5) 数据记录统计函数:
    AVG(字段名) 得出一个表格栏平均值
    COUNT(*&brvbar;字段名) 对数据行数的统计或对某一栏有值的数据行数统计
    MAX(字段名) 取得一个表格栏最大的值
    MIN(字段名) 取得一个表格栏最小的值
    SUM(字段名) 把数据栏的值相加
    引用以上函数的方法:
    sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
    set rs=conn.excute(sql)
    用 rs("别名") 获取统的计值,其它函数运用同上。

    (5) 数据表的建立和删除:
    CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )
    例:CREATE TABLE tab01(name varchar(50),datetime default now())

    DROP TABLE 数据表名称 (永久性删除一个数据表)


    2. 记录集对象的方法:
    rs.movenext 将记录指针从当前的位置向下移一行
    rs.moveprevious 将记录指针从当前的位置向上移一行
    rs.movefirst 将记录指针移到数据表第一行
    rs.movelast 将记录指针移到数据表最后一行
    rs.absoluteposition=N 将记录指针移到数据表第N行
    rs.absolutepage=N 将记录指针移到第N页的第一行
    rs.pagesize=N 设置每页为N条记录
    rs.pagecount 根据 pagesize 的设置返回总页数
    rs.recordcount 返回记录总数
    rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否
    rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否
    rs.delete 删除当前记录,但记录指针不会向下移动
    rs.addnew 添加记录到数据表末端
    rs.update 更新数据表记录

    排序

    desc就是用于查询出结果时候对结果进行排序,是降序排序,而asc就是升序。。要用与order by一起用。
    例如select * from student order by id desc; 就是把选出的结果经过“按id从大到小排序”后,把资源返回。
    还可以select * from student order  by age desc,id desc;用“,”号隔开多个排序条件,这样,先按age 再按 id,就是说,先按age从大到小排序,如果有相同年龄的,那么相同年龄的学生再按他们的id从大到小排序。

    DESC指排序时按降序排序ASC是升序。

  • 相关阅读:
    利用DTrace实时检测MySQl
    改进MySQL Order By Rand()的低效率
    RDS for MySQL查询缓存 (Query Cache) 的设置和使用
    RDS For MySQL 字符集相关说明
    RDS for MySQL 通过 mysqlbinlog 查看 binlog 乱码
    RDS for MySQL Mysqldump 常见问题和处理
    RDS for MySQL Online DDL 使用
    RDS MySQL 表上 Metadata lock 的产生和处理
    RDS for MySQL 如何使用 Percona Toolkit
    北京已成为投融资诈骗重灾区:存好骗子公司黑名单,谨防上当!
  • 原文地址:https://www.cnblogs.com/Mzg121584668/p/8496520.html
Copyright © 2011-2022 走看看