数据库的语句对大小写不敏感,故可大写,可小写,并且要注意,语句以及操作符等均要用英文的标点和符号,否则则会出现错误,并且语句之间不一定要分号,但是有分号可以方便阅读
以下均在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 | 为列指定多个可能的值 |