1.1创建数据库:create database 数据库名
create database name --创建数据库:create database 数据库名
use master; --指向当前所操作的数据库
go --Go是链接语句 表示第一条语句如果执行不成功 那么第二条语句继续执行。如果不加上Go的话 如果第一条执行不成功的话 第二条也不会执行的。GO必须单独在一行
drop database name; --删除数据库:drop database 数据库名
注释:单行注释使用"–",多行注释采用/…/
--这是一条单行注释
/*
这是一条多行注释
*/
1.2创建表:create table 表名
create table dapt --创建表:create table 表名
(
deptno int primary key, --列名 数据类型 primary key(设置主键)
dname varchar(9), --列名 数据类型 not null(不能设置空值)
location varchar(10)
);
create table employees
(
empno int primary key,
name char(10) not null,
deptno int,
manager int,
hiredate date,
salary numeric(7,2)
);
create table managers
(
empno int primary key,
title varchar(16),
);
1.3删除表:drop table 表名;
drop table dapt; --删除表:drop table 表名;
2.1增加列:alter table 表名 add 列名 数据类型 ;
alter table dapt add gender varchar(10); --增加列:alter table 表名 add 列名 数据类型 ;
2.2删除列:alter table 表名 drop column 列名;
alter table dapt drop column gender; --删除列:alter table 表名 drop column 列名;
2.3修改列名:exec sp_rename ‘表名.原列名’,‘新列名’,‘column’;
exec sp_rename 'dapt.dname','dname1','column'; --修改列名:exec sp_rename '表名.原列名','新列名','column';
exec sp_rename 'dapt.dname1','dnmae','column';
2.4修改列的数据类型:alter table 表名 alter column 列名 数据类型;
alter table dapt alter column gender int ; --修改列的数据类型:alter table 表名 alter column 列名 数据类型;
alter table dapt alter column gender varchar(10);
3.1增加数据方法1:insert into 表名 values (字段1的值,字段2的值,字段3的值, …);
增加数据方法2:insert into 表名(字段1,字段2,字段3, …)
--增加数据方法1:insert into 表名 values (字段1的值,字段2的值,字段3的值, ...);
insert into dapt values(1,'技术部','一楼A区');
insert into dapt values(2,'销售部','二楼A区');
insert into dapt values(3,'行政部','一楼B区');
/*增加数据方法2:
insert into 表名(字段1,字段2,字段3, ...)
values (字段1的值,字段2的值,字段3的值,...);*/
insert into dapt (deptno,dname,location)
values(4,'信息部','二楼B区');
3.2删除数据:delete from 表名 where 列名 = 值;
delete from dapt where dname='信息部'; --删除数据:delete from 表名 where 列名 = 值;
3.3 查询数据方法1:select * from 表名;
查询数据方法2:select 列1,列2,列3 from 表名:
--查询数据方法1:select * from 表名;
select *from dapt ;
--查询数据方法2:select 列1,列2,列3 from 表名:
select deptno,dname,location from dapt;
3.4 去重复值: select distinct 列名 from 表名;
select distinct dname from dapt; --去重复值:select distinct 列名 from 表名;
3.5 从表中选取指定的数据: select 列名 from 表名 where 列名 运算符 值;
--从表中选取指定的数据: select 列名 from 表名 where 列名 运算符 值;
--运算符: between 在某个范围内 like 搜索匹配的字符串模式
select deptno from dapt where deptno ='1';
/*like搜索匹配的字符串,百分号( % )匹配零个、一个或多个字符
select 列名 from 表名 where 列名 like 字符串;*/
select*from dapt where location like '一楼a区';
3.6 条件结合:select 列名 from 表名 where 列1 运算符 值1 and / or 列2 运算符 值2;*/
/*and和or可以用在where子句中把两个或多个条件结合起来
and 运算符要求两个条件都成立;
or运算符要求二个条件中只要有一个成立即可
条件结合:select 列名 from 表名 where 列1 运算符 值1 and / or 列2 运算符 值2;*/
select dname from dapt where deptno ='1' and dname = '技术部';
3.7 in指定多个搜索条件匹配的值,not in 搜索条件不匹配的值
/*in匹配多个值:在where子句中指定多个搜索条件匹配的值,not in 搜索条件不匹配的值。
in运算符实际是多个or条件的合并
select 列名 from 表名 where 列名 in (值1 ,值2...);*/
select deptno from dapt where deptno in (1,2,3);
select deptno from dapt where deptno not in (1);
3.8 between用于选取介于两个值之间的数据范围内的值,相当于>= and <=。
not between选取不介于两个值之间的数据范围内的值
/* between指定范围:用于选取介于两个值之间的数据范围内的值,这些值可以是数字,字符串或日期
between 运算符包括开始和结束值,相当于>= and <=。not between选取不介于两个值之间的数据范围内的值
select 列名 from 表名 where 列名 between 值1 and值2;*/
select deptno from dapt where deptno between 1 and 3;
select deptno from dapt where deptno not between 1 and 2;
3.9 order by对结果集排序,默认升序( asc )
也可以指定desc order by降序排序
/*order by对结果集排序,默认升序( asc ),也可以指定desc order by降序排序
select 列名 from 表名 order by 列1,列2.... ascldesc;*/
select deptno from dapt order by '1','2' ascldesc;
4.1update更新数据:update 表名 set 列1=值1 ,列2=值2… where子句;
/*update更新数据:where子句指定哪些记录需要更新。如果省略where子句,表中的数据全部更新!
update 表名 set 列1=值1 ,列2=值2.... where子句;*/
select deptno from dapt;
update dapt set deptno=5 where deptno=2;
update dapt set deptno=2 where deptno=5;
4.2*delete删除记录:delete from 表名 where子句;
/*delete删除记录:where子句指定哪些记录需要删除。如果省略where子句,表中的所有记录都将删除!
delete from 表名 where子句;*/
select deptno from dapt;
delete from dapt where deptno=3;
4.3 index索引,view视图
/*index索引:索引可以提高访问数据的速度
create index 索引名 on 表名(列1,列2...)*/
/*view视图:视图是基于SQL语句的结果集的可视化表
create view 视图名 as select语句;*/
4.4 别名
/* select 列名 as 别名 from 表名 as 别名;*/
select deptno as '牛逼' from dapt as e;
4.5 join连接:
/*join连接:join连接是基于多个表之间的共同字段把它们结合起来进行查询的一种方法
内连接( inner join) : 列出两个表中都存在的记录
左连接( leftjoin) : 即使没有匹配也列出左表中的所有记录
右连接( right join) :即使没有匹配也列出右表中的所有记录
select 列名 as from 表1 join 表2 where子句;*/
5 常用函数
/*count函数:统计符合条件的记录数,count(* )统计表中的记录总数, count(列名)统计指定字段不为null的记录数。*/
select count(*) from dapt;
select count(dname) from dapt ;
select * from dapt where dname is null;
--max函数返回所选字段的最大值,用法是max(字段名)
--select max (列名) from 表名;
select max(deptno) from dapt;
--min函数返回所选字段的最小值,用法是min(字段名)
--select min (列名) from 表名;
select min(deptno) from dapt;
--avg函数返回所选字段的平均值,用法是avg(字段名)
select avg(deptno) from dapt;
--sum函数返回所选字段的合计值,用法是sum(字段名)
select sum(deptno) from dapt;
6 group by分组,having过滤分组
/*group by分组:用于结合统计函数,根据一个或多个列对结果集进行分组
select 列名,统计函数 from 表名 where子句 group by 列名;*/
/*having过滤分组:对group by子句所产生的组进行过滤。
select 列名,统计函数 from 表名 where 子句 group by 字段名 having 统计函数 运算符 值;*/