orcl创建表及管理表,sql添加约束和更改约束
分类:面向对象

 对表中的列进行约束的方式------

ALTER TABLE:添加,修改,删除表的列,约束等表的定义。

Mysql数据库中对表操作sql语句总结

   --创建数据库

  create database school

  --打开数据库

  use school

  --创建表

  create table student

  (

  id int,

  name varchar(20),

  sex char(2),

  age int,

  date datetime,

  info text,

  bak varchar(500)

  )

  --查看表结构

  exec sp_help student

  --修改、添加列(字段)

  alter table student

  add tel varchar(20)

  --删除列(字段)

  alter table student

  drop column bak

  --属性修改

  --修改列名(字段名)

  exec sp_rename 'student.sex','sex2'

  --修改类型

  alter table student

  alter column age char(20)

  --删除表

  drop table student

  -------------------------------表(结构):--------------------------------------------

  ----创建表,查看表结构,修改(增加列、删除列、属性(如姓名、年龄),删除表)

  ---数据的完整性:主键约束、唯一约束、检查性约束、默认约束、外键约束

  create table biao

  (

  id int primary key,

  name varchar(20),

  sex char(2) check(sex='男' or sex='女'),

  age int,

  date datetime,

  info text,

  tel char(16) unique,

  bak varchar(500) default '我是学生'

  )

  create table grade

  (

  id int not null,

  name varchar(20),

  sex char(2),

  age int,

  date datetime,

  info text,

  bak varchar(500)

  )

  alter table grade

  add tel char(16)

  ---增加主键

  alter table grade

  add constraint aa primary key(id)

  ---添加唯一性约束

  alter table grade

  add constraint bb unique(tel)

  ---查看约束

  exec sp_helpconstraint grade

  ---添加检查性约束

  alter table grade

  add constraint sex check(sex='男' or sex='女')

  ---添加默认约束

  alter table grade

  add constraint ccc default '我是好学生' for bak

  ---删除约束

  alter table grade

  drop constraint ccc

  -----------------------------添加约束的格式------------------------------------------

  ---alter table 表名

  ---add constraint 约束名(别名(任意取)) 约束关键字

  ----作业题,7.28-----

  create table shop_jb

  (

  id int primary key,

  namel varchar(20),

  spec varchar(20),

  stock int,

  price float,

  datel datetime default '2010-7-6'

  )

  create table shop_yw

  (

  ywid int primary key,

  name2 varchar(20),

  sex char(2) check(sex='男' or sex='女'),

  age int,

  tel varchar(18) unique,

  address varchar(20)

  )

  create table shop_xs

  (

  id int not null,

  sale char(20),

  quantity char(20),

  date2 datetime default '2010-5-3',

  ywid int

  foreign key(id) references shop_jb,

  foreign key(ywid) references shop_yw

  )

  例如:

  修改表expert_info中的字段birth,允许其为空

  >alter table expert_info change birth birth varchar(20) null;

  1.增加一个字段(一列)

  alter table table_name add column column_name type default value; type指该字段的类型,value指该字段的默认值

  例如:alter table mybook add column publish_house varchar(10) default '';

  2.更改一个字段名字(也可以改变类型和默认值)

  alter table table_name change sorce_col_name dest_col_name type default value; source_col_name指原来的字段名称,dest_col_name

  指改后的字段名称

  例如:alter table Board_Info change IsMobile IsTelphone int(3) unsigned default 1;

  3.改变一个字段的默认值

  alter table table_name alter column_name set default value;

  例如:alter table book alter flag set default '0';

  4.改变一个字段的数据类型

  alter table table_name change column column_name column_name type;

  例如:alter table userinfo change column username username varchar(20);

  5.向一个表中增加一个列做为主键

  alter table table_name add column column_name type auto_increment PRIMARY KEY;

  例如:alter table book add column id int(10) auto_increment PRIMARY KEY;

  6.数据库某表的备份,在命令行中输入:

  mysqldump -u root -p database_name table_name > bak_file_name

  例如:mysqldump -u root -p f_info user_info > user_info.dat

  7.导出数据

  select_statment into outfile"dest_file";

  例如:select cooperatecode,createtime from publish limit 10 into outfile"/home/mzc/temp/tempbad.txt";

  8.导入数据

  load data infile"file_name" into table table_name;

  例如:load data infile"/home/mzc/temp/tempbad.txt" into table pad;

  9.将两个表里的数据拼接后插入到另一个表里。下面的例子说明将t1表中的com2和t2表中的com1字段的值拼接后插入到tx表对应的

  字段里。

  例如:insert into tx select t1.com1,concat(t1.com2,t2.com1) from t1,t2;

  10,删除字段

  alter table form1 drop column 列名;

  补充一个:

  PHP操作MySQL对表增加一列

  于已经建立好的数据库,在一个已经有字段的表内新加字段可用以下方法:

  mysql_query(“ALTER TABLE `表名` ADD `字段` 字段类型”) or die(mysql_error());

  例如,对表article添加字段keywords

  代码:

 代码如下

 

<?php
$link = mysql_connect($servername,$dbusername,$dbpassword);
if (mysql_select_db($dbname)) {
if ($link) {
echo “connect succeed”;
mysql_query(“ALTER TABLE `article` ADD `keywords` varchar(100) NOT NULL default ””) or die(mysql_error());
echo “Add succeed”;
} else {
echo “connect failed”;
}
mysql_close($link);
}
?>

--创建数据库 create database school --打开数据库 use school --创建表 create table student ( id int, name varchar(20), sex...

常用的字段数据类型:

例如对表 reader 中的 readersex 列只能填‘男'OR'女'

  • 查看列:desc 表名;
  • 修改表名:alter table t_book rename to bbb;
  • 添加列:alter table 表名 add column 列名 varchar(30);
  • 添加带注释的列:alter table directory add index_url varchar(256) default null comment '章节书目链接' after dir_url;
  • 删除列:alter table 表名 drop column 列名;
  • 修改列名MySQL: alter table bbb change nnnnn hh int;
  • 修改列名SQLServer:exec sp_rename't_student.name','nn','column';
  • 修改列名Oracle:lter table bbb rename column nnnnn to hh int;
  • 修改列属性:alter table t_book modify name varchar(22);

.字符串(varchar2(n)) n表示保存最大长度,基本200作用。
.整数(number(n)) n位的整数,也可用int代替
.小数(number(n,m)) m为小数位,n-m为整数位,有时候用float代替
.日期(date) 存放日期
.大文本(clob) 存储海量文字(4G)
.大对象(blob) 存放二进制数据,电影,图片,文字,mp3

alter table reader add check(readersex='男'or readersex='女')

sp_rename:SQLServer 内置的存储过程,用与修改表的定义。


接下来这个是当我们在表中的一个字段中没有定义默认值是可以这样做---

 

1、创建表:

--alter table book drop constraint gb;
--alter table book add constraint gb default getdate() for gb;

 

create table 表名称 (字段1 数据类型[default 默认值][primary key],...) 

book 为table           gb 是要该表的字段  

MySQL 查看约束,添加约束,删除约束 添加列,修改列,删除列

create table bqh3 (name varchar2(20) not null, sfz number(18) ,dz varchar2(30),constraint pk_sfz primary key (sfz));

这个的一般形式为

 

2、表数据及表的复制:

alter table 表名 drop constraint 约束名字  

  • 查看表的字段信息:desc 表名;
  • 查看表的所有信息:show create table 表名;
  • 添加主键约束:alter table 表名 add constraint 主键 (形如:PK_表名) primary key 表名(主键字段);
  • 添加外键约束:alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
  • 删除主键约束:alter table 表名 drop primary key;
  • 删除外键约束:alter table 表名 drop foreign key 外键(区分大小写);

  • 修改表名:alter table t_book rename to bbb;

  • 添加列:alter table 表名 add column 列名 varchar(30);
  • 删除列:alter table 表名 drop column 列名;
  • 修改列名MySQL: alter table bbb change nnnnn hh int;
  • 修改列名SQLServer:exec sp_rename't_student.name','nn','column';
  • 修改列名Oracle:alter table bbb rename column nnnnn to hh int;
  • 修改列属性:alter table t_book modify name varchar(22);
  •  MySQL修改字段默认值

      解决

      alter table topic alter column cateId set default '2';

      语法

      alter table表名alter column字段名drop default; (若本身存在默认值,则先删除)

      alter table 表名 alter column 字段名 set default 默认值;(若本身不存在则可以直接设定)

  • 添加带默认值,带字段描述的列:ALTER TABLE jz_order ADD COLUMN delay_delivery tinyint(3) DEFAULT 0 COMMENT '是否延期收货,0:表示没有延期,1:第一次延期 2:第二次延期' AFTER c_userid;

cerate table bqh (select * from 已知表)----从已知表中只复制数据

  1. 说明:删除表的字段的原有约束  
  2. alter table 表名 add constraint 约束名字 DEFAULT 默认值 for 字段名称  
  3. 说明:添加一个表的字段的约束并指定默认值

 

create table bqh as selec * from 已知表; -----从已知表中复制数据和表结构

(无约束名字时可以写上字段名称 同时可以不用删除原有约束【原来就没有约束】)

 

create table bqh as select  字段1,字段2 from 已知表 where 1=2;----从已知表复制指定字段包含数据

 

create table bqh as select * from 已知表 where 1=2; ----从已知表中复制结构但不包含表数据

sp_rename:SQLServer 内置的存储过程,用与修改表的定义。

3、插入数据:

 

insert into 表名 [(字段1,字段2)] values (值1,值2)----字段与列一一对应

INSERT IGNORE 与INSERT INTO的区别就是INSERT IGNORE会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。
eg:
insert ignore into table(name)  select  name from table2

insert into bqh (name,sfz,dz) values ('小白',130684,'XX区1幢');

 

insert into 表名 values 所有列的值;--------可以省略字段

 

insert into bqh  values ('小白',130684,'XX区1幢');

MySQL 相关数据库、表、表结构等显示命令

1、显示数据库列表。
show databases;
2、显示库中的数据表:
use mysql;
show tables;
3、显示数据表的结构:
describe 表名;
4、建库:
create database 库名;
5、建表:
use 库名;
create table 表名 (字段设定列表);
6、删库和删表:
drop database 库名;
drop table 表名;
7、将表中记录清空:
delete from 表名;

4、更新数据:

update 表 set 列=新的值 ----更新所有的数据

update bqh set sfz=130636

update 表 set 列=新的值 [where 条件] -----更新满足条件的数据

update bqh set sfz=130636 where name='小白'


select * from 表 for update   ----手动更新的数据

select * from bqh  for update

select * from 表 for update where 条件

select * from bqh  for update where sfz=130636  -----手动更新满足条件的数据

5、删除数据:

delete from 表名称 [where 删除条件...]

delete from 表名 where 条件 -----删除满足条件的数据

delete from bqh where sfz=130636;

delete frombqh ----删除所有数据

commit; 

rollback; 

 

查看回收站:show recyclebin

恢复表:flashback table 表名称 to before drop

例如:flashback table bqh to before drop

恢复表数据:rollback

例如:delete from bqh;

           rollback;

注意:

①事物的回滚:ROLLBACK 更新操作回到原点。

②事物的提交:COMMIT 真正的更新,一旦提交无法回滚。

6、修改表结构:

alter table 表名称 add (列名称 数据类型 [default 默认值,...]) -----增加表字段

alter table bqh add (jf number(3) default 20)

alter table bqh modify (zf number(2) default 10) ------修改表字段

alter table bqh drop zf --------删除表字段

7、添加约束:

非空约束:not null不希望某字段为空

create table bqh (xh number,xm varcher2(20) not null)

唯一约束:unique 不希望某字段有重复值

create table bqh (xh number,xm varcher2(20) not null,email varchar2(50) unique)

指定唯一约束错误提醒:

create table bqh (xh number,xm varcher2(20) not null,email varchar2(50),constraint uk_email unique(email))

主键约束:primary key 非空约束+唯一约束例,如身份证

create table bqh (xm varcher2(20) not null,sfz number,constraint pk_sfz primary key (sfz))

检查约束:为某数据增加过滤条件,例如:年龄范围,性别等

create table bqh (xm varcher2(20) not null,xb varcher2(10) not null,age number(3),constraint ck_xb check (xb in ('男','女')),constraint ck_age check (age between 0 and 150))

外键约束:约束在两张(父子)表中进行,即字表某个字段的取值由父表决定。

例如:每个人有多本书,父表(人),子表(书)

create table xm (bh number,name varchar2(20) not null,constraint pk_bh primary key (bh))

create table book (bookname varchar2(20) not null,bh number,constraint fk_bh foreign key(bh) references xm(bh))

删除数据时,如果主表中的数据有对应子表数据,应先删除子表记录,再删主表记录。但操作不方便,即可以建立外键约束的时候指定一个级联删除功能,当删除主表数据后,对应的子表中的数据相关联的数据希望将其设置为空。

create table xm (bh number,name varchar2(20) not null,constraint pk_bh primary key (bh))

create table book (bookname varchar2(20) not null,bh number,constraint fk_bh foreign key(bh) references xm(bh)on delete set null)

8、修改约束:

为表增加约束

alter table 表名 add constraint 约束名称 约束类型(字段)

删除表中的约束

alter table 表名 drop constraint 约束名称

9、删除表:

drop table 表

drop table xm cascade constraint purge;  --------强制性删除表,不关心约束条件

drop table book cascade constraint purge; --------强制性删除表,不关心约束条件

感谢您的阅读,如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮。本文欢迎各位转载,但是转载文章之后必须在文章页面中给出作者和原文连接。

本文由10bet手机官网发布于面向对象,转载请注明出处:orcl创建表及管理表,sql添加约束和更改约束

上一篇:没有了 下一篇:没有了
猜你喜欢
热门排行
精彩图文