第一天
数据库DataBasse, 不同类的数据应该放到不同的数据库中:
1.便于对各个数据类别的进行个性化管理
2.避免命名冲突
3.安全性更高
MYSQL(速度很快,适合对数据要求并不是十分严谨的地方,去掉了很多中小型企业中不常用的功能)、MSSQLServer(与.net结合很好,只能运行在windows平台下,大数据量、大交易量表现并不十分好)、DB2(大型)、Oracle(大型)、Access(文件)、 SQLite(极其轻量级数据库) 、Sybase等。对于开发人员来讲,大同小异
Table(表):关系数据库中的关系指的就是表, 不同的货物要放在各自的货物架, 将这种区域叫做”表”(Table), 不同的表根据放的数据不同进行空间的优化;
主键:(Primary Key)
主键就是数据行的唯一标识, 不会重复的列才能当主键, 一个表可以没有主键, 但是会非常难以处理, 因此没有特殊理由表都要设定主键;
主键有两种选用策略: 业务主键和逻辑主键
业务主键是使用有业务意义的字段做主键, 比如身份证号, 银行账号等
逻辑主键是使用没有任何业务意义的字段做主键, 完全给程序看的, 业务人员不会看的数据, ( 比如: 自动编号;) 因为很难保证业务主键不会重复, 所以建议使用逻辑主键
主键本身:1. 必须唯一; 2.主键不能为空;
表间关联, 外键(Foreign Key)
外键必须在主键中有的才能引用,
数据库的身份验证方式:
1.windows身份验证方式
2.SQL Server 和Windows 混合验证模式
登录方式:
1.windows 登录方式, 可以直接登录;
2.启动sa账户
1>通过windows登录
2>右键单击实例→属性→安全性→把服务方式改成sql server 和windows混合模式
3>在windows账户登录中→安全性→登录名→sa用户名→右键属性→状态→登录, 启用; 在常规中修改密码(去掉,强制实施)
事务日志文件(.ldf)
主数据文件(.mdf)
可以包含:
任意多个次要数据文件(.ndf)
多个事务日志文件
Bit 类型, 在设计器中必须用true或false ,在程序中可以使用1或0表示;
固定长度的数据类型, char(40) nchar(50) 表示, 无论实际存储的数据是否小于或等于50个字符, 都会占用50个字符的存储空间;
Varchar可变长度 就算在分配时,分配了50 但实际中没有占用全部时, 它会按照实际的大小进行存储; 前面带有n的类型,表示在任何地方都能使用, 不论 中文还是英文, 在保存时都是保存的两个字节, 所以一般都不使用加n 的,
Char 的大小为1-8000之间, 如果有更大的需要时 , 可以在后面的括号中添加上max ;
SQL语句
全名是结构化查询语言(Structured Query Language), 是关系数据库管理系统的标准语言;
SQL 语句是和DBMS 交谈的专用的语句
SQL语句中字符串用单引号, 单等号;
SQL不区分大小写;
注释用--
每条SQL命令后面的分号,可有可无;
insert into 表(列名,列名) values(值1,值2)
insert语句可以省略表名后的列名,但是不推荐。
Insert into 表 values(值1,值2)
自动编号列不需要手动插入。【SET IDENTITY_INSERT 表名 ON 】
N前缀:如果不使用 N 前缀,字符串将转换为数据库的默认代码页。这可能导致不识别某些字符。在Northwind数据库下测试print ‘中文中文’
删除表中的数据:Delete from biao where. . .
删除表: drop table 表名
删除表:Truncate table 表名
Truncate table 表名优点: 1. 速度很快, 2,一次性将表中数据都删除, 3,不记录系统日记, 4.自动编号:delete语句删除行后, 自动编号不会回复到开始的默认值,删除的很干净
更新一部分数据: update Student set sClassId= 4 where sClassId = 1,用where语句表示只更新Name是’tom’的行,注意SQL中等于判断用单个=,而不是==
update Student set sAge=30 where sName='华佗' or sAge<25
Where中可以使用的其他逻辑运算符:(||)or、(&&)and、(!)not、<、>、>=、<=、 <>(或!=)