SQL语句入门
(1) SQL语句是和DBMS”交谈”专用的语句,不同DBMS都认SQL语法。
(2) SQL语句中字符串用单引号。
(3) SQL语句是大小写不敏感的,不敏感指的是SQL关键字,字符串值还是大小写敏感。
(4) 创建表,删除表不仅可以手工完成,还可以执行SQL语句来完成,在自动化部署,数据导入中用的很多。
创建表: create table T_Person
删除表:drop table T_Person
(
ID int not null,
Name nvarchar(50),
Age int null
)
(5) 执行简单的Insert语句: insert into T_Person(ID,Name,Age)
values(1,’Jim’,39)
(6) *(熟悉):SQL主要分DDL(数据定义语言)和DML(数据操作语言)两类,create
table,drop table,alter table等属于DDL,select,insert,Update,delete等属于DML。
主键选择
(1) SQL Server中两种常用的主键数据类型:int(或bigint)+标识列(又称自动增长字段);uniqueidentifier(又称Guid)。
(2) 用标识列实现字段自增可以避免并发等问题,不用开发人员控制自动增长,用标识列的字段在insert的时候不用指定主键的值,将字段的”是标识列”设置为”是”,一个表只能有一个标识列。
(3) Guid算法是一种可以产生唯一标示的高效算法,它使用网卡MAC地址,纳秒级时间,芯片ID码算出来的,这样保证每次生成的GUID永远不会重复,无论是同一个计算机上还是不同的计算机,SQL
Server中生成GUID的函数newid(),.NET中生成GUID的方法:Guid.NewGuid(),返回值是GUID类型。
例如:SQL Server:select newID()
C#代码中:Guid id=Guid.NewGuid();
(4) (*)int自增字段的优点:占用空间少,无需开发人员干预,易读。缺点:效率低,数据导入导出的时候很痛苦。
(5) (*)Guid的优点:效率高,数据导入导出方便,缺点:占用空间大,不易读。
数据插入
(1) insert语句可以省略表名后的列名,但是不推荐。Insert into Person2 values(‘lucy’,’38’)
(2) 如果插入的行中有些字段的值不确定,那么insert的时候不指定那些列即可。
(3) 给字段可以设置默认值,如果Guid类型主键的默认值设定为newid()就会自动生成,很少这样干:
insert into person3(ID,Name,Age) values(newid(),’tom’,30)
数据更新
(1) 更新一个列:update T_Person set Age=30
(2) 更新多个列:update T_Person set Age=30,Name=’Tom’
(3) 更新一部分数据:update T_Person set Age=30 where Name=’Tom’,用where语句表示只更新Name是’Tom’的行,注意SQL中等于判断用单个=,而不是==。
(4) where中还可以使用复杂的逻辑判断:
update T_Person set Age=30 where Name=’Tom’ or Age<25. or相当于C#中的||(或者)。
(5) where中可以使用的其他逻辑运算符是:or,and,not,<,>,>=,<=,!=(或<
>)等。