一.创建表(含多个字段)
Create table table_name (column_name1 datatype1,column_name2 datatype2,...)
二.删除表格(所有记录)
Delete table_name 删除"表格记录"会把操作记录在日志中,可以通过事务回滚来恢复删除的数据
truncate table table_name删除"表格记录"不可恢复
三.删除表
drop table table_name把"表结构"和所有记录一起删除掉了
四.备份表
1.备份一样的表 select *into table_name1 from table_name2
2.备份一份空的表副本 select *into table_name1 from table_name2 where 1=2(因为 1是不可能等于2的,所以建立的表里不会有记录)
五.常用Select操作
1.为结果集中的列指定别名(新列名)
Select column_name as newcolumnname from table_name
或:Select newcolumnname=column_name from table_name
2.消除取值重复的行
Select distinct column_name from table_name
3.限制返回行数
选取第一条记录:select top 1* from table_name
选取前N条记录: select top N* from table_name
选取最后一条记录:select top 1* from table_name order by column_name desc
选取最后N条记录:select top N* from table_name order by column_name desc
选取任意一条记录(随机):select top 1* from table_name order by newid()
六.修改字段值
注:下面用c1代表column_name(列名)
1.修改某一字段前几个字符
Update table_name set c1='123’ + right(c1,len(c1)-3)
2.修改某一字段后几个字符
Update table_name set c1=left(c1,len(c1)-3) +’123’
七.对数据进行统计
1.返回记录的条数:Select count(*) as 数目 from table_name
2.返回某列记录的总和(数据类型需是数据类) Select sum(column_name) as 总和 from table_name
Select avg(column_name) as 平均数 from table_name
Select max(column_name) as 最大 from table_name
八.常用的几种查询
1.交叉连接查询(将两个表不加约束地连接在一起,连接产生的结果集的记录为两个表中记录的交叉乘积,
结果集的列为两个表属性性列的和.(使用时需两个表的记录条数对应)
Select *from table_name1 cross join table_name2
2.等值与非等值查询(返回两个表中的两个字段中某记录相同的所有记录)
Select *from table_name1 inner join table_name2 on table_name1.column_name=table_name2.column.name
例如:Select *from table1 inner join table8 on 姓名=table8.aa
3.自身连接查询(可以理解为一个表的两个副本之间的连接)
例:查询选修了两门或两门以上课程的学生姓名和课程名称(假设有一张学生选课表table1,姓名字段名为name,课程名称为coursename)
语句该这样写:select a.name,a.coursename from table1 as a join table1 as b on a.name=b.name and a.coursename!=b.coursename
九.外连接查询(分为左外连接,右外连接和全外连接)
1.左外连接
Select *from table_name1 left outer join table_name2 on table_name1.column_name=table_name2.column_name
2.右外连接(把left 改为right就行了)
3.全外连接(触类旁通,left 改为 full)
十.子查询
1.带有in运算符的子查询
例:查询有产品销售记录的产品信息
Select *from 产品 where 产品编号 in (select 产品编号 from 产品销量)
下面举一个稍微复杂的例子,涉及到三张表.求选修了课程名为”大学语文”的学生学号和姓名. (大学语文是课程表的属性列,学生学号和姓名是学生表的属性列,两者 之间通过课程注册表联系起来)
Select 学号,姓名 from 学生表 where 学号 in(select 学号 from 课程注册表 where 课程号 in (select 课程号 from 课程表 where 课程名='大学语 文’))
3.带有比较运算符的子查询,常用的比较运算符有>,>=,<,<=,<>,!=,!<,!>.
例:列出高于平均分的学生的信息(有一张表名为学生,含学号和姓名两个属性列,课程注册表含学号和成绩属性列)
Select *from 学生 Where 学号 in (select 学号 From 课程注册 Where 成绩 > (select avg(成绩) from 课程注册))
实用SQL语句
1.添加新记录
Insert into TableName(字段1,字段2,...) values(value1,value2,...)
例如:insert into Soft_info(SoftName) values('" + SoftNameTxtBox.Text + "')
2.修改任意一条记录(如要修改多条记录,可同时写多条语句)
Update Table_Name set Column_Name=** where ID=***
例如:Update table8 set aa=44 where ID=1
3.删除某条记录:
Delete from Table_Name where 条件
例如:Delete from table8 where ID=3
4.删除某一字段:
alter table Table_Name drop column Column_Name
例如:alter table table8 drop column cc