数据库基础命令

  • 创建数据库
  • Select
  • distinct
  • where
  • and,or,not
  • and
  • or
  • not
  • order by
  • insert
  • Update
  • Delete
  • 运算符
  • 算术运算符
  • 比较运算符
  • 逻辑运算符




数据库的语句对大小写不敏感,故可大写,可小写,并且要注意,语句以及操作符等均要用英文的标点和符号,否则则会出现错误,并且语句之间不一定要分号,但是有分号可以方便阅读

以下均在SQL sever 2012可执行

创建数据库

create database [数据库名称];

Select

select从表中选取数据,结果被存储在一个结果表中(称为结果集)。

use [数据库名称];
select 列名称1,列名称2,... from 表名称;

在使用这个语句之前,要表明在哪个数据库里进行执行select语句,并且可以同时选取多个列来进行选择

use [数据库名称];
select * from 表名称;

这个语句表示的是选择所有的列,星号(*)是选取所有列的快捷方式。

distinct

用于返回唯一不同的值,可以在选取一个列的时候除去重复的数据,例如有两个相同的分数,便去除另外一个,保留一个,并不是全部去除

use [数据库名称];
select distinct 列名称 from 表名称;

where

可以进行条件选择,选择一些符合条件的数据

use [数据库名称];
select 列名称 from 表名称 where 条件语句;

下类操作符可以where语句里面操作

操作符

描述

=

等于

>

大于

<

小于

<>

不等于(在某些版本的SQL中,这个操作符可能写成!=)

>=

大于等于

<=

小于等于

between

在某个范围内

like

搜索某种模式

in

为列指定多个可能的值

例如:

use 学生成绩;
select 语文成绩 from 成绩 where 语文成绩>90;
select 数学成绩 from 成绩 where 数学成绩=100;

另外还要注意,字符串要加上单引号

use 世界;
select 城市 from 中国 where 城市='北京';

and,or,not

and

可以用在条件语句中,例如where后面,把条件增多,and连接的条件必须均为true,才会显示记录

use [数据库名称];
select 列名称 from 表名称 where 条件语句 and 条件语句 and ...;

or

同and,但用法不同,连接的条件必须有一个为true才可显示记录

use [数据库名称];
select 列名称 from 表名称 where 条件语句 or 条件语句 or ...;

not

not则为显示除去条件之外的记录,且条件为true
例如:

use 学生成绩;
select 语文成绩 from 成绩 where not 语文成绩>90;

这个会显示出语文成绩小于90分的成绩
这三个运算符也可以放在一起使用

select * from Customers
where Country='Germany' and (City='Berlin' or City='München');

SELECT * FROM Customers
WHERE NOT Country='Germany' AND NOT Country='USA';

复合起来的运算记得要带上括号

order by

按关键字排序
用于按升序或降序对结果集进行排序,默认情况下按升序排序记录,如果需要按降序对记录进行排序,可以使用desc关键字,asc是按照升序排序desc是按照降序排序

select 列名称1,列名称2,列名称3...from 表名称
order by 列名称 desc/asc;

可以和where等结合应用

use 北风贸易;
select * from 成绩
where 数学成绩>60
order by 数学成绩

insert

insert into 语句用于向表格中插入新的行。

insert into 表名称  values(值1, 值2,....)

也可以指定所要插入数据的列

insert into 表名称(列1,列2,列3...) values(值1, 值2,....)

例如有下列表格,表格名称为学生信息

名字

学号

成绩

陈**

20*1873

60

范**

20*1875

80

宋**

20*1897

100

增加一行数据如下所示

insert into 学生信息 values('卢*','20*1925','70')

表格增加了一行信息,变成下表

名字

学号

成绩

陈**

20*1873

60

范**

20*1875

100

宋**

20*1897

80

卢*

20*1925

70

在指定的列中增加信息,如下

insert into 学生信息(名字,成绩) values('胡**','100')

显示内容如下

名字

学号

成绩

陈**

20*1873

60

范**

20*1875

100

宋**

20*1897

80

卢*

20*1925

70

胡*

100

这里要注意,学号这一项要设置可以为null值,才可以不增加值在里面,如果设置为不与许null值的,就必须要增加值在里面,才可以运行上述SQL语句。这里只是为了展示这个例子,实际情况根据实际需求来增加。

Update

Update 语句用于修改表中的数据。

update 表名称 set 列名称1=新值1,列名称2=新值2... where 列名称=某值

修改下表中胡*的学号与成绩

名字

学号

成绩

陈**

20*1873

60

范**

20*1875

100

宋**

20*1897

80

卢*

20*1925

70

胡*

100

update 学生信息 set  学号='20*1912',成绩=90 where 名字='胡*';

执行完之后,表如下

名字

学号

成绩

陈**

20*1873

60

范**

20*1875

100

宋**

20*1897

80

卢*

20*1925

70

胡*

20*1912

90

Delete

delete 语句用于删除表中的行。

delete from 表名称 where 列名称=值

把下表格中卢*删除

名字

学号

成绩

陈**

20*1873

60

范**

20*1875

100

宋**

20*1897

80

卢*

20*1925

70

胡*

20*1912

90

delete from 学生信息 where 名字='卢*';

名字

学号

成绩

陈**

20*1873

60

范**

20*1875

100

宋**

20*1897

80

胡*

20*1912

90

删除所有行
可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:

delete from 表名称;
delete * from 表名称;

运算符

运算符是保留字或主要用于 SQL 语句的 WHERE 子句中的字符,用于执行操作,例如:比较和算术运算。 这些运算符用于指定 SQL 语句中的条件,并用作语句中多个条件的连词。

算术运算符

假设变量 a 的值是:10,变量 b 的值是:20,以下为各运算符执行结果:

运算符

描述

例子

+

加法,执行加法运算

a + b 得到 30

-

减法,执行减法运算

a - b 得到 -10

*

乘法,执行乘法运算

a * b 得到 200

/

用左操作数除以右操作数

b / a 得到 2

%

用左操作数除以右操作数并返回余数

b % a 得到 0

比较运算符

假设变量 a 的值是:10,变量 b 的值是:20,以下为各运算符执行结果:

运算符

描述

例子

=

检查两个操作数的值是否相等,如果是,则条件为真(true)

(a = b) is false

!=

检查两个操作数的值是否相等,如果值不相等则条件为真(true)

(a != b) is true

<>

检查两个操作数的值是否相等,如果值不相等则条件为真(true)

(a <> b) is true

>

检查左操作数的值是否大于右操作数的值,如果是,则条件为真(true)

(a > b) is false

<

检查左操作数的值是否小于右操作数的值,如果是,则条件为真(true)

(a < b) is true

>=

检查左操作数的值是否大于或等于右操作数的值,如果是,则条件为真(true)

(a >= b) is false

<=

检查左操作数的值是否小于或等于右操作数的值,如果是,则条件为真(true)

(a <= b) is true

!<

检查左操作数的值是否不小于右操作数的值,如果是,则条件变为真(true)

(a !< b) is false

!>

检查左操作数的值是否不大于右操作数的值,如果是,则条件变为真(true)

(a !> b) is true

逻辑运算符

逻辑运算符的列表

运算符

描述

all

all运算符用于将值与另一个值集中的所有值进行比较

is null

is null运算符用于将值与NULL值进行比较

any

any运算符用于根据条件将值与列表中的任何适用值进行比较

between

between运算符用于搜索在给定最小值和最大值内的值

exists

exists运算符用于搜索指定表中是否存在满足特定条件的行

in

in运算符用于将值与已指定的文字值列表进行比较

like

like运算符用于使用通配符运算符将值与类似值进行比较

unique

unique运算符搜索指定表的每一行的唯一性(无重复项)

in

为列指定多个可能的值