SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)

查询和更新指令构成了 SQL 的 DML 部分:

  • SELECT - 从数据库表中获取数据
  • UPDATE - 更新数据库表中的数据
  • DELETE - 从数据库表中删除数据
  • INSERT INTO - 向数据库表中插入数据

SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。

我们也能够定义索引(键),规定表之间的链接,以及施加表间的约束。

SQL 中最重要的 DDL 语句:

  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 改动数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引

一步一步来:

先建立个数据库

(注意:SQL对大写和小写不敏感,都习惯大写)

CREATE DATABASE db_Name

然后建立一张表

CREATE TABLE Article(
Id int NOT NULL,
title VARCHAR(50),
author VARCHAR(50),
keyword VARCHAR(50),
CreateDate datetime,
content text,
express text
)

然后大功告成。一个数据库一张表就出来了,但是有个问题,我想设置个主键怎么办,并且要实现值自增(就是这个列的值能够依据你的行自己主动建值)

原先我是这么写的。

ALTER TABLE [db_Name].[dbo].[Article]
ADD CONSTRAINT Id_key PRIMARY KEY (Id)

不要笑,偶是刚開始接触数据库,所以导致上面错误,什么错误呢?就是主键是搞好了,可是自增的效果没实现,怎么实现呢,然后我试了试,发现有两个属性设置:IDENTITY 和 auto_increment,在SQL中使用IDENTITYkeyword来运行auto_increment(注:IDENTITY的開始值是1,每条新纪录递增1),可是不幸的是这个keyword仅仅能在两种情况下使用,一种是在建立表的时候使用,例如以下:

CREATE TABLE Article(
Id int NOT NULL PRIMARY KEY IDENTITY,
title VARCHAR(50),
author VARCHAR(50),
keyword VARCHAR(50),
CreateDate datetime,
content text,
express text
)

还有一种是在加入新字段的时候。例如以下:

ALTER TABLE [db_Name].[dbo].[Article]
ADD Id int IDENTITY(1,1)

感觉第一种和另外一种比較起来,如今仅仅能选择另外一种了,应为表已经建立好了,不想再去删掉表重建,那就删掉Id字段又一次加入字段吧。然后我就去删掉那个字段。悲剧又来了,结果那个字段删不掉。代码例如以下:

ALTER TABLE [db_Name].[dbo].[Article]
DROP COLUMN Id

后来脑袋灵光一闪,是不是上面我设置主键的时候导致删不掉的,小试了一下,我先删除主键约束,代码例如以下:

ALTER TABLE [db_Name].[dbo].[Article]
DROP CONSTRAINT Id_key

然后再运行删除Id字段的代码。结果能够了

好了,能够又一次加入自增的字段了。代码例如以下:

ALTER TABLE [db_Name].[dbo].[Article]
ADD Id int IDENTITY(1,1)

好了,加入主键约束。代码例如以下:

ALTER TABLE [db_Name].[dbo].[Article]
ADD CONSTRAINT Id_key PRIMARY KEY (Id)

好了,一个有自增的主键表建立好了。忘了,能够加入信息了,代码例如以下:

INSERT INTO [db_Name].[dbo].[Article]
(
title,
author,
keyword,
CreateDate,
content,
express
)
VALUES
(
'中秋节',
'家',
'节日',
GETDATE(),
'下个节日就是中秋节,自从踏上大学到如今每一个中秋节都是在外面过的,有时候静下心来想想真是对不起家里的老爸老妈,每次国庆回家,老爸老妈都会拿出家里面给我保存的月饼,都说养儿防老,儿却踏他乡',
'除了国庆和过春节的假期,其他假期实在是短,整个假期的天数还不够花费在路上的时间,唯一的就是自己给自己放假'
)

待续.....

SQL从头開始的更多相关文章

  1. [php learn] php 从头開始学习1

    前言:大概在2006年的时候,学习过一段时间的php.而且当时做了一个下载的站点,后来因为读研究生阶段用的是java.j2ee相关,所以php就搁浅掉了,php这些年也发生了非常大的变化,最大一个变化 ...

  2. 从头開始学 RecyclerView(六) LayoutManager

    前言 在前面的文章中.每一个演示样例,都使用了LayoutManager,毕竟它是RecyclerView必不可少的一部分. LayoutManager,顾名思义,就是『布局管理器』. 使用例如以下代 ...

  3. 从头開始写项目Makefile(十):make内嵌函数及make命令显示

    [版权声明:转载请保留出处:blog.csdn.net/gentleliu.Mail:shallnew at 163 dot com]     这一节我们讲一下make的函数,在之前的章节已经讲到了几 ...

  4. 从头開始写项目Makefile(七):统一目标输出文件夹

    [版权声明:转载请保留出处:blog.csdn.net/gentleliu. Mail:shallnew at 163 dot com]     上一节我们把规则单独提取出来,方便了Makefile的 ...

  5. 从头開始学 RecyclerView(三) 封装简化

    前言 上一篇的代码,也是基于这些封装的. RV的封装,跟曾经的listView之类的封装,大同小异. 这里,从@devwiki 处,将代码搬过来.基本无改动 BaseHolder的优化 使ViewHo ...

  6. 从头開始写项目Makefile(五):嵌套运行

    [版权声明:转载请保留出处:blog.csdn.net/gentleliu.Mail:shallnew at 163 dot com] 在大一些的项目里面,全部源码不会仅仅放在同一个文件夹,一般各个功 ...

  7. 从零開始开发Android版2048 (四) 分数、重置、结束

    这一篇的内容主要是在上一篇的基础上,增加分数计算(包含当前分数和最高分数).游戏结束的推断以及游戏界面的重置这三个部分的功能. 一.分数的计算和保存          首先,2048这个游戏的分数包含 ...

  8. python 爬虫1 開始,先拿新浪微博開始

    刚刚開始学. 目的地是两个.一个微博,一个贴吧 存入的话,临时还没想那么多.先存到本地目录吧 分词和推荐后面在整合 mysql mongodb hadoop redius 后面在用 我最终知道为什么大 ...

  9. Oracle 事务的開始与结束

    事务是用来切割数据库活动的逻辑工作单元,事务即有起点,也有终点: 当下列事件之中的一个发生时,事务就開始了: 连接到数据库上,并运行了第一天 DML 语句: 当前一个事务结束后,又输入了另外一条 DM ...

随机推荐

  1. android黑科技系列——实现静态的默认安装和卸载应用

    一.访问隐藏的API方式进行静态的默认安装和卸载 1.系统安装程序 android自带了一个安装程序—/system/app/PackageInstaller.apk.大多数情况下,我们手机上安装应用 ...

  2. AI:机器人与关键技术--总是被科普

    AI:机器人与关键技术--总是被科普 原文链接:www.csdn.net/article/2014-04-22/2819430 机器人发展建议: 有需求才有生产,有更高的需求才有发展: 第一条:我们的 ...

  3. 基于SLIC分割的特征点检测

    一:pipeLIne (1):基于模型的pose估计综述: 对于一个3D模型,可以投影到平面,得到不同的位姿,而pose识别是利用所见的2.5D图像,来估计模型,并同时识别出位姿. 3D模型投影时注意 ...

  4. 01-初学总结之《谭浩强C程序设计》

    注:个人针对于课本的易错点进行了相关的整理.整理的不专业,多多见谅. C语言中的易出错的点 这个笔记综合了 0. 常量&变量 常量 整型常量 -345,1000,0 实型常量 1)   十进制 ...

  5. pc页面滚动的时候,背景图不动只是页面滚动

    代码如下,直接拷贝出去就能看效果: 用到的方法 background-attachment 属性设置背景图像是否固定或者随着页面的其余部分滚动. <!DOCTYPE html> <h ...

  6. MongoDB经典入门(2)--shell命令

    MongoDB是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境. 使用 "./mongo --help" 可查看相关连接 ...

  7. 07 Django组件-中间件

    中间件 方式一:函数式:中间件[middleware],也叫钩子方法[钩子函数],hook Django中的中间件是一个轻量级.底层的插件系统,可以介入Django的请求和响应处理过程,修改Djang ...

  8. JS 封装一个求数组最大值的函数

    var aa = [1,2,3,4,9,2,5]; z(aa); function z(attr){ var b = 0 for(var i =1;i<aa.length;i++){ if(aa ...

  9. day25-2 random,os,sys模块

    目录 random 为什么要有random模块,random模块有什么用 os 为什么要有os模块,os模块有什么用 sys 为什么要有sys模块,sys模块有什么用 random import ra ...

  10. Java Mybatis 缓存介绍

    0 引言 本文主要介绍有关MyBatis的缓存. 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 1. 一级缓存: 基于PerpetualCache 的 HashMap本 ...