非关系型数据库
关系型数据库
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 增删查改的更多相关文章

  1. php mysql增删查改

    php mysql增删查改代码段 $conn=mysql_connect('localhost','root','root');  //连接数据库代码 mysql_query("set na ...

  2. node.js+mysql增删查改

    数据库和表: -- -- 数据库: `test` -- -- -------------------------------------------------------- -- -- 表的结构 ` ...

  3. 后端Spring Boot+前端Android交互+MySQL增删查改(Java+Kotlin实现)

    1 前言&概述 这篇文章是基于这篇文章的更新,主要是更新了一些技术栈以及开发工具的版本,还有修复了一些Bug. 本文是SpringBoot+Android+MySQL的增删查改的简单实现,用到 ...

  4. 后端Spring Boot+前端Android交互+MySQL增删查改

    2021.1.27 更新 已更新新版本博客,更新内容很多,因此新开了一篇博客,戳这里. 1 概述 使用spring boot作为后端框架与Android端配合mysql进行基本的交互,包含了最基本的增 ...

  5. MySQL 增删查改 必知必会

    MySQL 数据库中的基础操作 3.表的修改 对表的表名.字段.字段类型.字段长度.约束等进行修改. 3.1 表的名称修改 -- 语法: ALTER TABLE 库名.表名 RENAME TO 新表名 ...

  6. python操作mysql增删查改

    # coding=utf-8 ''' python操作mysql,需安装MySQLdb驱动 安装MySQLdb,请访问 http://sourceforge.net/projects/mysql-py ...

  7. 2016/3/13 MySQL 增删查改 CRUD 用代码实现

    用代码实现数据库数据输入 T-SQL语句 查询语句分几块 ①创建表 create table Car (Code varchar(50) primary key, #primary key 主键 定义 ...

  8. MySQL增删查改语句(入门)

    目录 create alter: insert delete update select 数据库定义语句: create:创建数据库及表对象 drop:删除数据库及表对象 alter:修改数据库及表对 ...

  9. mysql增删查改练习

    建表 班级表 create table class( cid int auto_increment unique, caption varchar(32) not null default '' )c ...

随机推荐

  1. BZOJ_1563_[NOI2009]诗人小G_决策单调性

    BZOJ_1563_[NOI2009]诗人小G_决策单调性 Description Input Output 对于每组数据,若最小的不协调度不超过1018,则第一行一个数表示不协调度若最小的不协调度超 ...

  2. BZOJ_2683_简单题&&BZOJ_1176_[Balkan2007]Mokia_CDQ分治+树状数组

    BZOJ_2683_简单题&&BZOJ_1176_[Balkan2007]Mokia_CDQ分治+树状数组 Description 维护一个W*W的矩阵,初始值均为S.每次操作可以增加 ...

  3. BZOJ1453: [WC2005]Dface双面棋盘

    离线LCT维护MST,和3082的方法一样.然而比较码农,适合颓废的时候写. PS:线段树分治要好写得多,LCT比较自娱自乐. #include<bits/stdc++.h> using ...

  4. 【POJ 2411】 Mondriaan's Dream

    [题目链接] 点击打开链接 [算法] 很明显,我们可以用状态压缩动态规划解决此题 f[n][m]表示n-1行已经放满,第n行状态为m的合法的方案数 状态转移方程很好推 注意这题时限较紧,注意加一些小优 ...

  5. 开启sqlplus中执行计划

    在sqlplus中我们一般用Autotrace来查看执行计划,从而对于一些语句执行过程分析,开展优化工作.这里就演示一下如何将autotrace权限授予给普通的用户,以scott用户为例(set au ...

  6. 廖雪峰python3练习题二

    字符串和编码 题目: 答案: #!/usr/bin/env python3 #-*- coding:utf-8 -*- s1 = 72 s2 = 85 print('小明的成绩提高了%.1f%%个百分 ...

  7. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时12&&13

    课时12 神经网络训练细节part2(上) 训练神经网络是由四步过程组成,你有一个完整的数据集图像和标签,从数据集中取出一小批样本,我们通过网络做前向传播得到损失,告诉我们目前分类效果怎么样.然后我们 ...

  8. codeforces 611C

    题意: 给你一个矩阵,矩阵里有" . "和" # "," . "表示空的," # "表示禁止的. 多米诺骨牌将占据正好有 ...

  9. POJ2718【DFS】

    题意: 给你0到9之间的数,然后让你搞成两个数,求一个最小差异值(被组合的数不允许出现前导0) 思路:最小差异那么肯定是有一个整数长n/2,另一个长n-n/2,搜一下就好了. code: #inclu ...

  10. sublime text3 注册码

    —– BEGIN LICENSE —– TwitterInc 200 User License EA7E-890007 1D77F72E 390CDD93 4DCBA022 FAF60790 61AA ...