2018-03-28 数据库的增删改查

昨天学习的是数据库表的约束,今天学习的是数据库的增删改查

修改表(可以修改那些?)
1.增加字段

Alter Table [库名].架构名.[表名]
Add 字段名 字段类型 约束条件

alter table [abc].dbo.[stutable]
add [city] varchar(50)
2.删除字段

Alter Table [库名].架构名.[表名]
Drop Column 字段名

alter table [abc].dbo.[stutable]
Drop Column [city]
3.修改字段

--mssql
Alter Table [库名].架构名.[表名]
Alter Column 字段名 修改字段类型 修改约束条件

alter table [abc].dbo.[stutable]
Alter Column [age] int null/not null

--oracle,mysql
Modify Column 字段名 修改字段类型 修改约束条件

4.添加约束

Alter Table [库名].架构名.[表名]
Add Constraint 约束条件

alter table [abc].dbo.[stutable]
Add Constraint 约束条件
5.删除约束

Alter Table [库名].架构名.[表名]
Drop Constraint 约束条件

修改字段名

exec sp_rename '[库名].架构名.[表名].字段名','新字段名'

alter table [abc].dbo.[stutable]
exec sp_rename '[abc].dbo.[stutable].stuname','name'
SQL:结构化查询语言,数据库通用语言

T-SQL:MSSQL,是对SQL的加强
PL/SQL:ORACLE中的一种

T-SQL的组成

DML:数据操作语言,增删改查
DCL:数据控制语言,权限操作
DDL:数据定义语言,建库建表
变量,流程,函数

执行顺序DCL->DDL->DML
插入语句
1.单行插入

Insert [Into] [库名].架构名.[表名]
[(字段名...)] 此处的into和字段名可以省略
Values
(值....)

Insert [Into] [test].dbo.[stutable]
Values                        字段名不写默认表中字段顺序
('s001','aaa','男',24,'杭州','[email protected]')
2.多行插入,一共有3种方式
A:从一张表复制的过程

Insert Into [库名].架构名.[表名]
[(字段名)]
Select 字段名...
From [库名].架构名.[源表名]

Insert Into [test].dbo.[stu2]
Select [name],id
From [test].dbo.[stu1]
B:就是通过from中源表名复制备份数据创建表的过程,操作只能做一次

Select 字段名
Into [库名].架构名.[表名]
From [库名].架构名.[源表名]

Select [name],id,school='然学科技'
Into [stu9]
From [stutable]
Select identity(int,2,3)  s_id,[name] as sname,school='然学科技'/此处有3中表达方式,s_id不加as,[name] as sname加as,school='然学科技'字段名加=号
Into [stu10]
From [stutable]
C:多行添加(空值null可加,default不能应用)

Insert Into [库名].架构名.[源表名]
[(字段名)]
Select 值... Union --Union All(完全重复的数据也能插入)
Select 值... Union
...
Select 值...

Insert Into [stu1]
Select 4,'d',30.'女' Union
Select 5,'e',30.'女' Union
Select 6,'f',30.'女' Union
Select 7,'g',30.'女' 
3.更新数据

Update [库名].架构名.[表名]
Set 字段名=更新值
[Where 更新条件]

Update [stu9]
Set name='张三'
Where stuid='soo1'
Update [stu9]
Set age=age+10
Where stuid beetween 1and 9
4.删除数据

Delete From [库名].架构名.[表名] / 不释放空间
[Where 删除条件]

Delete From [stu9]
Where stuid='s001'

Truncate Table [库名].架构名.[表名] /释放空间 他的后面不能加where条件

Truncate Table [stu9]
查询语句

Select Top 行数/百分数 percent *,字段名 [as] 别名,别名=字段名/常量
From [库名].架构名.[表名] Union两张表数据放在一起,要求两张表字段数类型一样/空行null用is不用=
[Where 筛选条件 is [not] Null空值查询]
[Order by 排序字段 asc升序/desc降序]

select *
from stutable
where sex='男'
order by stuage deesc
select id as 编号,姓名=[name],age 年龄,sex 性别
from stutable
where sex='男'
order by stuage deesc
select [name]+'-'+sex as,姓名性别
from stutable
select *
from stutable
where sex is not null
select top 3 *
from stutable
where sex is not null
select *
from stu2 union
select *
from stutable

你可能感兴趣的:(2018-03-28 数据库的增删改查)