SQL SERVER 的操作复习
一、数据库的创建(SQL语句)CREATE DATABASE A
ON PRIMARY --主文件组
(
NAME='A_data',--逻辑文件名
--物理文件名
FILENAME='H:\project\A_data.mdf',
SIZE=5MB,--初始大小
MAXSIZE=100MB,--最大容量
FILEGROWTH=15%--增长率
),
FILEGROUP FG --创建了一个次文件组
(
NAME='E_Market2_data',
FILENAME='H:\project\E_Market2_data.ndf',
SIZE=4MB,
FILEGROWTH=10%
)
LOG ON --日志文件
(
NAME='A_log',
FILENAME='H:\project\A_log.ldf',
SIZE=5MB,
FILEGROWTH=0--未启用自动增长
),
(
NAME='A2_log',
FILENAME='H:\project\A2_log.ldf',
SIZE=3MB,
FILEGROWTH=10%,
MAXSIZE=100MB
)
GO
数据库文件包括:
- 主数据文件(MDF)--可以保存数据库中的所有数据,包括用户对象和系统对象,每个数据库有且只有一个主数据文件。
- 辅助数据文件(NDF)--也成次数据文件,用于保存用户数据,比如用户数据表、用户视图,但是不能保存系统数据。
- 事务日志文件(LDF)--用于记录操作事务的文件。
二、数据表的创建
CREATE TABLE OrderInfo
(
OrderId INT IDENTITY(1,1) NOT NULL,--订单编号
UserId VARCHAR(20) NOT NULL,--外键,引用UserInfo表的主键
CommodityId INT NOT NULL,--外键,引用商品信息表的主键
Amount INT NOT NULL,--数量
PayMoney BIGINT NOT NULL,--付货总金额
PayWay VARCHAR(50) NOT NULL,--付款方式
OrderTime DATETIME NOT NULL,--下单日期
Confirm INT NOT NULL,--是否确认收,1表示确认,0表示没有确认,默认0
SendGoods INT NOT NULL --是否发货,0没发,1发货,默认0
)
| 文本数据类型 |
char | 固定长度非unicode字符数据 |
| varchar | 可变长度非unicode字符数据 | |
| nchar | 固定长度unicode数据 | |
| nvarchar | 可变长度unicode数据 | |
| text | 存储文本信息 | |
| ntext | 存储可变长度的文本 | |
| 日期和时间 | datetime | |
| 数字数据类型 | int、smallint、bigint | |
| float、real | ||
| numeric(18,0) | ||
| 货币数据类型 | money | |
| bit数据类型 | bit | 存储布尔数据类型 |
注:当不确定要创建的表是否已经存在时可以使用if先判断,若存在先删除,这样就不会报错。如:
IF EXISTS(SELECT * FROM sysobjects WHERE name='OrderInfo')
DROP TABLE OrderInfo
三、为表的列添加约束
对上述创建的表添加约束:
alter table OrderInfo
add constraint pk_orderid primary key(orderid),
constraint fk_userid foreign key(userid) references UserInfo(userid),
constraint fk_commodityid foreign key(commodityid) references commodityinfo(commodityid),
constraint dk_payway default('网上银行') for payway,
constraint ck_confirm check(confirm=0 or confirm=1),
constraint dk_confirm default(0) for confirm,
constraint ck_sendgood check(sendgood=1 or sendgood=0),
constraint dk_sendgood default(0) for sendgood
go
格式为:alter table 表名
add constraint 约束名 约束类型 约束列
注:约束名取名规则推荐:约束类型简写_约束列 (毕竟顾名思义嘛)
主键约束primary key
外键约束 foreign key
唯一约束 unique key
默认约束 default key
检查约束 check key
四、删除数据
1、delete [from] 表名 [where <条件>]
1) 没有where 条件时则为删除整张表。
2) 删除后,再次添加数据时,标识列继续增长,不会从标识种子开始。
2、truncate table 表名
1) 删除一整张表的数据,再次加入数据时表示列从标识种子开始。
2)不能用于删除有外键约束的表,但可以使用delete删除所有数据。
五、数据导入与导出
导入:源--excel,目标:数据库表
碰到的问题:导入时报外部数据库驱动程序的报错
原因:excel版本不匹配
解决:重建一个与所选excel版本匹配的excel表格文件。或者改变默认选择的Microsoft Excel 版本,多试试。
六、删除表 drop table 表名
聚合函数 max 、min、count、average等
分组查询 group by
SQL SERVER 的操作复习的更多相关文章
- Sql Server 常用操作2
FOR XML PATH应用 stuID学生编号,sName代表学生姓名,hobby列存学生的爱好! SELECT B.sName,LEFT(StuList,LEN(StuList)-1) as ho ...
- Sql Server 常用操作
--DDL触发器CREATE TRIGGER [TR_create_drop_alter_Table] ON DATABASE FOR CREATE_TABLE,DROP_table,ALTER_ ...
- C++对MS SQL Server的操作
今天因为在做一份C++的期末作业,突然想用C++来链接数据库,实现数据的重复利用,所以就作死去百度搜了一下. 更巧的事情是,一搜居然还有很多搜索结果,然后就照着做了. 做的过程很艰辛,就不一一诉说了, ...
- Exam 70-462 Administering Microsoft SQL Server 2012 Databases 复习帖
好吧最近堕落没怎么看书,估计这个月前是考不过了,还是拖到国庆之后考试吧.想着自己复习考试顺便也写点自己的复习的概要,这样一方面的给不准备背题库的童鞋有简便的复习方法(好吧不被题库的同学和我一样看MSD ...
- SQL Server 审计操作概念
概述 对于一般的数据库系统审计可能不太会被重视,但是对于金融系统就不一样的.金融系统对审计要求会很高,除了了记录数据库各种操作记录还可能会需要开发报表来呈现这些行为数据.使用SQL Server Au ...
- SQL Server 文件操作
在master数据库中,SQL Server提供系统扩展的存储过程,其中有一些存储过程的命名以xp_开头,用于处理操作系统的文件. 一,判断文件是否存在 存储过程sys.xp_fileexist 用于 ...
- SQL server 数据库 操作及简单查询
使用SQL Sever语言进行数据库的操作 常用关键字identity 自增长primary key 主键unique 唯一键not null 非空references 外键(引用) 在使用查询操作数 ...
- 【转】sql server数据库操作大全——常用语句/技巧集锦/经典语句
本文为累计整理,有点乱,凑合着看吧! ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ ☆ ☆ ☆ sql 宝 典 ☆ ☆ ☆ 2012年-8月 修订版 ☆ ...
- sql server C#操作。原文在收藏页面
C#操作SQL Server数据库 1.概述 2.连接字符串的写法 3.SqlConnection对象 4.SqlCommand对象 5.SqlDataReader对象 6.DataSet对象 7 ...
随机推荐
- 【洛谷P2168】[NOI2015]荷马史诗
荷马史诗 建一个k叉哈夫曼树,用堆维护一下 // luogu-judger-enable-o2 #include<iostream> #include<cstdio> #inc ...
- 【luogu P3371 单源最短路径】 模板 SPFA
题目链接:https://www.luogu.org/problemnew/show/P3371 我永远都喜欢Flyod.dijkstra + heap.SPFA #include <cstdi ...
- Android学习笔记_17_Intent匹配规则(隐式意图)
Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行 ...
- Linux查看日志命令- more、less、tail、head命令的区别
参考:https://blog.csdn.net/caib1109/article/details/52195942 1.more 2.tail 3.less 4.cat 5.head
- RL 编、解码(EncodedString、DecodedString) - iOS
开发中对文本传输或二进制传输,都需要将传输的对象进行二进制字节的转化操作,所以无异于编.解码便会经常用到的操作; 当然除了这种方式之外,还有一种常用的 Base64,此文中不具体细谈, Base64 ...
- lua浮点数取整
向下取整 math.floor(num) 向上取整 math.ceil(num) 取整取余 math.modf(num) 测试 num = 12.4 print(math.floor(num)) 12 ...
- Docker 入坑教程笔记
Docker 入坑教程笔记 视频网址B站:点这里 查询命令 man docker 简单启动和退出 docker run --name [容器名] -i -t ubuntu /bin/bash 交互启动 ...
- PHP将二位数组按照第二维的某个元素的值进行排序
例如: //原始数组是这样的,希望能够按照第二维中的run_date升序或者降序进行排序: $arr=array( 0=>array( 'run_date'=>'2017-11-21', ...
- angularjs1+requirejs+ bootstrap+ jQuery低版本配合兼容ie8+浏览器
angularjs兼容低版本IE浏览器(IE8)angularjs在1.3之后的版本都是选择放弃对IE8及更低IE版本的支持,但是就目前的开发形式来看,IE8的使用客户还是蛮多的,最近有个项目要求尽量 ...
- npm run build打包后自定义动画没有执行
问题描述:在vue项目中,当你自己写了一些自定义动画效果,然后你npm run build打包项目放到线上环境后,发现动画并没有效果. 解决办法:在vue项目中找到build文件夹下的vue-load ...