一、创建数据库

  1. 创建和打开数据库

    注意一点:在新建数据库的时候,一般放置数据文件与日志文件的位置,需要提前建立文件夹,不然会报错。

    一般主数据文件,我们以.mdf结尾,次数据文件用.ndf结尾。对于日志文件,我们一般以.ldf结尾。

    create database UserDB

    on primary

    (name=userdb_dat,filename='d:\magmisdata\magdbdat1.mdf',

    size=10,maxsize=50,filegrowth=5)

    log on

    ( name=userdb_log,filename='d:\magmisdata\magdblog1.ldf',

size=10,maxsize=50,filegrowth=5)

打开数据库:

use database UserDB

CREATE DATABASE UserBD1

ON PRIMARY

(name=user1,filename='d:\dbfile\user1.mdf',size=20,maxsize=200,filegrowth=5

),

(name=user2,filename='d:\dbfile\user2.ndf',size=20,maxsize=200,filegrowth=10%

),

(name=user3,filename='d:\dbfile\user3.ndf',size=20,maxsize=200,filegrowth=5

)

log on

(name=use1log,filename='d:\dbfile\user1.ldf',size=20,maxsize=200

),

(name=user2log,filename='d:\dbfile\user2.ldf',size=20,maxsize=200

)

2、修改数据库

增加和删除数据文件和日志文件

缩小分配给数据文件或日志文件的空间

扩大分配给数据文件或日志文件的空间

创建文件组

改变默认文件组

改变数据库名称

注意:在利用文件组的时候需要先增加文件组,然后在把增加的文件放到文件组里面去。

而且 name 记录的是 数据文件的逻辑名称,不是物理名称。

alter database UserBD1

add filegroup userdbFG

alter database UserBD1

add file

(name=add_user2,filename='d:\dbfile\adddat2.ndf',size=5,maxsize=200,filegrowth=10%)

to filegroup userdbFG

注意:如果把下面的modify换成 remove的话,就可以删除某一个数据文件或者日志文件

当我们增加日志文件的话,我们使用命令 add log file (文件参数)

alter database UserBD1

modify file

(name=add_user2,size=10)

下面是缩小数据文件或数据库命令,

use UserBD1

dbcc shrinkfile(add_user2,5)

dbcc shrinkdatabase(UserBD1,100)

删除数据库

drop database UserBD1

二、数据库表

    1、创建数据库表

注意: identity(10,5) 表示初始值为10,然后按照5的速度往上涨。默认为自增1.

对于表名,一般#开头的表示临时表,它是存在于内存空间中的,随之数据库的关闭,自动关闭,不会保存到硬盘中。

建立表格

use UserBD1

create table mag_dept

(

DepId int identity primary key,

DepName varchar(50) NOT NULL,

DepManager varchar(50) ,

DepTel varchar(24),

)

create table mag_emp

(

EmpId int identity,

EmpName varchar(30) NOT NULL,

SexInfo char(2),

EmpAge tinyint,

DepId int,

EmpRole varchar(20),

PermitStr varchar(100)

)

create table mag_info

(

MagId char(9),

MagName varchar(50) NOT NULL,

DesignerName varchar(30),

DesFinishDate datetime,

PubDate datetime,

DepId int

)

create table mag_doc

(

DocId int identity,

DocTitle varchar(180),

AuthorName varchar(30),

DocText text,

WordsSum int,

EditorName varchar(50),

EditFinishDate datetime,

ColumnName varchar(50),

DepId int,

MagId char(9)

)

2、数据类型

字符型 char varchar

日期时间类型 datetime smalldatetime

数值类型 int samllint tinyint float real decimal numeric money samllmoney

二进制类型 binary varbinary

位型 bit

文本型 text

图像型 image

时间戳型 timestamp

3、修改数据库表

添加列

alter table mag_emp

add ID char(18)

删除列

alter table mag_emp

drop column ID

修改列的属性

alter table mag_info

alter column PubDate smalldatetime

更改列名和表名

use UserTest

create table test

(

number int identity,

stu_name varchar(10),

class varchar(20)

)

use UserTest 这一句不用加,不然会报错

更改列名的写法表名.列名

Sp_rename '表名.列名' , 新的列名

sp_rename 'test.class',class_no

更改表名中间的逗号不可以省略

Sp_rename 原表名 , 新表名

sp_rename test,student

4、使用约束

  1. 总共有5种约束,分别是 primary key 主键约束、unique 该列不允许出现重复、

    foreign key 外键约束,保证数据表间数据的一致性、check定义表中某些列的数据范围、 default 为列的数据提供默认值。

    可以实现实体完整性、参照完整性、自定义完整性。

    建立约束:

    1)实体完整性

    增加主键约束

    use UserBD1

    alter table mag_dept

    add primary key (DepId)

    联合主键的定义

    use UserBD1

    create table grade

    (

    sno varchar(10) NOT NULL ,

    cno varchar(10) ,

    gmark numeric(5,1) -- 表示整数有位,小数位,其中这里的逗号可有可无,但是上面的逗号不可少

    primary key (sno,cno)

)

不允许重复出现

use UserBD1

alter table mag_dept

add unique (DepManager)

2)参照完整性

[constraint 约束名] foreign key (列名1[,列名2]) references 表名(列名1[,列名2])

定义外键

use UserBD1

alter table mag_emp

add foreign key(DepId) references mag_dept(DepId)

use UserTest

create table mag_dept

(

DepId int identity primary key,

DepName varchar(50) NOT NULL,

DepManager varchar(50) ,

DepTel varchar(24),

)

create table mag_emp

(

EmpId int identity,

EmpName varchar(30) NOT NULL,

SexInfo char(2),

EmpAge tinyint,

DepId int references mag_dept (DepId), //省略foreign key

EmpRole varchar(20),

PermitStr varchar(100)

)

3)用户自定义完整性

与100之间(注:这里是自主命名的,前面几个都不是自主命名)

use UserTest

alter table mag_emp

add constraint ck_age check (EmpAge between 1 and 100)

为某个属性添加默认值

use UserTest

alter table mag_emp

add default '编辑' for EmpRole

删除约束如果是自主命名的,直接删去约束名即可,如果不是,需要删除系统自动生成的约束名

注意斜杠的个数,不然容易弄错

use UserTest

alter table mag_emp

drop constraint FK__mag_emp__DepId__03317E3D

种方法,其一是使用 cteate table 命令在建立表的同时一同定义。其二是利用alter table 命令针对已经建立的表添加约束。

还有就是不自主定义约束名时,需要省略 constraint 约束名。

5、建立与删除索引

索引分成两类:聚集索引(物理存储方式)与非聚集索引(逻辑存储方式)。

聚集索引:顺序存储结构。非聚集索引:线性结构。

Create [unique][clustered|noclustered] index 索引名 on 表名(列名1,列名2)

默认建立的是非唯一的非聚集索引。建立索引时必须先建立聚集索引,然后建立非聚集索引。

而且,当一个数据表建立主键后,自动建立了一个唯一的聚集索引。当使用了unique 约束后,自动建立一个非聚集索引。

建立与删除索引虽然标红了,但语法正确

use UserTest

create index age_index on mag_emp(EmpAge)

drop index 表名.索引名

drop index mag_emp.age_index

6、删除数据表

drop table 表名

Sql语言复习的更多相关文章

  1. sql语言复习2

    一.查询 select 字段列表 from 表名列表 [where 条件表达式][group by 字段列表[having 条件表达式]] [order by 字段列表[asc|desc]] 含义:在 ...

  2. sql语言不经常用,复习

    sql语言不经常用,每次再用都隔好久的时间,以致最基本的都想不起来了,只好转一篇记着= - 找的时候方便 SQL分类:  DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE)  ...

  3. SQL基础复习1

    一.概述 SQL语言组成:DDL,DCL,DML 二.数据定义 1.模式定义(Schema) Schema这个东西一直感觉不大明白,一直以为就是对表的字段定义则被称为Schema,在复习数据库理论中才 ...

  4. SQL语句复习【专题三】

    SQL语句复习[专题三] DML 数据操作语言[insert into update delete]创建表 简单的方式[使用查询的结果集来创建一张表]create table temp as sele ...

  5. sql期末复习(二)

    1.概念模式是对dba所看到的全局数据逻辑结构和特征的描述 概念模式是对数据整体的逻辑结构的描述 2.数据库网状模型应满足的条件是允许一个以上的结点无父结点,其余结点都只有一个父结点 3.sql语言中 ...

  6. 2016 - 3 - 12 SQLite的学习之SQL语言入门

    1.SQL语句的特点: 1.1 不区分大小写 1.2 每条语句以;结尾 2.SQL语句中常用关键字: select,insert,update,from,create,where,desc,order ...

  7. SQL 语言 - 数据库系统原理

    SQL 发展历程 从 1970 年美国 IBM 研究中心的 E.F.Codd 发表论文到 1974 年 Boyce 和 Chamberlin 把 SQUARE 语言改为 SEQUEL 语言,到现在的 ...

  8. SQL语言

    SQL语言的分类:DDL DML DQL DCL SQL中的操作无非就是(增删改查) DDL:Data Query Language,数据查询语言! 主要是用来定义和维护数据库的各种操作对象,比如库. ...

  9. SQL语言分类

    SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML, 数据定义语言DDL,数据控制语言DCL. 1 数据查询语言DQL数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHER ...

随机推荐

  1. 排序算法总结 c描述

    概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 当n较大, ...

  2. verilog 实现中值滤波

    图像信号在形成.传输和记录的过程中,由于成像系统.传输介质.工作环境和记录设备等的固有缺陷,不可避免地产生各种类型的噪声,降低了图像的质量,进而影响后续处理(如边缘检测.图像分割.特征提取.模式识别等 ...

  3. Concept with HTTP API && RPC

    RPC=Remote Produce Call 是一种技术的概念名词. HTTP是一种协议,RPC可以通过HTTP来实现,也可以通过Socket自己实现一套协议来实现.所以楼主可以换一个问法,为何RP ...

  4. oracle dual表用途及结构详解

    dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录.我们可以用它来做很多事情,如下: 1.查看当前用户,可以在 SQL Plus中执行下面语句 sele ...

  5. UISearchController,SearchBar的教程-Swift

    如果你的应用程序里显示了大量的数据,滚动的查看大规模的列表会很慢,也会给人一种烦躁的感觉.在这种情况下,查询UISearchController, UISearchBar是极其重要的,可以让用户搜索特 ...

  6. Team Contests - Warmup(2016年多校热身赛,2016年黑龙江省赛)

    Team Contests - Warmup A 题意:... 思路:不会 代码:... 随机 B 题意:给n个点,问是否有一个圆上有最少n/3个点 思路:随机大法好. 代码:... 递推 C 题意: ...

  7. poj 1418 Viva Confetti

    Viva Confetti Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1025   Accepted: 422 Desc ...

  8. node(总结)--整体

  9. PHP实现15位身份证号转18位

    PHP实现15位身份证号转18位 参考博客: 作者:selfimpr626 来源:CSDN (根据身份证号计算年龄,15位身份证号码转18位) 原文:https://blog.csdn.net/wei ...

  10. LeetCode OJ——Text Justification

    http://oj.leetcode.com/problems/text-justification/ 编译代码要看warnings!它提供了可能出问题的情况,比如类型转换上unsigned int ...