表相关操作

来源:互联网 发布:淘宝县级运营中心加盟 编辑:程序博客网 时间:2024/05/18 18:17

创建表

使用T-SQL创建表:

USE database_name           --指向操作的数据库GO        --批处理的标记 CREATE TABLE  Table_name    --新建表(   column_name  数据类型 identity(1000,1) NOT NULL,   ...,   ...    --最后一列不需要逗号)GO
说明:
数据类型:int varchar(),char()..
标识列:identity(a,b) a、b都是正整数,a是开始数,b是增长幅度;标识列不允许为空,一般把标识列设置主键约束;

MySQL创建表

use database_name         --指向操作的数据库create table table_name   --创建表(  id int not null auto_increment,   --列名 数据类型  是否允许空 自动增长 name varchar(20), primary key(id)          --设置id列是主键列 );

约束-sqlserver

  • 非空约束:要求该列不能存在空值;
  • 主键约束:防止主键列重复输入,要求主键列不能为空;
  • 唯一约束:防止非主键列重复输入,允许为空,但只能有一个空值值。数据表中唯一约束可以有多个,但主键约束只能有一个且非空。
  • 检查约束:可以限制某一列的取值范围,把某一列的取值指定在一个范围中。
  • 默认约束:设计某一列的默认值。
  • 外键约束:用于两表或多表之间建立关系,需要指定引用主表中的哪一列。

T-SQL增加约束

alter  table  表名   add constraint   约束名  约束类型  约束的具体说明
约束名 ===》 约束类型_约束列
主键约束(primary key) ---》 PK_id
唯一约束(unique key) ----》UQ_userName
默认约束(default key) ----》DF_Gender
检查约束(check key)  ----》CK_Gender
外键约束(Foreign key)----》FK_sortId
例子1:
alter table userId add constraint PK_id primary key (id)                                        --id列增加主键约束alter table userId add constraint DF_Gender Default ('男') for Gender               --Gender列增加默认约束alter table userId add constraint CK_passWord check(len(passWord)>=6)    --passWord列增加检查约束,限制长度大于等于6
例子2:外键约束:主表--orderInfo    子表---userInfo  外键列userId
alter table userInfo add constraint FK_userId foreign key (userId) references orderInfo (userId)
外键约束需要注意:
主表、子表的数据类型、长度必须完全一样;
外键约束要求引用的表中(子表中)需要设置有主键约束;

向已有数据的表中增加约束

语法:
ALTER TABLE 表名 WITH NOCHECK  add constraint  约束名  约束类型  约束的具体说明
注意:
对表中的现有的数据不坐约束检查,只对约束只有再增加的数据进行检查。

删除约束

ALTER TABLE 表名 DROP CONSTRAINT 约束名 
eg:
alter table  userId drop constraint Pk_id

修改表名

MySQL:
alter table  表名  rename  新表名
sqlserver 存储过程:
EXEC sp_renamedb  'oldname' ,'newname'

列相关操作

增加列

alter table 表名 add 列名   数据类型   是否为空
alter table test2 add gender varchar(4);

删除列

ALTER  TABLE  表名  DROP COLUMN  列名
alter table test2 drop column gender;

修改列名

MySQL:
ALTER  TABLE  表名 CHANGE 旧列名  新列名  数据类型  是否为空
alter table test2 change name userName varchar(10) null;
SQLServer:
EXEC sp_rename   't_student.name','nn','column';
Oracle
lter table bbb rename column nnnnn to hh int;

修改列属性 数据类型、是否为空

MySQL:
ALTER  TABLE 表名 MODIFY  列名 新的数据类型  是否为空
alter table test2 modify id bigint not null;
SQL SERVER:
ALTER  TABLE  表名  ALTER  COLUMN  列名  新的数据类型  是否为空

如何通过一个mysql客服端链接一个mysql远程服务器?
mysql -u 用户名 -p -h 远程主机ip地址 -p 远程的端口号
mysql -u root -p -h localhost -p 3306