数据库知识(自整理)

一、数据库的DDL、DML、DCL的区别与理解

1.DML (Data Manipulation Language)数据操作语言

主要有insert、delete、update、select,主要是用来对数据库里的数据进行增删改查等操作。

2.DDL (Data Definition Language)数据定义语言

主要有create、alter、drop、rename、truncate等,主要是用来定义和改变表(table)的结构,列的数据类型等。

3.DCL (Data Control Language)数据控制语言

主要有grant,deny,revoke等,主要是用来设置或更改数据库用户或角色权限。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL

4.其他语言:TCL (Transaction Control Language)(事务控制语言)

COMMIT - 保存已完成的工作,
SAVEPOINT - 在事务中设置保存点,可以回滚到此处,
ROLLBACK - 回滚,
SET TRANSACTION - 改变事务选项

二、数据操作:

1、常用的的sql语句

  • 选择
select * from table1 where --范围  
  • 插入
insert into table1(field1,field2) values(value1,value2)  
  • 删除
delete from table1 where --范围  
  • 更新
update table1 set field1=value1 where --范围  
  • 查找
select * from table1 where field1 like '%value1%' ---like的语法很精妙,查资料!  
  • 排序
select * from table1 order by field1,field2 --[asc升序/desc降序]  
  • 总数:
select count as totalcount from table1  
  • 求和:
select sum(field1) as sumvalue from table1  
  • 平均:
select avg(field1) as avgvalue from table1  
  • 最大:
select max(field1) as maxvalue from table1  
  • 最小:
select min(field1) as minvalue from table1  

2、sql语句修改某个字段的部分内容(replace)

  • 修改mysq数据库中的某一字段值

update 表名 set 字段 = replace(字段, ‘要修改的内容’ , ‘修改后的内容’);

update table1 set field1=replace(field1, 'm' , 'n')
  • 修改sqlserver数据库中某一字段的值,可以使用replace()函数进行修改

update 表名 set s_id=replace(s_id,‘123’,‘321’) where s_id like ‘123%’;
replace()函数中,第一个参数表示的是需要进行操作的字段或值,第二个参数表示的需要被替换的字符串,第三个参数表示进行替换的字符串。

update table1 set field1=replace(field1, 'm' , 'n') where field1 like '123%'

3、取前10条记录

1、access:

select top (10) * from table1 where 1=1 

2、db2:

select column from table where 1=1 fetch first 10 rows only 

3、mysql:

select * from table1 where 1=1 limit 10 

4、sql server:

--读取前10条:
select top (10) * from table1 where 1=1 
--读取后10条:
select top (10) * from table1 order by id desc

5、oracle:

select * from table1 where rownum<=10 

三、数据库操作:

1、创建数据库

CREATE DATABASE database-name   

2、删除数据库

drop database dbname  

3、对数据库进行操作:

分离数据库: sp_detach_db;
附加数据库:sp_attach_db 后接表明,附加需要完整的路径名
如何修改数据库的名称:

sp_renamedb 'old_name', 'new_name'  

四、表操作:

1、创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)  

根据已有的表创建新表:

--A
create table tab_new like tab_old (使用旧表创建新表)  
--B
create table tab_new as select col1,col2… from tab_old definition only  

2、删除新表

drop table tabname   

3、增加一个列

Alter table tabname add column col type  
--注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加	varchar类型的长度。  

4、删除某一列:

删除数据库某一列的值分几种情况:
1)不删除字段,只更新其中的内容
update 表 set 字段=null

update table1 set field1=null

2)删除字段
alter table 表 drop column 字段

alter table table1 drop column field1

5、SQL语句增加列、修改列、删除列

1、增加列:

alter table tableName add columnName varchar(30)  

2、 修改列类型:

alter table tableName alter column columnName varchar(4000)  

3、修改列的名称:
EXEC sp_rename ‘tableName.column1’ , ‘column2’ (把表名为tableName的column1列名修改为column2)
4、删除列:
alter table tableName drop column columnName
5、添加主键: Alter table tabname add primary key(col)
删除主键: Alter table tabname drop primary key(col)

6、SQL修改列名,增加列,删除列语句的写法

1.修改数据表名
ALTER TABLE[表名.]OLD_TABLE_NAME RENAME TO NEW_TABLE_NAME;
2.修改列名
ALTER TABLE [表名.]TABLE_NAME RENAME COLUMN OLD_COLUMN_NAME TO NEW_COLUMN_NAME;
3.修改列的数据类型
ALTER TABLE [表名.]TABLE_NAME MODIFY COLUMN_NAME NEW_DATATYPE;
4.插入列
ALTER TABLE [表名.]TABLE_NAME ADD COLUMN_NAME DATATYPE;
5.删除列
ALTER TABLE [表名.]TABLE_NAME DROP COLUMN COLUMN_NAME;

五、索引

1、创建索引:create [unique] index idxname on tabname(col….)
2、ALTER TABLE eva_tr_device ADD INDEX (feeder_id)
删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。

六、视图

创建视图:

create view viewname as select statement   

删除视图:

drop view viewname  

七、事务

八、sql优化

创建索引
创建视图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值