一、创建数据库

  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. 聊聊、Java 网络编程

    Socket 编程大家都不陌生,Java 学习中必学的部分,也是 Java网络编程核心内容之一.Java 网络编程又包括 TCP.UDP,URL 等模块.TCP 对应 Socket模块,UDP 对应  ...

  2. uiautomator 一个简单脚本创建流程

    http://www.codeceo.com/article/android-ui-auto-test.html

  3. python风格之包导入

    导入总应该放在文件顶部, 位于模块注释和文档字符串之后, 模块全局变量和常量之前. 导入应该按照从最通用到最不通用的顺序分组: 标准库导入 第三方库导入 应用程序指定导入 每种分组中, 应该根据每个模 ...

  4. JSON的使用_检查JSON工具

    json简单说就是javascript中的对象和数组. 1.对象:对象在js中表示为"{}"扩起来的内容,数据结构为 {key:value,key:value,...}的键值对的结 ...

  5. Stack&Vector源码分析 jdk1.6

    参照:http://www.cnblogs.com/tstd/p/5104099.html Stack(Fitst In Last Out) 1.定义 public class Stack<E& ...

  6. 关于ida pro的插件keypatch

    关于ida pro的插件keypatch 来源 https://blog.csdn.net/fjh658/article/details/52268907 关于ida pro的牛逼插件keypatch ...

  7. 刷题总结——拆网线(noip模拟 贪心)

    题目: 给定一颗树··在保证有k个点与其它点连接的情况下问最少保留多少条边···· 树的节点树n和k均小于100000: 题解: 很容易看出来我们要尽量保留那种一条边连两个节点的情况···· 然后考试 ...

  8. bzoj 3544 [ONTAK2010]Creative Accounting 贪心

    Description 给定一个长度为N的数组a和M,求一个区间[l,r],使得(\sum_{i=l}^{r}{a_i}) mod M的值最大,求出这个值,注意这里的mod是数学上的mod Input ...

  9. maven项目打包 编码gbk的不可映射字符

    中文系统默认gbk编码格式,你的代码是utf8格式的.所以报错 <build> <plugins> <plugin> <groupId>org.apac ...

  10. jquery 选择器加变量

    var $role_id = btn.parent().prev().prev().attr('id') var $department_id = btn.parent().prev().prev() ...