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中使用IDENTITY关键字来执行auto_increment(注:IDENTITY的开始值是1,每条新纪录递增1),但是不幸的是这个关键字只能在两种情况下使用,一种是在建立表的时候使用,如下:

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从头开始,布布扣,bubuko.com

时间: 2024-10-01 06:46:14

SQL从头开始的相关文章

SQL从头開始

SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL) 查询和更新指令构成了 SQL 的 DML 部分: SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据 SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格. 我们也能够定义索引(键),规定表之间的链接,以及施加表间的约束. SQL 中最重要的 DDL 语句: CREATE DATABASE

从头安装及配置PL/SQL Developer

原文地址:http://lightguide.blog.51cto.com/3121539/1140588 因为自己安装及配置中走了不少弯路,搜索网上的文档大部分没有包含oralce client的安装及相应的配置,所以单独写一次吧. 本例适用于不需要安装Oralce client,以instantclient basic包来代替. --需要的软件包: -PL/SQL Developer 下载地址可以自己去google. -instantclient-basic-nt-11.2.0.3.0 --

2015从头开始配置Hibernate-------Hibernate异常集锦

Eclipse不像是MyEclipse,它的Hibernate的使用需要进行从头配置.配置的基本方法就是把相应的jar包复制到WEB-INF/lib目录下.这些jar包,我是从 "http://ncu.dl.sourceforge.net/project/hibernate/hibernate3/3.6.10.Final/hibernate-distribution-3.6.10.Final-dist.zip" 这个地址下载的. 在"hibernate-distributio

python 3 mysql sql逻辑查询语句执行顺序

python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <havin

MySQL &#183; 性能优化 &#183; MySQL常见SQL错误用法

前言 MySQL在2016年仍然保持强劲的数据库流行度增长趋势.越来越多的客户将自己的应用建立在MySQL数据库之上,甚至是从Oracle迁移到MySQL上来.但也存在部分客户在使用MySQL数据库的过程中遇到一些比如响应时间慢,CPU打满等情况.阿里云RDS专家服务团队帮助云上客户解决过很多紧急问题.现将<ApsaraDB专家诊断报告>中出现的部分常见SQL问题总结如下,供大家参考. 常见SQL错误用法 1. LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如

SQL索引工作原理

SQL 当一个新表被创建之时,系统将在磁盘中分配一段以8K为单位的连续空间,当字段的值从内存写入磁盘时,就在这一既定空间随机保存,当一个8K用完的时候, SQLS指针会自动分配一个8K的空间.这里,每个8K空间被称为一个数据页(Page),又名页面或数据页面,并分配从0-7的页号,每个文件的第0页记录引导信息,叫文件头(File header):每8个数据页(64K)的组合形成扩展区(Extent),称为扩展.全部数据页的组合形成堆(Heap). SQLS 规定行不能跨越数据页,所以,每行记录的

手把手教你-----巧用Excel批量生成SQL语句,处理大量数据

在做系统或者做项目的时候,经常会遇到这样的要求:用户给我们发过来一些数据,要求我们把这些数据导入到数 据库中,对于少量的数据来说,用最原始的方法就可以解决,直接在SQL里面用语句来实现,但是如果有成千上万条的 数据呢?如果你还继续单独写SQL语句,估计写个几十条你就会有跳楼的冲动,其实有两种简单的方法: 1.将Excel的数据整理好,通过SQL的导入功能直接导入到数据库中,但是要保证数据库的字段和Excel的字段一致. 2.通过Excel生成相应的SQL语句,然后,放到SQL的新建查询中,执行.

ORACLE PL/SQL 中序列(sequence)的简易使用方法介绍

如果我是C罗 原文 ORACLE PL/SQL 中序列(sequence)的简易使用方法介绍 sequence在ORACLE中应用十分广泛,就是序列号的意思,会自动增加指定变数,如逐次增加1或者2或者其他. 1.创建序列 Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE 权限 CREATE SEQUENCE CUX_DEMO_SEQUENCEMINVALUE 1MAXVALUE 99999999999START WITH 1000

SQL中的连接查询及其优化原则

连接查询是SQL的主要任务,只有很好的掌握了连接查询及其优化方法才算是掌握了SQL的精髓所在.最近在面试中遇到了有关连接查询的问题,感觉回答的不是很好,总结一下. 具体示例请参考:http://www.w3school.com.cn/sql/sql_join.asp 总结: 连接查询原理与代码优化:假如要对table1和table2两个表进行连接查询,则DBMS首先会在table1中找到第一个元组,然后从头开始扫描table2表,逐一查找与table1第一个元组相对应的table2的元组,找到后