问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么在linux的终端中用mysql创建一个表格

发布网友 发布时间:2022-04-30 20:07

我来回答

2个回答

懂视网 时间:2022-05-01 00:28

语句

Create Table: CREATE TABLE `student` (

  `id` int(4) NOT NULL,

  `name` varchar(16) NOT NULL,

  `score` int(1) DEFAULT ‘0‘

) ENGINE=InnoDB DEFAULT CHARSET=utf8



增加主键

alter table student change id id int primary key auto_increment ;

一般不需要修改主键,但有时建表的时候忘记了加,要后补就可以这样写

格式是alter table <表名> change <旧字段名> <新字段名>  字段属性,这里的auto_increment也是后补上去的。

mysql> desc mydb.student;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(16) | NO   |     | NULL    |                |
| score | int(1)      | YES  |     | 0       |                |
+-------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)


添加索引

mysql>  alter table mydb.student add index name(name);
Query OK, 0 rows affected (0.63 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc mydb.student;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(16) | NO   | MUL | NULL    |                |
| score | int(1)      | YES  |     | 0       |                |
+-------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

那个name(name)其实是索引名(字段名),索引名字可以自行定义。成功后,在desc里可以看到key显示MUL。


删除索引

alter table mydb.student drop index name;

这里的name是索引的名字


查看索引

show index from mydb.student;    
+---------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table   | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+---------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| student |          0 | PRIMARY  |            1 | id          | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
+---------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
1 row in set (0.00 sec)


创建部分内容的索引

有些内容比较长,但其中前几个字符已经是唯一的情况下,即可使用这几个字符形成索引。

例如使用name的前4个字符形成索引

mysql> create index index_name on mydb.student (name(4));
Query OK, 0 rows affected (0.20 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc mydb.student;                                            
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(16) | NO   | MUL | NULL    |                |
| score | int(1)      | YES  |     | 0       |                |
+-------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
mysql>  show index from mydb.studentG;
*************************** 1. row ***************************
        Table: student
   Non_unique: 0
     Key_name: PRIMARY
 Seq_in_index: 1
  Column_name: id
    Collation: A
  Cardinality: 0
     Sub_part: NULL
       Packed: NULL
         Null: 
   Index_type: BTREE
      Comment: 
Index_comment: 
*************************** 2. row ***************************
        Table: student
   Non_unique: 1
     Key_name: index_name
 Seq_in_index: 1
  Column_name: name
    Collation: A
  Cardinality: 0
     Sub_part: 4
       Packed: NULL
         Null: 
   Index_type: BTREE
      Comment: 
Index_comment: 
2 rows in set (0.00 sec)

ERROR: 
No query specified

看2. Row的Sub_part


关于索引类型,参考http://blog.sina.com.cn/s/blog_6fd335bb0100v1lm.html



创建联合索引

在上面索引的基础上,输入多个字段名用以创建一个联合索引

例如

mysql> create index index_id_name on mydb.student (id,name(4));    
Query OK, 0 rows affected (0.13 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show index from mydb.student G
*************************** 1. row ***************************
        Table: student
   Non_unique: 0
     Key_name: PRIMARY
 Seq_in_index: 1
  Column_name: id
    Collation: A
  Cardinality: 0
     Sub_part: NULL
       Packed: NULL
         Null: 
   Index_type: BTREE
      Comment: 
Index_comment: 
*************************** 2. row ***************************
        Table: student
   Non_unique: 1
     Key_name: index_name
 Seq_in_index: 1
  Column_name: name
    Collation: A
  Cardinality: 0
     Sub_part: 4
       Packed: NULL
         Null: 
   Index_type: BTREE
      Comment: 
Index_comment: 
*************************** 3. row ***************************
        Table: student
   Non_unique: 1
     Key_name: index_id_name
 Seq_in_index: 1
  Column_name: id
    Collation: A
  Cardinality: 0
     Sub_part: NULL
       Packed: NULL
         Null: 
   Index_type: BTREE
      Comment: 
Index_comment: 
*************************** 4. row ***************************
        Table: student
   Non_unique: 1
     Key_name: index_id_name
 Seq_in_index: 2
  Column_name: name
    Collation: A
  Cardinality: 0
     Sub_part: 4
       Packed: NULL
         Null: 
   Index_type: BTREE
      Comment: 
Index_comment: 
4 rows in set (0.00 sec)
可以看到第3、4行的key_name是一样的

删除联合索引也是一样用索引名字即可

mysql> drop index index_id_name on mydb.student;  
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0


创建单一索引,在关键字index前加unique关键字

mysql> create unique index index_id_name on mydb.student (id,name(4));
Query OK, 0 rows affected (0.23 sec)
Records: 0  Duplicates: 0  Warnings: 0



Linux学习笔记:MySQL创建表

标签:mysql

热心网友 时间:2022-04-30 21:36

直接用命令就行了啊,先进入mysql,再选择database,然后create table就行了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女人梦见蛇的七大预兆解梦 PHOTOSHOP 怎么把眼睛点大 这些月销量10000+的防晒霜,是噱头还是真的好用? 大宝水凝保湿防晒露适合哪些肤质的人使用? 拥有人口过亿的国家最多的大洲是( )A.非洲B.亚洲C.欧洲D.大洋 世界国家最多的大洲是:( ) A.亚洲 B.大洋州 C.非洲 D.欧 拥有人口过亿的国家最多的大洲是:( ) A.非洲 B.亚洲 C.欧洲 D.大洋 餐厅一般中餐都有哪些摆台要求和标准 如何做味道正宗的中餐? 河南文科跟理科高考分数线相差多少 62分奇迹,库里再次证明自己,为何网友却说这并不是好事? 2012年库里nba录像 库里砍下62分,他的状态是已经回暖了吗? 库里对阵开拓者比赛爆砍62分,他算不算是正常发挥了? 勇士137:122大胜开拓者,库里62分,你如何评价这场比赛? 真把勇士不当盘菜了,库里是如何打出63分精彩表现的? 单场砍下62分,库里出手31次。麦迪37次,科比数据如何呢? 库里狂砍62分,喜欢库里的你什么心情? 库里狂砍六十二分成为现役60分先生之一,NBA一共有几位60分先生? 库里砍下62分,创生涯得分新高,他拿下这一成绩是实力还是运气? 库里62分破新高,库日天终于回来了吗? 库里62分创生涯新高,那个库日天回来了吗? 库里62分创生涯新高,库里的人生辉煌成就都有哪些? OPPO手机控制中心是做什么? 勇士复仇开拓者,库里砍下62分,这是怎样的成绩? 库里62分是哪场比赛? oppoa3怎么关闭横屏 控制中心的使用方法介绍 oppo控制中心怎么关闭 免费申请短的qq号码 怎样申请QQ靓号 如何注册 怎样申请QQ号拜托了各位 谢谢 数控铣端面打中心孔钻床的指令有那些 汽车半轴数控铣面、打中心孔机床怎么操作面板和编程? 数控加工中心直线打23个孔,怎么编程 家里的香蕉快要放坏掉了 有什么好的方法保鲜 或者是用于别的什么 红富士和红香蕉那个营养好? 买来的红香蕉是生的,放了十几天才变软,吃起来是苦的,是变质了吗?_百度... 鲜红果贮存方法? oppo新版本怎么截长图 求炫舞情侣名字(越黄越好)谢谢谢谢啦 要特殊符号 要那种非常嗨的情侣网名 要黄黄的 ,还有头像 但是要色的委婉 头像也是 娘家修房钱是女婿出的协议怎样写? 求几个比较黄的情侣网名? 因施工损坏房屋赔偿协议 求黄 一点的 情侣网名、。 两个姓黄怎么取情侣网名 有‘’黄‘’和‘’远‘’的情侣网名 农民的土地,并以农民的名义我修房子,合同书怎么写? 女朋友姓黄 我姓周情侣网名怎么好听? 甘肃修住房甲乙两方合同怎么写? 农村修房写了协议书签了字,但没有按手印,协议书没写多久完成,但口头承诺7月30日完成,到时没有修起