韦德体育在上篇博文mongodb已经成功启动,这样加的列在表的最后

  • 栏目:数据 时间:2020-04-15 22:35
<返回列表

sql 的alert命令是用来修改数据表名,增加列,删除列,修改字段数据类型等.好了下面我们来一个个看实例吧.

MySQL之修改表中的列

MySQL之修改表中的列

修改表中列的语法:

一张表,创建完毕,有了N列。之后还可以增加或删除或修改列

alter table 表名 add 列名称 列类型 列参数; [这样加的列在表的最后]
例:alter table m1 add username char(20) not null default '';

alter table 表名 add 列名称 列类型 列参数 after 某列; [新列加在某列后]
例:alter table m1 add username char(20) not null default '';

如果想增加一列,并位于表的最前面,用first
alter table 表名 add 列名称 列类型 列参数 first;

  

数据库ALTER TABLE语法要添加一列在一个表中,使用下列语法:

例:alter table m1 add pid int not null first;

删除表中列的语法:

alter table 表名 drop 列名;

    在上篇博文mongodb已经成功启动:,接下来就该进行一系列操作了。我们再开一个cmd,输入【mongo】命令打开shell即mongodb的客户端,默认连接的是“test”数据库,我这里设置集合(表)为student。图一:

ALTER TABLE table_name ADD column_name datatype

来看个增加例的实例:

ALTER TABLE tname ALTER COLUMN data year

这样给tname表加上了一个列为data 类型的year字段

上面是在表中加列的语法下面我们再来看看删除列吧 DROP COLUMN column_name

ALTER TABLE table_name DROP COLUMN column_name

来看个删除列实例.

ALTER TABLE Persons DROP COLUMN DateOfBirth

再来修改字段类型:

ALTER COLUMN column_name datatype _id order by w_support desc

P_Id LastName FirstName Address City 1 Hansen Ola Timoteivn 10 Sandnes 2 Svendson Tove Borgvn 23 Sandnes 3 Pettersen Kari Storgt 20 Stavanger

本站整理转载请注明: 

例:alter table m1 drop pid;

修改表中列类型的语法:

韦德体育 ,alter table 表名 modify 列名 新类型 新参数;

韦德体育 1

例:alter table m1 modify gender char(4) not null default '';

修改表中列名及类型的语法:

alter table 表名 change 旧列名 新列名 新类型 新参数;
例:alter table m1 change id uid int unsigned;


下面是在mysql中的操作:

mysql> create table m1(
-> id int unsigned auto_increment primary key
-> );
Query OK, 0 rows affected (0.62 sec)

mysql> desc m1;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
+-------+------------------+------+-----+---------+----------------+
1 row in set (0.14 sec)

mysql> alter table m1 add username char(20) not null default '';
Query OK, 0 rows affected (0.49 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc m1;
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| username | char(20) | NO | | | |
+----------+------------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)

mysql> alter table m1 add birth date not null default '0000-00-00';
Query OK, 0 rows affected (0.46 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc m1;
+----------+------------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| username | char(20) | NO | | | |
| birth | date | NO | | 0000-00-00 | |
+----------+------------------+------+-----+------------+----------------+
3 rows in set (0.01 sec)

mysql> alter table m1 add gender char(1) not null default '' after username;
Query OK, 0 rows affected (0.36 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc m1;
+----------+------------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| username | char(20) | NO | | | |
| gender | char(1) | NO | | | |
| birth | date | NO | | 0000-00-00 | |
+----------+------------------+------+-----+------------+----------------+
4 rows in set (0.01 sec)

mysql> #如果想增加一列,并位于表的最前面,用first
mysql> alter table m1 add pid int not null default '' first;
ERROR 1067 (42000): Invalid default value for 'pid'
mysql> alter table m1 add pid int not null first;
Query OK, 0 rows affected (0.40 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc m1;
+----------+------------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+------------+----------------+
| pid | int(11) | NO | | NULL | |
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| username | char(20) | NO | | | |
| gender | char(1) | NO | | | |
| birth | date | NO | | 0000-00-00 | |
+----------+------------------+------+-----+------------+----------------+
5 rows in set (0.01 sec)

mysql> #删除列
mysql> desc m1;
+----------+------------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+------------+----------------+
| pid | int(11) | NO | | NULL | |
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| username | char(20) | NO | | | |
| gender | char(1) | NO | | | |
| birth | date | NO | | 0000-00-00 | |
+----------+------------------+------+-----+------------+----------------+
5 rows in set (0.01 sec)

mysql> alter table m1 drop pid;
Query OK, 0 rows affected (0.37 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc m1;
+----------+------------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| username | char(20) | NO | | | |
| gender | char(1) | NO | | | |
| birth | date | NO | | 0000-00-00 | |
+----------+------------------+------+-----+------------+----------------+
4 rows in set (0.01 sec)

mysql> alter table m1 modify gender char(4) not null default '';
Query OK, 0 rows affected (0.47 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc m1;
+----------+------------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| username | char(20) | NO | | | |
| gender | char(4) | NO | | | |
| birth | date | NO | | 0000-00-00 | |
+----------+------------------+------+-----+------------+----------------+
4 rows in set (0.05 sec)

mysql> alter table m1 change id uid int unsigned;
Query OK, 0 rows affected (0.44 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc m1;
+----------+------------------+------+-----+------------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+------------+-------+
| uid | int(10) unsigned | NO | PRI | 0 | |
| username | char(20) | NO | | | |
| gender | char(4) | NO | | | |
| birth | date | NO | | 0000-00-00 | |
+----------+------------------+------+-----+------------+-------+
4 rows in set (0.01 sec)

mysql> exit;

----------------------------------------------------------------------------------

欢迎探讨与学习。。。。。。

MySQL之修改表中的列 修改表中列的语法: 一张表,创建完毕,有了N列。之后还可以增加或删除或修改列 alter table 表名...

1. 添加insert

语法:db.集合.insert({“Col1”:”列值1”,”Col2”:”列值2”,…,”Coln”:”列值n”})

2. 查找find

2.1全部查询

语法:db.集合.find()

2.2条件查询

语法:db.集合.find({“Col1”:”列值1”,”Col2”:”列值2”,…,”Coln”:”列值n”})

操作示例:添加+查找

韦德体育 2
 
注意:“_id"这个字段是数据库默认给我们加的GUID,目的是保证数据的唯一性。

3.修改

3.1全部修改update

语法:db.集合.update({“Col”:”列值”},{”Col2”:”列值2”,…,”Coln”:”列值n”})

注意:

第一个参数{…}为“查找的条件”,第二个参数{…}为“要更新的值”;
Update()为全部修改,第二个参数中需要包含全部的”字段”,否则更新后会造数据的丢失,具体影响请见下图示例。

操作示例:全部修改+错误实例

韦德体育 3

3.2.局部修改

Mongodb中为局部修改提供了两个修改器: $inc 和 $set。

 ① $inc修改器
$inc即increase的缩写,自增$inc指定的值,如果“文档”中没有此key,则会创建key。

语法:db.集合.update({"col1":"列值1"},{$inc:{"col2":"列值2",...,"coln":"列值n"}}

 ②  $ set修改器

直接将对应的数据替换为$set指定的值。

语法:db.集合.update({"col1":"列值1"},{$set:{"col2":"列值2",...,"coln":"列值n"}})

操作示例:局部修改+高级修改

韦德体育 4

3.3 upsert操作

Upsert=update+insert,智能判断更新或添加,所以我更愿意称之为高级修改。也就是说:如果查到了文档直接更新,否则在数据库里面新增一条。 将update的第三个参数设为true即可。操作示例见上图。

语法:db.集合.update({"Col":"列值"},{$inc:{"Col2":"列值2",…,"Coln":"列值n"}},true)

3.4批量修改

在前面几个的基础上进行改进,不在多做解释。
语法:db.集合.update({"Col":"列值"},{$inc:{"Col2":"列值2",…,"Coln":"列值n"}},true,true)

操作示例:批量修改

韦德体育 5

4.删除remove

语法:db.集合.remove()
     db.集合.remove({"Col":"列值"},{"Col2":"列值2",…,"Coln":"列值n"})

操作示例:删除

韦德体育 6

(5~6为高级操作,不做详细介绍)

5.分组查询group

操作示例:分组查找

韦德体育 7

6.除重distinct 7.统计count

操作示例:除重+统计

韦德体育 8

    以上是我操作后的实例分享,再次操作一遍感觉收获的更多。还记得刚开始动手操作的时候,关于修改部分只接触了全部修改,当时那时候还以为跟其他数据库操作一样修改就是一个update()方法,所以实践的时候就直接进行了部分修改,后果就像图中显示的一样造成了数据丢失。当时还在想“不会吧,难道只修改一两个字段还要把所有的都写上吗?这也太麻烦了吧。。。”,后来跟旁边的大神周响师哥讨论他告诉我mongodb修改有两种方法也就是上文提到的mongodb专门封装的部分修改的方法。当时貌似当时走了弯路,不过现在想想真的是弯路吗?

上一篇:本文章介绍一篇关于sql中IN与EXISTS,第一个查询使用 EXISTS 而第二个查询使用 下一篇:没有了

更多阅读

韦德体育在上篇博文mongodb已经成功启动,

数据 2020-04-15
sql的alert命令是用来修改数据表名,增加列,删除列,修改字段数据类型等.好了下面我们来一个个...
查看全文

本文章介绍一篇关于sql中IN与EXISTS,第一

数据 2020-04-15
本文章介绍一篇关于sql中IN与EXISTS,NOT IN与NOTEXISTS的详细介绍,有需要了解的同学可以参考一下...
查看全文

参照完整性(完整性约束)是数据库设计中

数据 2020-04-15
问题来源:CSDN Oracle技术论坛 转自: 问题: myepoch提出相同SQL因为检索的值,不同执行效率差...
查看全文

友情链接: 网站地图

Copyright © 2015-2019 http://www.koi-bumi.com. 韦德体育有限公司 版权所有