Mysql基础篇之表的操作

WBOY
リリース: 2016-06-07 15:07:31
オリジナル
951 人が閲覧しました

建立表如下: create table User(id int primary key auto_increment,name varchar(10),sex boolean,age int(3)); auto_increment是mysql的特色语句,该属性自动增加,每个都不一样,比较适合作为主键(当然不是必须的)。 多字段主键的代码如下: create ta

建立表如下:

create table User(
id int primary key auto_increment,
name varchar(10),
sex boolean,
age int(3));
ログイン後にコピー
auto_increment是mysql的特色语句,该属性值自动增加,每个都不一样,比较适合作为主键(当然不是必须的)。

多字段主键的代码如下:

create table Student(
stu_id int,
course_id int,
age int,
primary key(stu_id,course_id));
ログイン後にコピー
设置外键代码:
create table Worker(
stu_id int,
Post varchar(33),
Department varchar(33),
constraint ctr foreign key(stu_id) references Student(stu_id));
ログイン後にコピー
对于这个情况外键是单字段,其实可以不用constraint设置一个别名 ctr的,对于多字段的外键约束可以用这样的方法在括号里面多加几个属性用逗号隔开,而用一个别名ctr表示,删除起来比较容易。而如果不用constraint设置 别名,系统也会自动初始化别名,通过show create table Worker;(后面可以加个  \G  使得结果好看一点)命令可以查看到系统生成的别名。

约束除了主键,外键,自动增加,还有not null,unique,default。位置跟主键是一样的。对于default使用方法这样:

number double default 0,

对于表结构查看

describe Worker;
desc Worker;
ログイン後にコピー
这两个是一样的。
对于表名和表属性的修改删除添加,都可以用alter命令搞定。
更改表名:

alter table Student rename pupil;
ログイン後にコピー
修改数据类型:
alter table Student modify course_id varchar(33);
ログイン後にコピー
修改字段名:
alter table Student change course_id course varchar(33);
ログイン後にコピー
新字段名类型可以不改,也可以改,但是不能没有,语法不允许。

增加字段:

alter table Student add phone int(12) after stu_id;
ログイン後にコピー
after可以不写,默认添加在最后一个字段的后面,也可以写first(只有一个first),加字段到开头。字段名可以添加约束,跟建表时的字段语法是一样的。

删除字段:

alter table Student drop phone;
ログイン後にコピー

如果字段是外键,需要在被删除属性名前加个 foreign key

修改字段位置:

alter table Student modify age int(11) first | after stu_id;
ログイン後にコピー
属性名每个都不能多也不能少。。。。。倒霉语法。不过仔细想想也是对的,要移动的字段带着类型可以知道移动范围,而在谁后面只需要找到位置就可以了(-_-反正得找个方法记下来)。
存储引擎也是可以用alter改的:

alter table Student engine=MyISAM;
ログイン後にコピー
删除表就很简单了

drop table Student;
ログイン後にコピー

添加索引

alter table Student add index(stu_id);
ログイン後にコピー

删除主键:

alter table Student drop primary key;
ログイン後にコピー
添加主键:

alter table Student add primary key (stu_id,age);
ログイン後にコピー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート