Net学习日记_SQL_2

数据库文件:分数据文件(MDF)和日志文件(log)

nvarchar 中文---n,可变长度---var,字符---char

性别:如果考虑“男,女”,那么就用bit类型;之外的用smallin类型

 

分离数据库:将当前数据库文件和数据库引擎的关系断开,没有任何关系了,这样我就可以随意的拷贝,剪切

在数据库文件上右键-任务-分离,-勾选“删除连接”,-确定

脱机:告诉数据库引擎,暂停操作当前数据库,知道你重新“联机”, 也可以随意拷贝,剪切

附加:把已经分离的数据库文件,重新让数据库引擎管理,重新把管理关系建立上

 

主外键:

作用:就是减少重复数据

如何手动设定主外键?

在数据库里面,在外键上点击右键,可以添加主外键约束。

 

创建数据库

create database MySchool
on
(
--括号一定是圆括号
name='MySchool_data',--数据库名称
filename='d:\MySchool_data.mdf',--物理文件名
size=5mb,--初始大小,
maxsize=10mb,--最大大小
filegrowth=15% --主文件增长率
)
log on
(
name='MySchool_log',--日志文件名
filename='d:\MySchool_log.ldf',--日志物理文件名
maxsize=4mb,--最大大小
size=2mb,
filegrowth=1mb
)
go

创建数据表

CREATE TABLE Student
(
id int identity(1,1) primary key,
NAME NVARCHAR(16) NOT NULL,
age INT NOT NULL
)

 删除数据

DELETE FROM Student
删除所有数据
TRUNCATE TABLE Student
清空表,重置表(把表重置会刚刚创建时候的状态,自增列,重新从1开始了)
以上两者效率有很大差别,如果用delete会产生很多的日志,truncate 就只会产生一行日志
DROP TABLE Student
直接删除表,不仅仅是数据,连表都不见了

增删改查

1.增加语句

INSERT INTO dbo.Student
(name,gender,Address,Phone,Age,Birthday,CardId,CId) 
VALUES
('王五',1,'北京海淀,中关村','13888888888',20,'2012/01/01','111111',2)
  1. 增加的时候。Bit字段要用 “0,1”表示true和false
  2. 时间字段用单引号包括,但是里面还是要遵循基本的时间格式'2012-01-01'
  3. INSERT 语句中列的数目要和 VALUES 后面的值的数目一样
  4. 不能为标识列插入数据(特殊情况下可以,SET IDENTITY_INSERT)

        5.直接拖拽“列”就可以快速的插入列名

INSERT INTO dbo.Student (Name,Gender,Phone)
VALUES
(N'钱七①②βδΟουÇÄãÏíスヌフ叁叁',0,10000)

在插入特殊字符的时候,字符串前面需要加上大写的N

INSERT INTO dbo.Student
VALUES
('小明',default,N'地址',default,20,'2010-10-10','100000',2)

在插入数据的时候,可以显示的告诉数据库使用该字段的默认值

INSERT INTO dbo.Student
VALUES
('''',DEFAULT,N'地址',default,20,'2010-10-10','100000',2)

插入的数据中有单引号的时候,需要输入两个单引号 “''”

 

修改语句

UPDATE dbo.Student SET Age=25
修改了student表中所有行的age值
UPDATE dbo.Student SET Age=18 WHERE Name='陈珊'
修改了student表中name是陈珊的age值
UPDATE dbo.Student SET Age=19,gender=0 WHERE id=1 
修改了student表中name是陈珊的age值和gender值
UPDATE dbo.Student SET Phone='10010' WHERE Name='钱七' AND Gender=0
Where后面可以有多个条件判断,多个条件中间用“空格and空格”隔开
UPDATE dbo.Student SET Address='a' WHERE Name='王五' AND Gender=1 OR Name='王五6'
--3
UPDATE dbo.Student SET Address='c' WHERE Name='王五' OR Gender=1 AND Name='王五6'
--4
在数据库执行的时候,and条件是优先于or条件执行的
UPDATE dbo.Student SET age=age+1
UPDATE dbo.Student SET age+=1 --2005 不支持

  Set值的时候,可以取出原来的值

UPDATE dbo.Student SET Address = '未知' WHERE Address = NULL--这个是不行滴
UPDATE dbo.Student SET Address = '未知' WHERE Address IS NULL
UPDATE dbo.Student SET Address='北京' WHERE Address IS NOT NULL
NULL 值的特殊判断
UPDATE dbo.Student SET address = '男儿国' WHERE Gender!=0
不等于“!=

写法:update 表名 set 列名=值 , 列名=值  where 条件 条件中间用and和or连接 and优先于or执行

 

posted @ 2017-10-24 21:39  兽人松  阅读(152)  评论(0编辑  收藏  举报