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 ...
随机推荐
- [JavaEE] Apache Maven 入门篇(上)
http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html 作 ...
- Eclipse 连接hsqldb数据库
初学Java,在接触数据库根本无从下手,不知如何将程序和数据库连接起来,今天做一个记录. 数据库是:hsqldb_1_8_0_5 附链接百度云盘 链接:https://pan.baidu.com/s/ ...
- django 实现websocket
一.简述:django实现websocket,之前django-websocket退出到3.0之后,被废弃.官方推荐大家使用channels. channels通过升级http协议 升级到websoc ...
- swi prolog 与c#
最近,玩了一下prolog语言,感觉还是很有意思.由于我是学c#的,所以就不禁想看看c#如何与prolog进行结合,在网上找了一下,发现有个swi prolog对c#的dll,下载官网:http:// ...
- BZOJ4518: [Sdoi2016]征途(dp+斜率优化)
Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1875 Solved: 1045[Submit][Status][Discuss] Descript ...
- deepin下jdk和tomcat的安装教程
在deepin上安装java是真的心累啊,照着网上的教程弄,结果一团糟.好不容易折腾成功了,记录下来. 1.下载jdk 首先我们要知道,用sudo 类似命令下载的jdk,是open的jdk,是开源的, ...
- 修改ElementUI源码
1.克隆ElementUI官方仓库代码到本地 https://github.com/ElemeFE/element 2.在cmd命令行安装依赖 1)找到代码文件夹 cd element 2)npm ...
- day05_20190127_python之路——常用模块
什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀.模块的本质:就是封装了很多很多函数.功能的一个文件 但其实import加载的模块分为四 ...
- win7/win10 未分配磁盘怎样创建扩展分区 也就是逻辑分区(转截)
我们有时候用windows7的磁盘管理工具对windows7系统分区管理的时候,我们可能会不小心把我们的电脑硬盘扩展分区都删除了,扩展分区变为了未分配的空间,这时候如果我们新建分区的话,建立的都是主分 ...
- [POI2005]AUT-The Bus 树状数组维护最大前缀和
#include<cstdio> #include<algorithm> using namespace std; const int N=100000+3; int x[N] ...