MySQL中的基本知识
本文是MySQL中的一些基本知识,包括各种基本操作、数据类型和表的约束等。
ps:都是自己总结、手打出来的,虽然不是什么新东西,但也勉强算原创吧。。
一、数据库
1.创建:CREATE DATABASE 数据库名 (CHARACTER SET 字符集) (COLLATE 校对规则);
2.查看:(1)SHOW DATABASES;
(2)SHOW CREATE DATABASE 数据库名;
3.修改:ALTER DATABASE 数据库名 (CHARACTER SET 字符集) (COLLATE 校对规则);
4.删除:DROP DATABASE 数据库名;
5.备份:cmd:mysqldump -u用户名 -p密码 数据库名>文件名.sql
恢复:cmd:mysql -u用户名 -p密码 数据库名<文件名.sql 或:mysql:SOURCE 文件名.sql;
二、表
1.创建:CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型,……) (CHARACTER SET 字符集) (COLLATE 校对规则);
2.查看、删除基本和数据库操作相同。另:可用DESC 表名; 来查看表结构。
3.修改:ALTER TABLE 表名
(1)增加列:ADD (列名 数据类型,……);
(2)删除列:DROP 列名;
(3)修改列数据类型:MODIFY 列名 新数据类型;
(4)修改列名:CHANGE 列名 新列名 数据类型;
(5)修改表字符集:CHARACTER SET 字符集;
4.重命名表:RENAME TABLE 表名 TO 新表名;
三、数据操作(CRUD):
>>进行与表有关的操作之前都要先USE 数据库,以选择要操作的数据库。
1.增:INSERT INTO 表名 (列名1,…) VALUES (值1,…);
2.删:DELETE FROM 表名 (WHERE 条件); 其中,(WHERE 条件)是用来筛选行的。如果不加,则对所有行进行操作。
TRUNCATE TABLE 表名; 清除表中所有数据。
3.改:UPDATE 表名 SET 列名1=值1,… (WHERE 条件);
4.查:SELECT (DISTINCT) 要查询的内容 FROM 表名 附加条件;
(1)要查询的内容:
①列名/表达式
②列名/表达式 (as) 别名
③合计函数(count(...),sum(...),avg(...),max(...))
(2)附加条件:
①筛选:WHERE 条件
②排序:ORDER BY 列名/表达式 ASC/DESC
③归组:GROUP BY 列名/表达式(此时,要查询的内容必须为归组依据+合计函数)
归组筛选:HAVING 条件(合计函数)
5.条件:
(1)比较:>,<,=,>=,<=,<>
(2)区间:BETWEEN ... AND ...
(3)集合:IN(...)
(4)为空:IS NULL
(5)模糊查询:LIKE '...'(%:任意个字符,_:一个字符)
(6)条件逻辑:AND OR NOT
四、字符集与校对规则
1.字符集:一般用utf-8,MySQL中是"utf8"。然而Windows中很多地方默认字符集并不是utf-8,比如.txt默认GBK,.doc默认GB2312。总之,按需求设置即可。
2.校对规则:一般选择默认校对规则即可。比如utf-8对应"utf8_general_ci"。具体可以查阅文档。
五、数据类型
1.数值类型
(1)整型:BIT(位数),TINYINT(1字节),SMALLINT(2字节),MEDIUMINT(3字节),INT(4字节),BIGINT(8字节),无符号数加[UNSIGNED]或[ZEROFILL]
(2)小数:FLOAT(长度,位数),DOUBLE(长度,位数),DECIMAL(长度,位数)(高精度数)
(3)布尔型:BOOLEAN,BOOL:用0和1表示假和真
2.文本类型
(1)字符串:CHAR(长度)(固定长度,最大255),VARCHAR(长度)(可变长度,指定上限,最大65535)
(2)大文本:TINYTEXT(255字节),TEXT(64K),MEDIUMTEXT(16M),LONGTEXT(4G)
3.二进制类型:TINYBLOB(255字节),BLOB(64K),MEDIUMBLOB(16M),LONGBLOB(4G)
4.日期/时间类型:DATE(YYYY-MM-DD),DATETIME(YYYY-MM-DD hh:mm:ss),TIMESTAMP(时间戳,可自动保存时间)
六、表的约束
1.主键约束:PRIMARY KEY(主键),AUTO_INCREMENT(自增)
删除主键约束:ALTER TABLE 表名 DROP PRIMARY KEY;
若设置了自增,应先删除自增:ALTER TABLE 表名 CHANGE 主键名 主键名 数据类型;(就是重命名主键列)
2.唯一约束:UNIQUE
3.非空约束:NOT NULL
4.外键约束:CONSTRAINT 约束名(被约束者_FK) FOREIGN KEY(外键列名) REFERENCES 来源表(相关列)
MySQL中的基本知识的更多相关文章
- MySQL中索引的基础知识
本文是关于MySQL中索引的基础知识.主要讲了索引的意义与原理.创建与删除的操作.并未涉及到索引的数据结构.高性能策略等. 一.概述 1.索引的意义:用于提高数据库检索数据的效率,提高数据库性能. 数 ...
- SQL Server 与MySQL中排序规则与字符集相关知识的一点总结
字符集&&排序规则 字符集是针对不同语言的字符编码的集合,比如UTF-8字符集,GBK字符集,GB2312字符集等等,不同的字符集使用不同的规则给字符进行编码排序规则则是在特定字符集的 ...
- mysql中权限的小知识
参考:https://www.cnblogs.com/apollo1616/articles/10294490.html mysql中user表中host列的值的意义 % 匹配所有主机 localho ...
- MySQL中关于SQL注入的相关需要的基础知识
零.绪论: 文章部分整理来源于公司同事,特此鸣谢!!! 一.关于注入点在KEY上的注入: 我们来看一个查询,你的第一个字段是过滤器(filter)第二个字段是查询的关键字,例如查询ip == 1.2. ...
- 数据库基础知识详解五:MySQL中的索引和其两种引擎、主从复制以及关系型/非关系型数据库
1.MySQL中的索引 在MySQL,索引是由B+树实现的,B+是一种与B树十分类似的数据结构. 形如下面这种: 其结构特点: (1)有n课子树的结点中含有n个关键码. (2)非根节点子节点数: ce ...
- B-Tree索引在sqlserver和mysql中的应用
在谈论数据库性能优化的时候,通常都会提到“索引”,但很多人其实并没有真正理解索引,也没有搞清楚索引为什么就能加快检索速度,以至于在实践中并不能很好的应用索引.事实上,索引是一种廉价而且十分有效的优化手 ...
- 【转】MySQL中varchar最大长度是多少?
一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无 ...
- 【MySQL】漫谈MySQL中的事务及其实现
最近一直在做订单类的项目,使用了事务.我们的数据库选用的是MySQL,存储引擎选用innoDB,innoDB对事务有着良好的支持.这篇文章我们一起来扒一扒事务相关的知识. 为什么要有事务? 事务广泛的 ...
- MySQL(五) MySQL中的索引详讲
序言 之前写到MySQL对表的增删改查(查询最为重要)后,就感觉MySQL就差不多学完了,没有想继续学下去的心态了,原因可能是由于别人的影响,觉得对于MySQL来说,知道了一些复杂的查询,就够了,但是 ...
随机推荐
- 2.vue 安装教程
安装node.js 从node.js官网下载并安装node,安装过程很简单,一路"下一步"就可以了(傻瓜式安装). 安装完成之后,打开命令行工具,输入 node -v,如下图,如果 ...
- MySQL基础语法命令
1. 建表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 通用语法: CREATE TABLE table_name (column_name column_type); 实例: ...
- Ext template 的使用
Ext template 的使用 Ext.define('app.view.MyDataView', { extend: 'Ext.panel.Panel', xtype: 'myDataView', ...
- H5 data-*容易忽略的问题
H5添加了data-*属性,非常方便 但经常忽略小写的问题, H5要求属性名全部小写,驼峰式命名的习惯掉坑了 测试代码如下: <html> <head> <script ...
- H5在线编辑器优化总结
花了三个半月做了个编辑器.自己一个人写写CSS,搞搞html,弄下JS,大部分精力都是掏鼓js,时间很仓促,后面领导帮忙写了四个页面逻辑(音频,图片,视频). 很多能优化的,以此文章记录要已经优化和未 ...
- C# 来做 视频播放 视频流处理 转码 实时传输
最近一直在研究视频实时查看播放 很遗憾 只成功了一半 记录一下历程 以便大家相互交流 项目需求是 GPS 视频设备 连接服务器 将视频流走RTP 协议发送到服务器 服务器将接收的视频流 传输给 ...
- (转载)oracle 在一个存储过程中调用另一个返回游标的存储过程
原文链接:http://www.jb51.net/article/20160.htm 实际项目当中经常需要在一个存储过程中调用另一个存储过程返回的游标,本文列举了两种情况讲述具体的操作方法. 第一种情 ...
- 输入三个整数x、y、z,请把这三个数由小到大输出
题目:输入三个整数x,y,z,请把这三个数由小到大输出. 程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x> y则将x与y的值进行交换,然后再用x与z进行比较,如果x> ...
- 华为OJ之自动售货系统
本题主要难点有两部分: 1,找零算法.如何找零应该是最具技巧性的部分,根据已有的硬币金额分布,对应的解决办法可能会有不同.本题中的1,2,5,10这种情况满足贪心性质,故我们简单的用贪心算法的思想来解 ...
- Codeforces_617E: XOR and Favorite Number(莫队算法)
题目链接 题意大致是说,给出一个长为n(n<=1e5)的数组,给定一个k(k<=1e6),给出m(m<=1e5)个询问,每组询问中回答 从a_l到a_r有多少个连续的子序列满足异或和 ...