1 删除、添加、更改表结构
Alter table dictionary Drop Column dic_id ; Alter table dictionary Add dic_id Int IDENTITY(1,1) ; Alter table student Add isValidate int default(1) not null; --加了 default(1) 必须添加 not null 否则默认值 不生效 Alter table <表名> alter column <字段名> 新类型名(长度) 更改字段长度
2 --mysql 更改某个字段为主键 自增
ALTER TABLE t_sys_person MODIFY id INT AUTO_INCREMENT PRIMARY KEY
3 给一个字段添加唯一索引
个人理解,不是主键创建非聚集索引就可以。
ALTER TABLE user_tab ADD CONSTRAINT ind_username UNIQUE NONCLUSTERED(username ) ;
给表名 tableName 添加两个字段的联合索引 CREATE UNIQUE NONCLUSTERED INDEX ind_索引名字 ON tableName ( uid ASC, name ASC )
CREATE UNIQUE NONCLUSTERED INDEX ind_索引名字 ON 表名 ( 索引字段 ASC )
4 --删除表数据,oracle可以回滚
delete from dictionary ;
5 清理user表的数据,数据不会回滚
truncate table dbo.user
6 sqlserver索引归零
DBCC CHECKIDENT ('dictionary', RESEED, 0 ) ;
7 查询数据库中所有表 以table_为前缀的(sqlserver)
SELECT 'select * from '+TABLE_NAME FROM INFORMATION_SCHEMA.tables WHERE TABLE_NAME LIKE 'table_%'
8 查询重复数据
select * from user_tab where username in ( select username from user_tab group by memberid having count(username )>1 )
9 sqlserver 夸数据库完成一个表数据导入到另一个表,从main库的user表导入到temp库的user表
insert into main.dbo.user select * from temp.dbo.user insert into user_new(name ,sex ) select name,sex from user
10 创建备份表user_bak并且将user表数据导入到user_bak中
select * into user_bak FROM user
11 INSTR 查找字符串在另一个字符串中什么位置,也可以用判断一个字符串在另一个字符串中是否存在
使用情景:字符串 “黑龙江省双城市朝阳乡”,当我们想把这个字符串分割成省市乡的时候可以根据这个字符串用sql在数据库中比对找出相应的数据
1 mysql中 INSTR(str,substr) 返回子串substr在字符串str中的第一个出现的位置 第二个字符串匹配第一个字符串中位置 2 oracle中 Instr(string, substring, position, occurrence) INSTR(源字符串, 目标字符串, 起始位置, 匹配序号) ,第二个字符串匹配第一个字符串的位置 string:代表源字符串; substring:代表想聪源字符串中查找的子串 ; position:代表查找的开始位置,该参数可选的,默认为 1; occurrence:代表想从源字符中查找出第几次出现的substring,该参数也是可选的,默认为1; 3 CHARINDEX ( expression1 , expression2 [ , start_location ] ) Expression1是要到expression2中寻找的字符中, start_location是CHARINDEX函数开始在expression2中找expression1的位置。
12 两个表联合查询取数据 一个字段去重 另一个字段随机取
select max(随机取的字段) ziduan1 , 需要去重的字段 ziduan2 from biao1 与biao2 的联合 gruop by 需要去重的字段
13 mysql时间字段设置当前值
5.5的版本只支持timestamp 设置now alter table gateway_api MODIFY COLUMN update_date timestamp not null DEFAULT NOW()
5.6应该可以用datetime类型设置默认值 alter table gateway_api MODIFY COLUMN update_date datetime not null DEFAULT NOW()
创建的时候设置: `update_date` timestamp not null DEFAULT NOW() ,