Mysql数据库学习 (四) 数据库操作(创建删除更新表)

一、 创建数据库: 创建一个具有指定名称的数据库。如果要创建的数据库已经存在,或者没有创建它的适当权限,则语句失败。

create database   数据库名 ;

例如:创建数据库xcy : create database xcy;

二、创建表:在当前数据库下新创建一个数据表。

create table 表名(

列名列类型 [<列的完整性约束>],

列名列类型 [<列的完整性约束>],

       ... ...   );

例如:创建表school ,其由两列组成,第一列属性为非空,并做为主键,并自增

create table school(

  school_id  int(10) not null auto_increment primary key,

  school_namevarchar(20) 

);


常见的完整性约束如下:

PRIMARY  KEY       主码约束 ( 主键 )
UNIQUE  唯一性约束
NOT  NULL  非空值约束 
AUTO_INCREMENT  用于整数列默认自增 1
UNSIGNED    无符号整数
DEFAULT default_value   默认值约束
DEFAULT cur_timestamp 创建新记录时默认保存当前时间(仅适用 timestamp 数据列)
ON UPDATE cur_timestamp 修改记录时默认保存当前时间 (仅适用 timestamp 数据列)
CHARACTER SET name 指定字符集(仅适用字符串)

主键和外键:
数据表之间的关联 / 引用关系是依靠具体的主键( primarykey )和外键( foreign key )建立起来的。
主键:帮助 MySQL 以最快的速度把一条特点的数据记录的位置确定下来。
主键必须是唯一的
主键应该是紧凑的,因此整数类型比较适合
尽量选择单个键作为主键(最少性)
尽量选择数值更新少的列作为主键(稳定性)
•外键:引用另外一个数据表的某条记录。
–外键列类型尽可能与主键列类型保持一致
外键列应该加上 NOT NULL
举例:
主键

create table student(

  sid int not null auto_increment,

  name varchar(20) not null,

  primary key(sid)

);

外键( 自动检查外键是否匹配,仅适用 InnoDB

create table score(

  cid int not null auto_increment primary key,

  score int,

  sid int,

  foreignkey(sid)references student(sid)

);

三、显示表结构:
describe  表名;

    desc     表名;

、删除表以及删除数据库:

drop table  [if exists]  tab_name[,tab_name]... 从数据库中删除给定的表。如果给出if exists 子句,则删除不存在的表不会出错。

drop database [if exists] db_name 删除给定的数据库。如果给出if exists 子句,则删除不存在的数据库不会出错。

五、更改表结构:

alter table 表名action;

action 可以是如下语句:
add 列名建表语句 [first | after 列名 ] 可以为表添加一列,如果没指定first或者after,则在列尾添加一列,否则在指定列添加新列
add primary key ( 列名 ) 为表添加一个主键,如果主键已经存在,则出现错误
add foreign key( 列名 )references 表名 ( 列名 ) 为表添加一个
alter 列名 set default 默认值 可以更改指定列默认值
change 旧列名 新列名 < 建表语句 > [first | after 列名 ] 可以更改列类型和列名称,如果原列的名字和新列的名字相同
modify 列名 < 建表语句 > [first | after 列名 ] 和change的作用相同
drop 列名     //可以删除一列
drop primary key       // 可以删除主键
engine 类型名       // 可以改变表类型
rename as 新表名     // 可以将表名更改



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值