前言

无论是sqlserver亦或是oracle和mysql,他们的增删改查语句都大体近似,一通百通,掌握了这些命令,就算在数据库的路上跨出了一大步。


文章目录

  • 前言
  • 一、增
  • 二、删
  • 三、改
  • 四、查
  • 思维导图
  • 五、约束


一、增

关键字–insert
INSERT INTO语句用于向表中插入新 记录,有两种编写形式。
第一种形式无需指定要插入的列名,只需提供被插入的值即可:

insert into table_name values(value1,value2,value3,...)

sql server json 增删改查 sql server数据库增删改查语句_sqlserver

第二种形式需要指定列名及被插入的值:

insert into table_name(column1,column2,column3,...) values(value1,value2,value3,...)

sql server json 增删改查 sql server数据库增删改查语句_数据库_02

关键字–create
CREATE TABLE 语句用于创建数据库中的表。

create table 表名(
(列名1 数据类型),
(列名2 数据类型),
(列名3 数据类型),
...
)

如:create table student(
(sID char(10)),
(sName char(16)),
(sAge int)
)
--ps:这种括号内换行的写法为的只是便于读代码,它即使是写成一行也是可以的,只要你想。

二、删

关键字–delete
DELETE语句用于删除表中的 记录。

delete from 表名 where 某列=某值 --在表中找到某列等于某值的那一条记录,删除

如:delete from student where name='张三'--在表中找到name等于张三的那一条记录,删除

关键字–drop
DROP语句用于删除索引、表和数据库

drop index 表名.索引名
drop table 表名
drop database 数据库名

三、改

关键字–update
UPDATE语句用于更新表中已存在的 记录。

update 表名 set 列名1=值1,列名2=值2,列名3=值三... where 某列=某值 --将表中某列等于某值那一行中,列名1的值改为值1,列名2的值改为值2,列名3的值改为值3...
如:
update grade set math=80 where sId='2002000201' and sName='张三';--在grade表中把学号为2002000201的同学,数学成绩改为80.

关键字–alter
ALTER TABLE语句用于在已有的表中添加、修改或删除列
与update需要做区分,update是修改数据的,alter table是修改表结构的

alter table 表名 add 列名 数据类型
alter table 表名 add 列约束;

如:
--修改约束的例子被放在在下方约束章节中
-- 增加一个列c2
alter table t1 add c2 varchar(16379);
-- 将列c2长度更改
alter table t1 modify column c2 varchar(16234);
-- 删除一个列c2
alter table t1 drop column c2;

--下面的是补充,随便看看知道大概能做些什么就行
修改事项主要有:
- 用ADD关键词添加列和约束(主码、外码、CHECK、UNIQUE等约束);
- 用DROP关键词删除列、约束和索引(含Unique);
- 用MODIFY关键词修改列的定义(数据类型和约束);
- 用RENAME关键词修改列、索引和表的名称;
- 用CHANGE关键词修改列的名称,同时还可以修改其定义(类型和约束)。

全部写法为:
ADD [COLUMN] 列名 数据类型 [列约束]
[FIRST | AFTER col_name]
| ADD {INDEX|KEY} [索引名] [类型] (列1,...)
| ADD [CONSTRAINT [约束名]] 主码约束
| ADD [CONSTRAINT [约束名]] UNIQUE约束
| ADD [CONSTRAINT [约束名]] 外码约束
| ADD [CONSTRAINT [约束名]] CHECK约束
| DROP {CHECK|CONSTRAINT} 约束名
| ALTER [COLUMN] 列名 {SET DEFAULT {常量 | (表达式)} | DROP DEFAULT}
| CHANGE [COLUMN] 列名 新列名 数据类型 [列约束]
[FIRST | AFTER col_name]
| DROP [COLUMN] 列名
| DROP {INDEX|KEY} 索引名
| DROP PRIMARY KEY
| DROP FOREIGN KEY fk_symbol
| MODIFY [COLUMN] 列名 数据类型 [列约束]
[FIRST | AFTER col_name]
| RENAME COLUMN 列名 TO 新列名
| RENAME {INDEX|KEY} 索引名 TO 新索引名
| RENAME [TO|AS] 新表名

四、查

关键字–select
SELECT语句用于从表中查找数据。

select 列名 from 表名
或 
select * from 表名 --查询表中所有数据

如:select * from student --查看student表中所有数据
select sId,sName,sTelephone from student--查看student表中的sId、sName、sTelephone三列

思维导图

sql server json 增删改查 sql server数据库增删改查语句_数据库_03

五、约束

若想在创建表时添加约束,有如下几个语句可以使用:
关键字–check、primary key、unique、foreign key、not null、default
CHECK语句用于创建约束。

default xxx 设置默认值
check xxx 创建约束
	check语句后面需要跟判断语句,判断为'真'的语句可以被输入,判断为'假'的语句会提示与约束冲突,不予输入。
	判断语句有很多,常见的如:
	in ('A','B','C') --输入的值是括号内则判断为'真'
	between 0 and 10 --输入的值在0到10之间则判断为'真'
	A>B and A<C --输入的值在B到C之间则判断为'真'
primary key 设置主键约束
not null 不允许空值
foreign Key 设置外键约束
unique 不能重复

如:
create table student((sID char(10)) primary key,--主键
					(sName char(16)),
					(sSex char(2)) check sSex in('男','女'),--in语句,表示只能选取括号内的值,也可以写作 check(性别='男'or 性别='女'),
					(sAge int) check sAge (between 0 and 130), --与in语句不同,between...and...语句会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
					(sNation char(20)) default '汉',--默认值
					(sTelephone like '1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')--电话号码,开头必须为1,后面跟了十个[0-9],表示这后面十位字符只能从0-9中选。其中,方括号内加上数字是一种通配符的表示方法,可以单独记忆一下。
);

此外,若是表已经创好,却有约束忘了加(或是更改约束),咋办呢?这时需要用到前面提到的ALTER语句进行修改:

alter table 表名 add 列约束;

如:
alter table student add default '中国' for nation,
						check (sex in('男','女')), 
						check (telephone like '1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
						check (credithour between 0 and 134);