1. 数据库的作用
    持久化:永久得保存数据。
    数据挖掘:通过以有信息,发掘出有价值的信息。
    冗余:数据的重复出现,(插入,删除,修改)带来一些异常。查询时可以提高查询的效率。
2. 创建数据库,创建表,确定表中字段的类型
    数据文件:.mdf(main data file主要数据文件)
            .ldf(log data file 日志数据文件)
truncate删除数据    数据完整性:保证数据库的数据是客观真实的,没有错误的。
数据库登录:
    方式一:window身份验证,如果你具有登录操作系统的权限,你就可以登录登录数据库。
    方式二:sql server身份验证,能够登录操作系统,还需要知道登录名和密码。
            用户名 sa 数据库管理者,他是数据库的最大权限拥有者
常用数据类型:
    整型:bigint int smallint tinyint
    货币:money  smallmoney
    时间:datetime smalldatetime
    位:  bit (0,1)
    字符串:char  varchar  text(一个字符表示8位)
            Nchar  nvarchar ntext(一个字符表示16位)
差异:1. 字符串类型需要加长度。Char(4) text,ntext不需要加长度
      2. char varchar的区别
        Char是固定长度的,char(8)  存储了abc  会在abc之前加5个空格
        Varchar 是可变长的  varchar(20) 存储了abc,长度就是3
3. 如何分离  附加 数据库
4. 对数据库的  增  删  改  查(操作的是表中的数据)
    T_sql:sql+sql server对标准的加强
   
    Sql当中不区分大小写
增(insert):insert into 表名 values(字段1的值字段2的值……)
          insert into表名(字段1, 字段2) values(字段1的值字段2的值……)—插入部分数据,其他的字段可以不插入,是因为允许为空
    字符串和日期类型都是用'' 括起来的
查(select):select * from 表名(*表示全部)
          select 字段1, 字段2 from表名
          select 字段1, 字段2 from表名
where 条件表达式
删(delete):delete
from 表名
where 条件表达式
        改(update): update 表名
set 字段1=字段1的值字段2=字段2的值
where 条件表达式
5. 数据库完整性
    --域完整性(列的要求)
        默认值:采用默认值的时候,需要default占位
    --实体完整性(行的要求)
        主键:不可以为空,不能重复。
        标识列:不需要自己输入,完成初始值设定,以后依次递增,一定是整型
            标识种子:初始值
            标识增量:递增的值
注意: 如果插入数据时错误,自增长列还是会加1,如果数据全部删除,自增长列还是保留以前的值。truncate table department可以重置表结构。
        唯一约束:不允许重复,但可以为空,只能有一个空。
    --引用完整性(表之间关系的要求)
        1.在哪个表中创建外键?在引用的那张表上
        2.主键表,外键表?有主键的就是主键表。
        注意点:
        1 不能向外键表里插入主键表没有的数据。
        2 不能删除主键表中有外键引用的数据,除非将外键表中引用的数据删除掉。
        3 不能先删除主键表。
    --自定义完整性
6.  sql
    --dml:数据操作语言,就是增删改查
    --dcl:数据控制语言
    --ddl:数据定义语言,创建数据库,创建表
    1 ddl
    创建数据库:create database 数据库名
                        go --批处理
                        Use数据库名
  use master  --exists() 返回true,false
if exists(select * from sysdatabases where name='company')
        drop database company
go
create database company
    go --批处理
use company
  创建表 create table 表名 (字段1名  类型  , 字段2名  类型  ……)
if exists(select * from sysobjects where name='department')
    drop table department
go
create table department--创建表时一定要选择好数据库use company
(
    --identity(1,1)自增长列
    --primary key主键
    --字段和字段之间用,隔开
    departmentid int identity(1,1) primary key,
    departmentname varchar(20) not null
)
    添加约束
    --主键
alter table employee
    add constraint PK_employee_employeeid primary key(employeeid)
--唯一约束
alter table employee
    add constraint UQ_employee_telephone unique(telephone)
--默认约束
alter table employee
    add constraint DF_employee_address default('地址不详') for address
--检查约束
alter table employee
    add constraint CK_employee_salary check(salary>=1800 and salary<=20000)
--外键约束
alter table employee
    add constraint FK_employee_departmentid foreign key(departmentid) references department(departmentid)
  修改表的字段
--添加一个字段
alter table employee
    add test int
--修改列的类型
alter table employee
    alter column test varchar(20)
--删除一列
alter table employee
    drop column test
    1 dml
    --成批插入1 default不可以写,因为select结果集不解析表结构
insert into department 
select '教质部' union
select '学员服务部' union
select '财务部'
--成批插入2  临时表不需要创建,他会继承上一张表的结构,包括自增长列等等
select departmentname
into temp
from department
--成批插入3  临时表需要创建
insert into department
select * from temp
--查询
--排序order by 字段  升序:asc(默认是升序) 降序:desc
select * from department
order by departmentid
--有条件的查询where
select * from department
where departmentid<3
select * from department
where departmentid>=2 and departmentid<=3
select * from department
where departmentid<2 and departmentid>3
--有条件的更新where
update department
set departmentname='索迪'+departmentname
where departmentid=2 or departmentid=4
--有条件的删除
delete from department
where departmentname='索迪教质部' or departmentname='索迪财务部'
6. 模糊查询
通配符:和like一起使用,用来匹配字符串
_代表任意一个字符
%代表任意多个(0-……字符
[]代表[]范围内的任意一个字符  [ade] [0-9] [a-z] [03-7ACE-Pa-z]
[^]代表部包含在[]范围内的任意一个字符 [^ade] [^0-9]

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。