饿虎岗资源网 Design By www.oxmxm.com
1、声明主键的方法:
您可以在创建表的时候就为表加上主键,如:
CREATE TABLE tbl_name ([字段描述省略...], PRIMARY KEY(index_col_name));
也可以更新表结构时为表加上主键,如:
ALTER TABLE tbl_name ADD PRIMARY KEY (index_col_name,…); /* 创建一个qq表,将qq_id设为主键,且没有对其进行NOT NULl约束 */ create table qq( qq_id int(10), nick_name varchar(255) not null, primary key (qq_id)) /* 插入一条数据,将qq号设为10000(咱也幻想一下),昵称设为"simaopig" */ INSERT INTO qq( qq_id, nick_name ) VALUES ( '10000', 'simaopig');
主键被认为是NOT NULL和UNIQUE约束最好的结合。如果这些列没有被明确地定义为NOT NULL,MySQL会隐含地定义这些列。
2、主键也是索引:
刚才已经说了,主键其实也是索引,甚至在MySQL的术语里面“键”就等于“索引”,所以“外键”一定要先设为“索引”。所以主键也应该和索引一样,既可以作用于单独的字段,又可以作用于多个字段。
举个简的例子吧,我住3单元,501室,我叫小小子,那么只有3单元501室才能在本小区表里面唯一确定我家。因为2单元,501室住着的可能也是个小小子,所以只有两个字段才能唯一确定我,也就是说可以二者组合作为主键。组合的主键,每个列都会隐含定义NOT NULL约束,且其二者加在一起被定义了UNIQUE 惟一约束。
/* 创建防火墙表,将host 和port组合设为主键,注意我没有将port设NOT NULL约束 */ create table firewall( host varchar(11) not null, port smallint(4), access enum('deny', 'allow') not null, primary key (host,port)) /* 插入一条新的记录,没有啥问题 1 row(s) inserted. */ INSERT INTO firewall ( host , port , access) VALUES ( '202.65.3.87', '21', 'deny');
3、设置主键自增
下面我们通过一个实例来讲解设置主键自增的方法:
首先创建数据库,创建表
mysql> create database ssh2;
Query OK, 1 row affected (0.04 sec)
mysql> use ssh2;
Database changed
mysql> create table user( -> id integer primary key, -> firstname varchar(200) not null, -> lastname varchar(200) not null, -> age integer -> );
Query OK, 0 rows affected (0.46 sec)
给主键增加一个自增的功能:
mysql> alter table user modify id integer auto_increment ;
Query OK, 1 row affected (0.28 sec) Records: 1 Duplicates: 0 Warnings: 0
这样,上面的user表里面的主键,id可以自增了。
给上面的主键id增加默认值和自增功能。
mysql> alter table user modify id integer auto_increment ;
Query OK, 0 rows affected (0.39 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table user modify id integer default '1';
Query OK, 0 rows affected (0.16 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table user modify id integer auto_increment ;
Query OK, 1 row affected (0.28 sec) Records: 1 Duplicates: 0 Warnings: 0
MySql获取系统时间:
mysql> alter table user add createtime timestamp default current_timestamp;
Query OK, 2 rows affected (0.17 sec) Records: 2 Duplicates: 0 Warnings: 0
MySql设置主键不能为空,还要自动增长(这里没有设置默认值,但是默认是1,从1开始增长。),还要得到系统默认日期:
mysql> create table dd( -> id int primary key not null auto_increment, -> name varchar(20), -> time timestamp default current_timestamp -> );
Query OK, 0 rows affected (0.10 sec)
mysql> insert into dd(name) values ('fhihgifds');
Query OK, 1 row affected (0.14 sec)
mysql> insert into dd(name) values ('steven');
Query OK, 1 row affected (0.08 sec)
mysql> select * from dd;
+----+-----------+---------------------+ | id | name | time | +----+-----------+---------------------+ | 1 | fhihgifds | 2011-03-27 01:58:46 | | 2 | steven | 2011-03-27 01:59:35 | +----+-----------+---------------------+ 2 rows in set (0.08 sec)
mysql> insert into dd(name) values ('anthony');
Query OK, 1 row affected (0.09 sec)
mysql> select * from dd;
+----+-----------+---------------------+ | id | name | time | +----+-----------+---------------------+ | 1 | fhihgifds | 2011-03-27 01:58:46 | | 2 | steven | 2011-03-27 01:59:35 | | 3 | anthony | 2011-03-27 02:00:07 | +----+-----------+---------------------+ 3 rows in set (0.00 sec)
饿虎岗资源网 Design By www.oxmxm.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
饿虎岗资源网 Design By www.oxmxm.com
暂无评论...
更新日志
2024年11月11日
2024年11月11日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]