SQL从头開始
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从头開始的更多相关文章
- [php learn] php 从头開始学习1
前言:大概在2006年的时候,学习过一段时间的php.而且当时做了一个下载的站点,后来因为读研究生阶段用的是java.j2ee相关,所以php就搁浅掉了,php这些年也发生了非常大的变化,最大一个变化 ...
- 从头開始学 RecyclerView(六) LayoutManager
前言 在前面的文章中.每一个演示样例,都使用了LayoutManager,毕竟它是RecyclerView必不可少的一部分. LayoutManager,顾名思义,就是『布局管理器』. 使用例如以下代 ...
- 从头開始写项目Makefile(十):make内嵌函数及make命令显示
[版权声明:转载请保留出处:blog.csdn.net/gentleliu.Mail:shallnew at 163 dot com] 这一节我们讲一下make的函数,在之前的章节已经讲到了几 ...
- 从头開始写项目Makefile(七):统一目标输出文件夹
[版权声明:转载请保留出处:blog.csdn.net/gentleliu. Mail:shallnew at 163 dot com] 上一节我们把规则单独提取出来,方便了Makefile的 ...
- 从头開始学 RecyclerView(三) 封装简化
前言 上一篇的代码,也是基于这些封装的. RV的封装,跟曾经的listView之类的封装,大同小异. 这里,从@devwiki 处,将代码搬过来.基本无改动 BaseHolder的优化 使ViewHo ...
- 从头開始写项目Makefile(五):嵌套运行
[版权声明:转载请保留出处:blog.csdn.net/gentleliu.Mail:shallnew at 163 dot com] 在大一些的项目里面,全部源码不会仅仅放在同一个文件夹,一般各个功 ...
- 从零開始开发Android版2048 (四) 分数、重置、结束
这一篇的内容主要是在上一篇的基础上,增加分数计算(包含当前分数和最高分数).游戏结束的推断以及游戏界面的重置这三个部分的功能. 一.分数的计算和保存 首先,2048这个游戏的分数包含 ...
- python 爬虫1 開始,先拿新浪微博開始
刚刚開始学. 目的地是两个.一个微博,一个贴吧 存入的话,临时还没想那么多.先存到本地目录吧 分词和推荐后面在整合 mysql mongodb hadoop redius 后面在用 我最终知道为什么大 ...
- Oracle 事务的開始与结束
事务是用来切割数据库活动的逻辑工作单元,事务即有起点,也有终点: 当下列事件之中的一个发生时,事务就開始了: 连接到数据库上,并运行了第一天 DML 语句: 当前一个事务结束后,又输入了另外一条 DM ...
随机推荐
- mysql视图,索引和存储过程
一:视图 视图又叫虚表.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成. 具体 ...
- MySql数据库中乱码问题解决方案
show variables like 'character%'; //查看当前各系统位置的字符编码格式 问题一: Incorrect string value: '\xB4\xF3\xB4\x ...
- Struts2框架学习(一)——Struts2的概念及搭建
一.Struts2的概念 使用优势:1)自动封装参数 2)参数校验 3)结果的处理(转发|重定向) 4)国际化 5)显示等待页面 6)防止表单重复提交 Struts2具有更加先进的架构以及思想 Str ...
- matlab中的@函数
原文链接:http://blog.sina.com.cn/s/blog_5e73a8fc0100t9yg.html 这是个函数句柄 @(x,y) 表示未知数是x和y punct - Funct ...
- XML文件操作之dom4j
能够操作xml的api还是挺多的,DOM也是可以的,不过在此记录下dom4j的使用,感觉确实挺方便的 所需jar包官网地址:http://www.dom4j.org/dom4j-1.6.1/ dom4 ...
- In-Out Parameters inout keyword
You write an in-out parameter by placing the inout keyword right before a parameter’s type. An in-ou ...
- 函数反抖 debounce
debounce :如果在一段延时内又触发了事件,则重新开始延时.即每次触发事件,只触发最近一次的事件. const debounce = (fn, duration) => { let tim ...
- Vim 插件管理及安装
1.先将ubuntu1204的软件源进行更新.sudo apt-get update 2.再在终端中敲如下命令,让程序自动安装,根据网速的好坏安装时间有长有短. wget -qO- https://r ...
- javaee 文件的复制
package Shurushucu; import java.io.FileInputStream; import java.io.FileNotFoundException; import jav ...
- 路飞学城Python-Day140
Django思维导图