当前位置: 代码迷 >> SQL >> sql小结(一)
  详细解决方案

sql小结(一)

热度:51   发布时间:2016-05-05 14:48:27.0
sql总结(一)
--创建数据库create database dbname--创建表,这里首先创建两个简单的表,tablename 和 tabnamecreate table tablename(id char(4) ,name char(16) not null,sex cahr(2) check(sex in('男','女')))create table tabname(id char(4),tab_name char(16),)/*修改表*/--修改表名Sp_rename '旧表名','新表名'--修改字段名Sp_rename '表名.旧字段名','新字段名','column'--字段修改时不用考虑主键约束,外键约束等,如果有CHECK约束字段名不可改,不能使用alter table修改字段名,计算字段名不可改。--增加字段alter table tablenameadd tel char(11) --删除字段alter tablenamedrop column tel;--给字段增加主键约束alter tablenameadd constraint pk_tablename_001 primary key(id);--给字段增加外键约束alter tabnameadd constraint fk_tabname_001 foreign key(id) references tablename(id);--给字段增加check约束alter tabname with check/with nocheck --在添加条件约束时系统会自动检测表中的原有记录和条件是否冲突,如果冲突则约束无法添加。With check表示检测,可以省略,with nocheck表示不检测,强制添加约束。添加后只能新记录有效。add constraint ck_tabname_001 check(tab_name like 'tab_%');--给字段增加唯一约束alter tabnameadd contraint un_tabname_001 unique(id,tab_name);--开启活关闭约束alter tabnamecheck/nocheck constraint un_tabname_001(all);--删除约束alter tabnamedrop constraint un_tabname_001;-------------------------------------------修改表格的例子------------------------------------------- 新建数据库‘学生管理’create database 学生管理 --新建表格  学生(学号,姓名,性别,年龄,住址)--学号为主键,姓名不允许空,性别的值是男或女,年龄在6到30岁之间,住址默认为‘南京’create table 学生( 学号 char(10) primary key, 性名 varchar(50) not null, 性别 char(2) check(性别 in('男','女')), 年龄 int , 住址 varchar(50) ,constraint ck_xuesheng_nianling check(年龄 between 6 and 30),constraint DF_xuesheng_zhuzhi default '南京') --新建表格  课程(课号,课名,课时)--课号为主键,课名不允许空,课时为正值create table 课程( 课号 char(10) primary key, 课名 varchar(50) not null, 课时 char(10) check(课时>0)) --新建表格  选课(课号,学号)create table 选课( 课号 char(10), 学号 char(10)) -- 修改数据库名为‘student’sp_renamedb '学生管理','student' --修改表格名称,将学生表改为‘xuesheng’,将课程表名改为‘kecheng’,将选课表名改为‘xuanke’sp_rename '学生','xuesheng'sp_rename '课程','kecheng'sp_rename '选课','xuanke' --修改xuesheng表中的字段名,将字段学号改为code,将姓名改为namesp_rename 'xuesheng.学号','code'sp_rename 'xuesheng.姓名','name' --为kecheng表添加字段,字段名为序号,要求自动编号(标识)alter table kecheng add 序号 int identity --修改xuanke表,要求将课号和学号字段设置为非空约束alter table xuanke alter column 课号 char(10) not nullalter table xuanke alter column 学号 char(10) not null --为xuanke表添加外键约束,要求学号被xuesheng表中的学号约束,课号被kecheng表中的课号约束。并且将学号+课号设置为主键码。alter table xuanke add constraint fk_xuanke_xuehao foreign key (学号) references xuesheng(code)alter table xuanke add constraint fk_xuanke_kehao foreign key(课号) references kecheng(课号)alter table xuanke add constraint pk_xuanke_kehao primary key(学号,课号) --删除xuesheng表中的住址字段(注意是否有约束)alter table xuesheng drop constraint DF_xuesheng_zhuzhialter table xuesheng drop column 住址 --为xuesheng表添加字段address要求address的取值只能是‘南京’,‘徐州’,‘苏州’,‘杭州’alter table xuesheng add address varchar(50) check(address in('南京','徐州','苏州','杭州')) --将kecheng表中的课名设置为唯一约束alter table kecheng add constraint un_kecheng_keming unique(课名) --删除xuesheng表中年龄上的约束,并重新添加条件约束,范围改为5到28岁之间。alter table xuesheng drop constraint ck_xuesheng_nianlingalter table xuesheng add constraint eee check(年龄 between 5 and 28)
  相关解决方案