无论SQL SERVER 还是MYSQL 一个表只能存在一个字段是自增长列
1、修改表
--SQL SERVER
alter table table_name
drop column column_name
add column_name 数据类型 [完整性约束]
--mySQL
alter table table_name
drop column_name
add column_name 数据类型 【FIRST|AFTER 列名】

sql server: EXEC sp_rename ‘原有表名’, ‘新表名’;
mysql:alter table 表名 rename TO 新表名
sql server:alter table 表名 rename column A to B
mysql:alter table 表名 change 原来的列名 新列名 数据类型;
mysql:alter table 表名 change column int NOT NULL DEFAULT 100;
sql server:alter table 表名 alter column 字段名 类型 not null
mysql:alter table 表名 modify column 数据类型 【完整性约束】;
mysql:alter table 表名 modify column CHAR(10);
mysql:alter table 表名 change column_old column_new 数据类型 【完整性约束】;
mysql:alter table 表名 change 原来的列名 新列名 数据类型;
mysql:alter table 表名 change column int NOT NULL DEFAULT 100;
sql server:alter table 表名 add default(0) for 字段名 with values
如果字段有默认值,则需要先删除字段的约束,在添加新的默认值,
select c.name from sysconstraints a
inner join syscolumns b on a.colid=b.colid
inner join sysobjects c on a.constid=c.id
where a.id=object_id(‘表名’)
and b.name=‘字段名’
根据约束名称删除约束
alter table 表名 drop constraint 约束名
根据表名向字段中增加新的默认值
alter table 表名 add default (0) for 字段名 with values
mysql: alter table 表名 alter column set default 1000;–修改字段默认值
alter table 表名 alter column drop default;–删除字段默认值
sql server:alter table 表名 drop column 字段名
sql server: drop index index_name
mysql: drop index [indexName] on table

–SQL SERVER


SQL SERVER: @@INDENTITY 、SCOPE_INDENTITY()、以及
select IDENT_CURRENT(表名)
select DISTINCT @@IDENTITY as iden from 表明
MYSQL: select LAST_INSERT_ID()
PHP:
mysql_query (“INSERT INTO insect (name,date,origin)
VALUES(‘moth’,‘2001-09-14’,‘windowsill’)”, $conn_id);
s
e
q
=
m
y
s
q
l
i
n
s
e
r
t
i
d
(
seq = mysql_insert_id (
seq=mysqlinsertid(conn_id);

sql SERVER 修改查看 identity
查看某个表中的自增列当前的值:
DBCC CHECKIDENT (TableName)修改某个表中的自增列当前的值:
DBCC CHECKIDENT (TableName, RESEED, value)
RESEED不是列名,固定写法。>比如我要把 Division 表中的 自增列 的当前值改为 30 可以用如下命令 DBCC CHECKIDENT
(Division, RESEED, 30) 然后用 DBCC CHECKIDENT (Division)
你可以看到显示的是当前值是30
NSERT IGNORE INTO 与 INSERT INTO 的区别就是 INSERT IGNORE INTO 会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。
INSERT IGNORE INTO 当插入数据时,在设置了记录的唯一性后,如果插入重复数据,将不返回错误,只以警告形式返回。 而 REPLACE INTO 如果存在 primary 或 unique 相同的记录,则先删除掉。再插入新记录。


SELECT…INTO OUTFILE语句来简单的导出数据到文本文件上。
1、select * from 表名 into outfile ‘/xxx/xxx/xxx.txt’
可以通过命令选项来设置数据输出的指定格式,以下实例为导出 CSV 格式:
SELECT * FROM passwd INTO OUTFILE ‘/xxx/xxx/xxx.txt’
FIELDS TERMINATED BY ‘,’ ENCLOSED BY ‘"’
LINES TERMINATED BY ‘\r\n’;
SELECT a,b,a+b INTO OUTFILE ‘/tmp/result.text’
FIELDS TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘"’
LINES TERMINATED BY ‘\n’
FROM test_table;

进入哪个数据库
Use 数据库;
查看有数据库
show Databases;
删除数据库
drop database 数据库名称;
查看当前使用的数据库名
select database();
删除表
drop table 表名;
drop table if exists 表名;
插入数据
每次插入一条
insert into 表(列1,列2,…列N) values(值1,值2,。。。值N)
每次插入多条 效率高 sql server 也支持
insert into 表(列1,列2,…列N) values(值1,值2,。。。值N)[,(值1,值2,。。。值N),(值1,值2,。。。值N)]
SQLServer中可以不为自动增长列插入值,
MySQL中需要为自动增长列插入值。
sql server
insert into 表名 values( 不需要包括自增长列)
mysql
insert into 表名 values( 包括自增长列) 或者 insert into 表名(不包括自增长列) values( 不需要包括自增长列)

MySQL
命令行:source xxxx.sql # 把脚本 导入数据库
两者一样,
select col as 别名 from 表 # 关键字 as
select col 别名 from 表 # 空格
select col “xxx” from 表 # 双引号