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 ...
随机推荐
- dos窗口出现error:could not open ...jvm.cfg解决方法
在cmd程序中,运行javac -version查看jdk是多少位时出现错误 error:could not open ...jvm.cfg解决方法 出现这种情况大多是因为电脑上之前安装过JDK,卸载 ...
- 如何给lemon开无限栈
进入终端 输入"ulimit -s unlimited" 输入"lemon" 把lemon源程序拖进来,接着在弹出的lemon界面上操作即可.
- css原生变量 var
css 变量的支持情况: 在pc端支持还不错,ie不支持,移动端也不支持,大概这就是css变量没有广泛使用的原因吧 CSS预编译工具Sass/Less/Stylus的便捷之处就是可以定义变量,方便代码 ...
- win7下出现'telnet' 不是内部或外部命令,也不是可运行的程序或批处理文件的解决方法
在win7竟然不可能使用telnet命令,使用时会出现“'telnet' 不是内部或外部命令,也不是可运行的程序或批处理文件”,研究了很多,才终于明白WIN7默认是没有安装这个命令. 处理办法: 依次 ...
- k8s-网络插件flannel-十八
一.kubernetes的网络模式 (1)Kubernetes网络需要解决的问题 集群内: 容器与容器之间的通信 Pod和Pod之间的通信 Pod和服务之间的通信 集群外: 外部应用与服务之间的通信 ...
- zoj2412 dfs连通图
zoj2412 #include<stdio.h> #include<iostream> #include<cstdio> #include<queue> ...
- js锚点
锚点,在地址栏http://localhost:8000/Demo1/js锚点.html#a 跳转到指定位置可以是 <a>标签的name 也可以是标签的id. 曾经看到有锚点的页面,但 ...
- mysql架构解析
架构 mysql是cs架构,在服务端可以启动该mysqld服务,mysqld进程默认监听在tcp:3306.在客户端使用命令行工具mysql或者图形化工具navicat for mysql进行远程连接 ...
- python三行代码实现快速排序
def quick_sort(array): if len(array) < 2: return array return quick_sort([lt for lt in array[1:] ...
- 位运算 UEST 84 Binary Operations
题目传送门 题意:所有连续的子序列的三种位运算计算后的值的和的期望分别是多少 分析:因为所有连续子序列的组数有n * (n + 1) / 2种,所以要将他们分类降低复杂度,以ai为结尾的分成一组,至于 ...