数据库中常用的概念
Sql本身是一个服务器,没有界面,Management Studio 只是一个SQL Server管理工具而已,不是服务器。
Sql server 在管理工具下面的服务SQL Server (MSSQLSERVER)
主键:就是唯一定位的一条数据的列。不会有重复的列才能当主键, 一个表可以没有主键,但是会非常难以处理,因此建议都要设主键。
两种主键:
业务主键:使用有业务意义的字段做主键,如身份证号、职工编号。
逻辑主键:使用任何没有意义的字段做主键,完全给程序看的。推荐用逻辑主键
常识:
1、sql语句中字符串是用单引号
2、 sql语句大小写不敏感的。
分类 | 备注和说明 | 类型 | 说明 |
二进制数据类型 | 存储非子符和文本的数据 | Image | 可用来存储图像 |
文本数据类型 | 字符数据包括任意字母、符号或数字字符的组合 | Char | 固定长度的非 Unicode 字符数据 |
Varchar | 可变长度非 Unicode 数据 | ||
Nchar | 固定长度的 Unicode 数据 | ||
Nvarchar | 可变长度 Unicode 数据 | ||
Text | 存储长文本信息(指针,2G) 保存的是字节数据 | ||
Ntext | 存储可变长度的长文本 | ||
日期和时间 | 日期和时间在单引号内输入 | Datetime | 日期和时间 |
数字数据 | 该数据仅包含数字,包括正数、负数以及分数 | int smallint | 整数 |
float real | 数字 | ||
货币数据类型 | 用于十进制货币值 | Money | |
Bit数据类型 | 表示是/否的数据 | Bit | 存储布尔数据类型 |
Guid 算法是一种可以产生唯一标识的高效算法,它使用网卡MAC、地址、纳秒级时间、芯片ID码等算出来的,这样保证每次生成的GUID永远不会重复,无论是同一个计算机上还是不同的计算机。/
数据库的类型uniqueidentifier
SQLServer中生成GUID的函数newid(),.Net中生成Guid的方法:Guid.NewGuid()
use 数据库名,打开该数据库,有时候在新建查询时没选择对应的数据库,所以用这条语句。或者手动选择该数据库
Insert语句可以省略表名后的列名,但是不推荐
如果插入的行中有些字段的值不确定,那么Insert的时候不指定那些列即可。
当不提供字段名时,插入值需要加入默认值defaulf 也就默认值用defaulf表示
插入数据 insert into 表名 (字段名) values (值)
例:insert into student ([name],age,sex,birthday) values ('张三',21,1,1995-02-26)
字段与值一一对应
1. 新建一个表
语法:create table 表名 (字段1 类型1,字段2 类型2,……)
添加主键 primart key (字段)
例:
CREATE TABLE T_Employee --创建一个表表名是T_Employee
(FNumber VARCHAR(20), --字段 类型
FName VARCHAR(20),
FAge INT,
FSalary NUMERIC(10,2),
PRIMARY KEY (FNumber)); -- 设置主键
2. 删除整个表:Drop Table 表名
更新
语法:update Table set col=value,col2=value2 where ...
update 表名 set 字段 = 值,字段2 = 值2 where 条件
更新一个列:UPDATE T_Person Set Age=30
更新多个列:UPDATE T_Person Set Age=30,Name=‘tom’
更新一部分数据: UPDATE T_Person Set Age=30 where Name=‘tom’,用where语句表示只更新Name是’tom’的行,注意SQL中等于判断用单个=,而不是==
Where中还可以使用复杂的逻辑判断UPDATE T_Person Set Age=30 where Name=‘tom’ or Age<25,or相当于C#中的||(或者)
update Person1 set NickName=N'二十岁' 在字符前面加上N代表使用Unicode编号
where (Age>20 and Age<30) or(Age=80)
Where中可以使用的其他逻辑运算符:or(或)、and(与)、not(非)、<、>、>=、<=、!=(或<>)等
3. 修改表
添加字段
语法:alter table 表名 add 字段 类型
例:ALTER TABLE T_Employee ADD FSubCompany VARCHAR(20);