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(), '下个节日就是中秋节,自从踏上大学到现在每个中秋节都是在外面过的,有时候静下心来想想真是对不起家里的老爸老妈,每次国庆回家,老爸老妈都会拿出家里面给我保存的月饼,都说养儿防老,儿却踏他乡', '除了国庆和过年的假期,其它假期实在是短,整个假期的天数还不够花费在路上的时间,唯一的就是自己给自己放假' )
待续.....
时间: 2024-10-01 06:46:14