mysql 增删查改
非关系型数据库
关系型数据库
Oracle mysql sqlserver db2 Postgresql Sqlite access
sqlserver 微软
db2 ibm
========================================
数据库: 一些关联表的集合
主键: 主键是唯一的 标识
外键: 用于关联两个表
复合键:
索引: 把一个字段做优化
参照完整性: 引用的实体必须要存在
二叉树:
==============================================
mysql 增删查改
offset 偏移量
limit
limit必须要和offset联合使用不能单独使用
mysql中%表示匹配所有
查找
select * from student where sname like "宋%";
修改:
update student set sname="赵丽颖",gender="女" where sid="4";
删除:
delete from student where sid>12;
==============================================
排序: order by
asc 升序 desc降序
mysql中默认是升序
select * from student order by class_id desc; #降序
select * from student order by class_id; #默认升序
分组排序: group by
将查询的数据可以按照某个字段来分组(字段中不同的值即为一个组)
如:将student表中按照class_id(班级)分组,同时统计每个班级的人数.
mysql> select * from student;
+-----+-----------+--------+----------+
| sid | sname | gender | class_id |
+-----+-----------+--------+----------+
| 1 | 张三 | 男 | 4 |
| 2 | 李四 | 男 | 4 |
| 3 | 王五 | 男 | 3 |
| 4 | 赵丽颖 | 女 | 3 |
| 5 | 宋2 | 男 | 3 |
| 6 | 宋3 | 女 | 3 |
| 7 | 宋4 | 女 | 3 |
| 8 | 宋5 | 女 | 3 |
| 9 | 成龙1 | 男 | 4 |
| 10 | 成龙2 | 男 | 4 |
| 11 | 成龙3 | 女 | 4 |
| 12 | 成龙4 | 女 | 4 |
| 15 | 李白 | 男 | 3 |
| 16 | 林允儿 | 女 | 1 |
+-----+-----------+--------+----------+
14 rows in set (0.00 sec)
mysql> select class_id,count(*) from student group by class_id;
+----------+----------+
| class_id | count(*) |
+----------+----------+
| 4 | 6 |
| 3 | 7 |
| 1 | 1 |
+----------+----------+
3 rows in set (0.00 sec)
使用 WITH ROLLUP
WITH ROLLUP 可以统计该字段数据的总和
mysql> select class_id,count(*) from student group by class_id with rollup;
+----------+----------+
| class_id | count(*) |
+----------+----------+
| 1 | 1 |
| 3 | 7 |
| 4 | 6 |
| NULL | 14 |
+----------+----------+
4 rows in set (0.00 sec)
这里的NULL表示三个班级的总人数
我们可以使用 coalesce 来设置一个可以取代 NUll 的名称,coalesce 使用如下:
mysql> select coalesce(class_id,"总人数"),count(class_id) as number from student group by class_id with rollup;
+--------------------------------+--------+
| coalesce(class_id,"总人数") | number |
+--------------------------------+--------+
| 1 | 1 |
| 3 | 7 |
| 4 | 6 |
| 总人数 | 14 |
+--------------------------------+--------+
4 rows in set (0.00 sec)
添加字段:
mysql enum是指字段的类型 表示枚举类型
mysql> alter table student add adders enum("sichuang","shanghai");
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
这里表示在student表中添加一个adders的字段,这个字段里面的值只能是sichuang 或者shanghai 如果添加的一行新的数据不为这两个值则会报错,(如果允许了可以为空,那么让其为空也是可以)
否则插入一个其他的值则会报错,如下:
mysql> insert into student (sname,gender,class_id,adders) values("李自成1","男","1","aaaa");
ERROR 1265 (01000): Data truncated for column 'adders' at row 1
删除字段:
删除adders字段:
mysql> alter table student drop adders;
Query OK, 0 rows affected (0.19 sec)
Records: 0 Duplicates: 0 Warnings: 0
修改字段数据类型(modify和change都可以修改):
mysql> alter table student modify sname char(16);
Query OK, 15 rows affected (0.16 sec)
Records: 15 Duplicates: 0 Warnings: 0
使用change修改字段类型的时候需要,即使不修改字段名称但是也要把原名称写上,否则会报错
mysql> alter table student change name name varchar(32) not null;
Query OK, 15 rows affected (0.03 sec)
Records: 15 Duplicates: 0 Warnings: 0
修改字段名称: (只能是用change)
注意修改字段名称只能是用change,modify不能修改字段名称。
mysql> alter table student change gender sex char(32) not null;
Query OK, 15 rows affected (0.11 sec)
Records: 15 Duplicates: 0 Warnings: 0
ALTER TABLE 对 Null 值和默认值的影响
当你修改字段时,你可以指定是否包含只或者是否设置默认值。
以下实例,指定字段 j 为 NOT NULL 且默认值为100 。
mysql> ALTER TABLE testalter_tbl
-> MODIFY j BIGINT NOT NULL DEFAULT 100;
修改表名:
mysql> alter table student rename student_new;
Query OK, 0 rows affected (0.07 sec)
查看表的创建命令记录:
mysql> show create table student_new;
+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| student_new | CREATE TABLE `student_new` (
`sid` int(32) NOT NULL,
`name` varchar(32) NOT NULL,
`sex` char(32) NOT NULL,
`class_id` int(11) NOT NULL,
`phonenumber` enum('181') DEFAULT NULL,
PRIMARY KEY (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
===============================================
mysql 增删查改的更多相关文章
- php mysql增删查改
php mysql增删查改代码段 $conn=mysql_connect('localhost','root','root'); //连接数据库代码 mysql_query("set na ...
- node.js+mysql增删查改
数据库和表: -- -- 数据库: `test` -- -- -------------------------------------------------------- -- -- 表的结构 ` ...
- 后端Spring Boot+前端Android交互+MySQL增删查改(Java+Kotlin实现)
1 前言&概述 这篇文章是基于这篇文章的更新,主要是更新了一些技术栈以及开发工具的版本,还有修复了一些Bug. 本文是SpringBoot+Android+MySQL的增删查改的简单实现,用到 ...
- 后端Spring Boot+前端Android交互+MySQL增删查改
2021.1.27 更新 已更新新版本博客,更新内容很多,因此新开了一篇博客,戳这里. 1 概述 使用spring boot作为后端框架与Android端配合mysql进行基本的交互,包含了最基本的增 ...
- MySQL 增删查改 必知必会
MySQL 数据库中的基础操作 3.表的修改 对表的表名.字段.字段类型.字段长度.约束等进行修改. 3.1 表的名称修改 -- 语法: ALTER TABLE 库名.表名 RENAME TO 新表名 ...
- python操作mysql增删查改
# coding=utf-8 ''' python操作mysql,需安装MySQLdb驱动 安装MySQLdb,请访问 http://sourceforge.net/projects/mysql-py ...
- 2016/3/13 MySQL 增删查改 CRUD 用代码实现
用代码实现数据库数据输入 T-SQL语句 查询语句分几块 ①创建表 create table Car (Code varchar(50) primary key, #primary key 主键 定义 ...
- MySQL增删查改语句(入门)
目录 create alter: insert delete update select 数据库定义语句: create:创建数据库及表对象 drop:删除数据库及表对象 alter:修改数据库及表对 ...
- mysql增删查改练习
建表 班级表 create table class( cid int auto_increment unique, caption varchar(32) not null default '' )c ...
随机推荐
- bzoj2660最多的方案——数位DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2660 首先,多种方案的出现是因为一个较大的斐波那契数可以变成两个较小的: 用一个01串来表示 ...
- cocos2dx 游戏开发中常用场景切换方式以及特性
runWithScene(CCScene* scene):启动游戏,并运行scene 场景.这个方法在主程序启动时第一次启动主场景时调用. replaceScene(CCScene* scene) ...
- hdoj1166【线段树】
单点更新+区间求和 不多说,直接上渣code--- #include<cstdio> #include<iostream> #include<string.h> # ...
- python 类装饰器
class Test(): def __init__(self, func): print('装饰器1') self.__func = func def __call__(self): print(' ...
- try/except/finally
Python也不例外,跟其他高级语言一样,内置了一套try...except...finally...的错误处理机制 当认为某些代码可能会出错时,就可以用try来运行这段代码 使用try时,要么exc ...
- poj1273 Drainage Ditches 基础网络流
#include <iostream> #include <queue> using namespace std; ][]; ]; //路径上每个节点的前驱节点 ]; int ...
- 跟我一起玩Win32开发(14):用对话框作为主窗口
前面我们在编写Win32应用程序的思路都是: 1.设计窗口类.2.注册窗口类.3.创建窗口.…… 然而,当我们接触控件以后, 会发现一个问题,我们在窗口上放置控件实在不好弄,而资源中的对话框具有图形编 ...
- Salazar Slytherin's Locket CodeForces - 855E
Salazar Slytherin's Locket CodeForces - 855E http://www.cnblogs.com/ftae/p/7590187.html 数位dp: http:/ ...
- 解决 Cordova命令突然无法使用问题.
问题背景 之前一直在做 Cordova 方面, 然后准备自己尝试使用 Vue + WebPack 再配合 Cordova 做一个 App . 更新了 npm , 然后然后, 我的 cordova 这个 ...
- Python Unicode and str
http://stackoverflow.com/questions/18034272/python-str-vs-unicode-types unicode is a character set. ...