mariadb(二)增删改
一.表的结构的增删改
添加数据类型
alter table 表名 add 字段 数据类型; #如果字段存在则会报错 Duplicate column name '字段'
#修改数据类型
alter table 表名 modify 字段 数据类型; #如果出现Truncated incorrect INTEGER value: '小明'的报错则是因为字段与数据类型不符
#更改字段名甚至数据类型。
alter table 表名 change 老字段 新字段 新数据类型; #数据类型可改可不改,注意数据类型的更改要符合本身规则。
#删除字段
alter table 表名 drop 字段;
查看表结构(字符,数据类型,约束)
MariaDB [mysql]> desc s;
+--------+-------------------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------------------------------+------+-----+---------+----------------+
| id | int() unsigned | NO | PRI | NULL | auto_increment |
| name | varchar() | YES | | NULL | |
| age | tinyint() unsigned | YES | | | |
| high | decimal(,) | YES | | NULL | |
| gender | enum('男','女','中性','保密') | NO | | 保密 | |
| cls_id | int() unsigned | YES | | NULL |
插入字段的内容 (insert into 表 values (赋值))
insert into s values(,'酱爆',,192.555,‘男’,)
#格局字段顺序赋予value值,id赋值0但是因为设置了auto_increment的主键,会自动增加为1;
# 甚至可以赋值为default或者null,因为默认自增,综上来说,设置了主键自增的字段,添加数据的时候可以用0,null,default来做占位符。
# 另外往gender的字段内添加数据,可以根据索引来插入。即1为男,2为女..
#不管数据插入是否成功,自增都会生效
查看表内数据
select * from 表名;
MariaDB [mysql]> select * from s;
+----+--------+------+--------+--------+--------+
| id | name | age | high | gender | cls_id |
+----+--------+------+--------+--------+--------+
| | 酱爆 | | 192.56 | 男 | |
| | 酱爆 | | 192.56 | 男 | |
+----+--------+------+--------+--------+--------+
几个报错分析:
1.MariaDB [mysql]> insert into s values(null,'酱爆',,192.455,null,);
ERROR (): Column 'gender' cannot be null #此报错是因为设置gender的null约束为NO,如果不设置的话,就将null默认为一个
字符串插入。另外往gender的字段内添加数据,可以根据索引来插入。即1为男,2为女...
.Invalid default value for 'gender' #此报错是因为前方null字段设置为空,而默认值设置不为空冲突
.column 'gender' has duplicate dvalue'?' in ENUMigned #编码格式改为utf8
Column count doesn't match value count at row 1 #添加的数据个数与字段个数不匹配
3. Field 'id' doesn't have a default value #这是因为id的约束设置为非空值,并且没有默认值和主键自增
部分插入
insert into s (name,age) values('酱爆',)
-> ;
Query OK, row affected (0.002 sec)
# 然后查看
MariaDB [mysql]> select * from s; #*代表所有
+----+--------+------+--------+--------+--------+
| id | name | age | high | gender | cls_id |
+----+--------+------+--------+--------+--------+
| | 酱爆 | | 192.56 | 男 | |
| | 酱爆 | | 192.56 | 男 | |
| | 酱爆 | | 192.46 | 女 | |
| | 酱爆 | | NULL | 保密 | NULL |
+----+--------+------+--------+--------+--------+
这里有两个需要注意的地方:
)id自增和gender为保密,这是因为设置了主键自增和设置了默认值为‘保密’
)high和cls_id为null,因为插入时没有赋值,会默认为null,但是这是建立在null的约束为YES的前提下,不然会报错。
)如果在id的字段内插入值,不能重复
4)插入的汉字数据变成 ?,这是因为数据库字符集格式没改,试着改为utf8.
5)如果没有改变字符集是无法将汉字当作默认值设置表结构的。 插入指定字段(列)的多行信息
insert into 表名 (字段,字段) values(赋值,赋值),(赋值,赋值)
insert into baba (name,age) values('酱爆',),(’熊大‘,);
| | 酱爆 | | NULL | 保密 | NULL |
| | 熊大 | | NULL | 保密 | NULL |
修改字段内数据(限定范围多用where)
update s set name='zz' where name='酱爆';
+----+--------+------+--------+--------+--------+
| id | name | age | high | gender | cls_id |
+----+--------+------+--------+--------+--------+
| | zz | | 192.56 | 男 | |
| | zz | | 192.56 | 男 | |
| | zz | | 192.46 | 女 | |
| | zz | | NULL | 保密 | NULL |
| | zz | | NULL | 保密 | NULL |
| | 熊大 | | NULL | 保密 | NULL |
| | zz | | NULL | 保密 | NULL |
| | 熊大 | | NULL | 保密 | NULL |
修改多个字段的内容(update 表 set ...)
update s set name='baba' ,age= where id=;
MariaDB [mysql]> select * from s;
+----+--------+------+--------+--------+--------+
| id | name | age | high | gender | cls_id |
+----+--------+------+--------+--------+--------+
| | baba | | 192.56 | 男 | |
| | zz | | 192.56 | 男 | |
| | zz | | 192.46 | 女 | |
| | zz | | NULL | 保密 | NULL |
| | zz | | NULL | 保密 | NULL |
| | 熊大 | | NULL | 保密 | NULL |
| | zz | | NULL | 保密 | NULL |
| | 熊大 | | NULL | 保密 | NULL |
+----+--------+------+--------+--------+--------+
删除数据 (delete from 表 + 限定条件)
delete from s where id =;
#如果不用where限定会删除所有表内的数据,慎用
删除用户:delete from user where user=''
删除后添加数据
insert into s (name,age) values('酱爆',);
#查看字段信息(发现id为8的数据删除后,下条增加的数据id为9,这是因为id自增的属性在起作用,有一定的保护作用)
MariaDB [mysql]> select * from s;
+----+--------+------+--------+--------+--------+
| id | name | age | high | gender | cls_id |
+----+--------+------+--------+--------+--------+
| | baba | | 192.56 | 男 | |
| | zz | | 192.56 | 男 | |
| | zz | | 192.46 | 女 | |
| | zz | | NULL | 保密 | NULL |
| | zz | | NULL | 保密 | NULL |
| | 熊大 | | NULL | 保密 | NULL |
| | zz | | NULL | 保密 | NULL |
| | 酱爆 | | NULL | 保密 | NULL |
+----+--------+------+--------+--------+--------+
查看表内数据:select * from 表名;
查看表结构:desc 表名;
查看表结构信息 :show create table 表名;
逻辑删除
1)增加字段并设置默认值为0
alter table s add is_delete bit() default ;
2)插入新信息
insert into s ('name','age') values('baba',),('mama',);
3)查看(发现is_delete字段内容依然空白,这是因为默认为0的数据太小,不能查看到)
MariaDB [mysql]> select * from s;
+----+--------+------+--------+--------+--------+-----------+
| id | name | age | high | gender | cls_id | is_delete |
+----+--------+------+--------+--------+--------+-----------+
| | baba | | 192.56 | 男 | | |
| | zz | | 192.56 | 男 | | |
| | zz | | 192.46 | 女 | | |
| | zz | | NULL | 保密 | NULL | |
| | zz | | NULL | 保密 | NULL | |
| | 熊大 | | NULL | 保密 | NULL | |
| | zz | | NULL | 保密 | NULL | |
| | 酱爆 | | NULL | 保密 | NULL | |
| | hauhua | | NULL | 保密 | NULL | |
| | baba | | NULL | 保密 | NULL | |
+----+--------+------+--------+--------+--------+-----------+
此操作作用在于给逻辑删除的用户标记,0为正常用户,1为逻辑删除用户。
MariaDB [mysql]> insert into s values(null,'酱爆',,192.455,null,)
mariadb(二)增删改的更多相关文章
- MyBatis学习系列二——增删改查
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...
- ThinkPHP 数据库操作(二) : 增删改查
基本使用 可以直接使用数据库运行原生SQL操作了,支持 query (查询操作)和 execute (写入操作)方法,并且支持参数绑定. Db::query('select * from think_ ...
- mybatis入门(二):增删改查
mybatis的原理: 1.mybatis是一个持久层框架,是apache下的顶级项目 mybatis托管到googlecode下,目前托管到了github下面 2.mybatis可以将向prepar ...
- <MySQL>入门二 增删改 DML
-- DML语言 /* 数据操作的语言 插入:insert 修改:update 删除:delete */ 1.插入 -- 插入语句 /* 语法:insert into 表名(列名...) values ...
- mariadb数据库增删改查
1.常用数据类型 1)整数:int, bit 2)小数:decimal #decimal(5,2)表示共有五位数,保留两位小数 3)字符串:varchar, char 4)日期时间:date, ...
- mybatis入门二-----增删改查
一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: <?xml version="1.0&quo ...
- mariadb数据库(2)增删改与 单表查询
一.数据类型 MariaDB数据类型可以分为数字,日期和时间以及字符串值. 使用数据类型的原则:够用就行, 尽量使用范围小的,而不用大的 常用的数据类型 整数:int, bit 小数:decimal ...
- mysql基础之mariadb对表中数据的增删改查
复习: 查看表:show tables; 创建表:create table 表名(字符类型); 删除表:drop table 表名; 对表的结构进行增删改查: 查看表结构:desc 表名; 修改表-添 ...
- 日历插件FullCalendar应用:(二)数据增删改
接上一篇 日历插件FullCalendar应用:(一)数据展现. 这一篇主要讲使用fullcalendar插件如何做数据的增删改,用到了art.dialog web对话框组件,上一篇用到的webFor ...
随机推荐
- [Web 前端] 002 html 常用行行级元素
目录 1. html 常用的行级元素 1.1 链接标签 1.2 a 标签的锚点的使用 1.3 文本标签 1.4 无语义的行级元素 span 1.5 html 中的实体字符 1. html 常用的行级元 ...
- [Python3] 012 元组:list,我们不一样!
目录 0. 元组的独白 1. 元组的创建 2. 元组的特性 (1) 概述 (2) 少废话,上例子 1) 索引 2) 分片 3) 序列运算 4) 成员检测 3. 元组的遍历 (1) 简单总结 (2) 少 ...
- 题解 P5265 【模板】多项式反三角函数
→_→ OI 生涯晚期才开始刷板子题的咱 其实这题就是道公式题,搞过多项式全家桶的同学贴贴板子照着公式码两下都能过... 至于公式的证明嘛...总之贴上公式: \[Arcsin(F)=\int{F'\ ...
- vue中对于图片是否正常加载的思考
问题:由于业务需要,我们需要判断图片能否正常的加载,如果未正常加载的话,需要显示一张默认图片: 方案:1,由于后台返回的是一个图片id数组,例如 imgList=['343313131','21333 ...
- <input>/<textarea>输入框设置默认提示文字(隐藏式)
html代码如下: <tr> <td>签 名:</td> <td><input type="text" nam ...
- css炫酷动画收藏
1.按钮.hover.input动画(cssfx) https://cssfx.dev/ 2.svg 矢量定制icon(ikonate) https://www.ikonate.com/#conten ...
- 常见3种Git服务器的构建
学习Git不同的服务器形式,具体如下: - 创建SSH协议服务器 - 创建Git协议服务器 - 创建HTTP协议服务器 方案: Git支持很多服务器协议形式,不同协议的Git服务器,客户端就可以使用不 ...
- MemCache--01 解决session
目录 1. MemCache介绍 2.Session与Cookie介绍 3. 安装部署Nginx 4. 安装部署PHP 5. 安装Mariadb数据库 6. 部署网站(phpMyAdmin) 7. 部 ...
- 字符串format函数使用
#format拼接字符串,format()内的参数必须为可迭代的对象p1="i am {2},age {1},{0}".format("seven",18,'a ...
- Codeforces 1221F Game With String 思维题
题意:有两个人玩游戏,游戏规则如下:有一个长度为n的字符串,这个字符串由 . 和 X 构成,Alice可以选择a个连续的 . 把它们变成X, Bob可以选择连续的b个 . 把它们变成X.题目中保证a ...