drop table if exists news; --如果存在表则删除
create table news --创建表
(
id int unsigned not null auto_increment,
title varchar(30) not null default ‘‘ comment ‘新闻标题‘,
class_id int unsigned not null default ‘0‘ comment ‘所属分类的id‘,
content text not null comment ‘详情‘,
primary key(id),
index `i_title`(title), index `i_class_id`(class_id)
) engine=‘innodb‘ default charset utf8 comment = ‘新闻表‘;--设置引擎为innodb 默认编码为utf8
drop table if exists news_class;
create table news_class
(
id int unsigned not null auto_increment,
class_name varchar(10) not null default ‘‘ comment ‘分类名称‘,
primary key(id),
index `i_class_name`(class_name)
) engine=‘innodb‘ default charset utf8 comment="新闻分类表";
-- 分类, php新闻 id=1 linux新闻 id=2 mysql新闻 id=3 其下 新闻
insert into news_class (class_name) values (‘php新闻‘),(‘Linux新闻‘),(‘Mysql新闻‘);--插入数据库3条数据
insert into news(title,class_id,content) values --批量插入数据
(‘php新闻1‘,‘1‘,‘详情‘),
(‘php新闻2‘,‘1‘,‘详情‘),
(‘linux新闻1‘,‘2‘,‘详情‘),
(‘linux新闻2‘,‘2‘,‘详情‘),
(‘未知分类新闻‘,‘4‘,‘详情‘);
--以下是参考写入数据的方法replace into news_class(class_name) values(‘测试‘)
insert into news_class set class_name=‘abc‘;
mysql建表测试
时间: 2024-10-18 04:48:52
mysql建表测试的相关文章
Mysql 建表时,日期时间类型选择
mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示 DATETIME 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 9999-12-31 23:59:59 0000-00-00 00:00:00 TIMESTAMP 4 bytes YYYY-MM-DD HH:MM:SS 197001010
Mysql建表与索引使用规范详解
一. MySQL建表,字段需设置为非空,需设置字段默认值. 二. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL. 三. MySQL建表,如果字段等价于外键,应在该字段加索引. 四. MySQL建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,是否默认值,需保持一致,否则无法正确使用索引进行关联对比. 五. MySQL使用时,一条SQL语句只能使用一个表的一个索引.所有的字段类型都可以索引,多列索引的属性最多15个. 六. 如果可以在多个索引中进行选择,My
mysql建表出现Timestamp错误
mysql建表时如果有两个或以上的字段为Timestamp,那么可能会出现如下错误: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE 原因是当你给一个timestamp设置为on updatecurrent_timestamp的时候,其他的timestamp字段需要显式设定default值 但是如果你有两个timest
【记录】Mysql 建表注意事项
博主最近打算搭建商城,由于之前对建表只有很浅显的理解,没有太过深入了解,建表过程中遇到一些问题,现记录如下, 如有问题请各位留言指正,感激不尽: 建表时设置如何设置联合主键?如下标红处: CREATE TABLE `product_price` ( `product_id` int(12) NOT NULL COMMENT '商品ID', `price_category_id` int(12) NOT NULL DEFAULT '0' COMMENT '价格类型ID', `price_descr
三、MySQL建表模板
1. 建表模板 SET FOREIGN_KEY_CHECKS=0; DROP TABLE IF EXISTS `g_test`; CREATE TABLE `g_test` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', `begin_time` timestamp NULL
mysql建表设置两个默认CURRENT_TIMESTAMP的技巧
转载:http://blog.163.com/user_zhaopeng/blog/static/166022708201252323942430/ 业务场景: 例如用户表,我们需要建一个字段是创建时间, 一个字段是更新时间. 解决办法可以是指定插入时间,也可以使用数据库的默认时间. 在mysql中如果设置两个默认CURRENT_TIMESTAMP,会出现这样的错误. ERROR 1293 (HY000): Incorrect table definition; there can be onl
(转)MySQL建表设置两个默认CURRENT_TIMESTAMP的技巧
业务场景: 例如用户表,我们需要建一个字段是创建时间, 一个字段是更新时间. 解决办法可以是指定插入时间,也可以使用数据库的默认时间. 在mysql中如果设置两个默认CURRENT_TIMESTAMP,会出现这样的错误. ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE claus
关于MySQL建表对DML的影响【转】
本文来自这里 今天一位同学问到线上曾经碰到过连续建表,导致阻塞普通的insert.update等.不过也没有保留现场.因此有疑问为什么建表会影响DML? 分析 首先这个现象不是在所有场景都会碰到(否则MySQL的用户们早就跳起来了). 一来建表这个操作本身很快,只涉及到写表定义文件和初始化表空间.中间涉及到redo和undo的操作也很少(这里只讨论InnoDB表).因此除非碰到磁盘IO响应不了,否则多数情况下建表操作很快结束,不会"稳定复现" 二来即使由于io原因,建
mysql 建表、查表、查表结构
进入数据库: 1 mysql> use sunshine_blog;输出: 2 Database changed 查数据库表: 1 mysql> show tables;输出: 2 +-------------------------+ 3 | Tables_in_sunshine_blog | 4 +-------------------------+ 5 | test | 6 | user | 7 +-------------------------+ 8 2 rows in set (0