新建一个testUser表,包含字段如下:
user_id:int 编号自动增长的主键。
user_name: varchar(12) 用户名。
real_name: varchar(12) 姓名。
password: varchar(8) 密码。
sex: int 性别,只能是0或1.
degree: int 学历,只能是1,2,3或者4.
birthday: datetime 生日。对应的SQL语句该怎么写? MySQL

解决方案 »

  1.   

    CREATE TABLE `testuser` (
      `user_id` int(11) NOT NULL auto_increment,
      `user_name` varchar(12) NOT NULL default '',
      `real_name` varchar(12) NOT NULL default '',
      `password` varchar(8) NOT NULL default '',
      `sex` enum('0','1') NOT NULL default '0',
      `degree` enum('1','2','3','4') NOT NULL default '1',
      `birthday` datetime default NULL,
      PRIMARY KEY  (`user_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
      

  2.   

    是中好方法,可能插入数据的时候要注意了,sex 和degree 要当做  字符串来进行处理,他们的类型不是int的!
      

  3.   

    create table dic_sex ( sex int primary key);
    insert into dic_sex values (1),(2);
    create table dic_degree( degree int primary key);
    insert into dic_degree values (1),(2),(3),(4);
    CREATE TABLE `testuser` (
      `user_id` int(11) NOT NULL auto_increment,
      `user_name` varchar(12) NOT NULL default '',
      `real_name` varchar(12) NOT NULL default '',
      `password` varchar(8) NOT NULL default '',
      `sex` int references dic_sex(sex);
      `degree` int references dic_degree(degree);
      `birthday` datetime default NULL,
      PRIMARY KEY  (`user_id`)
    )
      

  4.   

    具体插入什么值  完全可以在程序端控制   你只要设置sex和degree位tinyint类型即可  这样还可以保证扩展性
      

  5.   

    CREATE TABLE `testuser` (
      `user_id` int(11) NOT NULL auto_increment,
      `user_name` varchar(12) NOT NULL default '',
      `real_name` varchar(12) NOT NULL default '',
      `password` varchar(8) NOT NULL default '',
      `sex` enum('0','1') NOT NULL default '0',
      `degree` enum('1','2','3','4') NOT NULL default '1',
      `birthday` datetime default NULL,
      PRIMARY KEY  (`user_id`)
    ) ENGINE=MyISAM DEFAULT CHAR插入值时,直接上int
      

  6.   

    它会在`sex` int references dic_sex(sex)这一行报错
      

  7.   


    create table dic_sex ( sex int primary key);
    insert into dic_sex values (1),(2);
    create table dic_degree( degree int primary key);
    insert into dic_degree values (1),(2),(3),(4);
    CREATE TABLE `testuser` (
      `user_id` int(11) NOT NULL auto_increment,
      `user_name` varchar(12) NOT NULL default '',
      `real_name` varchar(12) NOT NULL default '',
      `password` varchar(8) NOT NULL default '',
      `sex` int references dic_sex(sex),
      `degree` int references dic_degree(degree),
      `birthday` datetime default NULL,
      PRIMARY KEY  (`user_id`)
    )