SQL SERVER语法 基础二
use database #选择数据库
set names utf8 #设置使用的字符集
目录
从数据库中选取数据。
结果被存储在一个结果表中,称为结果集。
(1)常用命令
SELECT column_name,column_name from table_name
如果是需要选择所有的列,就用*号代替column_name
select * from table_name
(2)返回唯一不同的值(去除列中重复的值)
select DISTINCT
返回列中唯一的,不同的值
命令用法:
select DISTINCT column_name,column_name from table_name
作用是过滤记录
(1).常用语法
select column_name,column_name from table_name where column_name operator value
这里的operator 指的是运算符,比如>或< 或!= 或=
如colunm_name !=value
(2)常用的运算符
= | 等于 |
<> | 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 != |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
IN | 指定针对某个列的多个可能值 |
(3). AND 和OR运算符
作用是对 一个以上的条件对记录进行过滤。
AND:如果两个条件都成立,则显示一条成立的记录
OR:如果第一个条件或者第二个条件中,只要有一个条件成立,就显示一条成立的记录。
使用语法:
select column_name,column_name from table_name where column_name operator value AND column_name operator value
select column_name,column_name from table_name where column_name operator value OR column_name operator value
如:
select * from Websites where country='CN' OR country='USA'
AND和OR结合起来使用
SELECT * FROM Websites WHERE alexa > 15 AND (country='CN' OR country='USA');
(4).ORDER BY
order by是关键字,它用于对结果集进行排序。
也就是说,这个关键字是在其它对条件进行过滤之后,对获取的结果集进行排序
select column_name,column_name from table_name order by colunm_name,column_name ASC | DESC
asc 为升序排序,如数字,就是从小开始排到大。字母则从A排到Z
DESC为降序排序,如数字从最大排到最小,字母则从Z排到A
如果没有指明是asc还是desc,则默认是asc排序
如排序的是多个列
SELECT * FROM Websites ORDER BY country,alexa;
以上对counttry和alexa两个列进行排序。则会先把country进行asc方式排序,然后在country排好之后,如country排好序后,CN和USA都进行排好序了。再对alexa排序,就会在所有CN中的记录中,对alexa进行排序。然后在USA记录中对alexa进行排序。
如果多列排序中,没有在后面紧跟着排序方式,默认ASC。
如
order A ,B 都默认ASC方式排序
order A desc,B A降序,B默认升序
order A,B desc A默认升序,B降序
语句,作用 插入新记录
两种形式的语句
(1).不指明插入的列
INSERT INTO table_name VALUES(value1,value2,value3,......);
(2).指明插入的列和对应值
INSERT INTO table_name (column1,column2,column3......) VALUES (value1,value2,value3......);
(3).INSERT INTO和SELECT * INTO的区别
insert into scorebak select * from socre where neza='neza' --插入一行,要求表scorebak 必须存在 select * into scorebak from score where neza='neza' --也是插入一行,要求表scorebak 不存在
作用,更新表中已存在的记录
语法
update table_name set column_name1=value,column_name2=value,..... where some_column=some_value
如
UPDATE Websites SET alexa='5000', country='USA' WHERE name='菜鸟教程';
注:如果不加where语句条件过滤。会导致SET出现的整个列都设置为该值。
所以使用UPDATE时一定要慎重。
可以通过设置sql_safe_updates 这个自带的参数来解决,当这个参数开启时,update后一定要带着where语句,不然会报错。
作用 删除表中的行
语法
DELETE FROM table_name WHERE some_column=some_value;
根据where条件过滤删除的记录。
如果需要表中所有的记录,又保留表的字段属性等。
可以如下写
delete from table_name or delete * from table_name