MySQL复习值代码知识点(1)
MySQL复习值代码知识点
一. 创建数据库
create database 数据库名;
二. 删除数据库
drop database 数据库名;
三. 选择相应的数据库
use 数据库名;
四. 创建表
create table table_name(
id integer primary key,
username varchar(20) not null,
birthday date
);
或者设置主键也可用:primary key(id)
- 设置主键
primary key(id)
2. 删除主键
alter table + 表名+drop primary key;
如果设置了主键自增时,要先删除自增长,然后再删除主键;
alter table + 表名 + modify + 主键 + 列类型;
alter table + 表名 + drop primary key;
3. 设置主键并设置主键自增
alter table + 表名 + add primary key(列名);
alter table + 表名 + modify + 列名 + 列类型 + auto_increment;
4. 设置外键
foreign key(a_id) references table_A(id)
解释: a_id为本表字段,table_A(id)为外表和外表被引用的字段。
5. 外部添加外键
alter table + 表名 + add[constraint + 外键名字] + foreign key(外键字段) + references + 外部表名(主键字段);
6. 删除外键
alter table + 表名 + drop foreign key + 外键名字;
解释:删除时外键名字是定义时的constraint + 外键名字 的外键名字
如果在删除外键时不知道外键名字,可以用desc+表名来查看表名
7. 添加字段
alter table + 表名 + add +列名+列类型+[约束];
8. 删除字段
alter table + 表名 + drop column + 列名;
9. 修改列名:
alter table + 表名 + change + 列名 + 新列名 + 列类型+[约束];
10. 修改列属性:
alter table + 表名 + modify + 列名 + 列类型 +[约束];
五. 删除表
drop table 表名;
六. 表插入数据
insert into 表名 values(列值1,列值2,…);
七. 表查询数据
select * from 表名;
- WHERE子句:
|
= |
等号,检测两个值是否相等,如果相等返回true |
|
<>, != |
不等于,检测两个值是否相等,如果不相等返回true |
|
> |
大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true |
|
< |
小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true |
|
>= |
大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true |
|
<= |
小于等于号,检测左边的值是否小于于或等于右边的值, 如果左边的值小于或等于右边的值返回true |
八. 更新表数据
update 表名 set 列名=新值,列名=新值 [where 列名=限定值];
九. 删除表数据
delete from 表名 [where 列名=限定值];
十. 模糊查询
select * from 表名 where 列名LIKE ‘限定值’;
解释:
其中限定值:
”_”为任意单个字符;
”%”为任意个字符(0~+∽);
“[]”表示匹配括号内的字符,类似于正则表达式
“[^]”表示不包括括号在内的任意单个字符
十一. 连接结果
- union的使用
select * from 表名1 union select * from 表名2;
解释:union两表的查询结果集列值必须数目相同,否则会出错(1222)
列名显示以左表为主。
union会自动去重
union all不会去重
- 内连接、左连接和右连接
on后为限制连接的条件,而where是对on筛选后得到的结果集进行再次筛选
交叉连接(笛卡儿积):
查询结果相同:
select * from +表名1,表名2;
select * from +表名1 cross join表名2[表名3];
内连接(inner join):
select * from + 表名1+ inner join +表名2 +[ on 条件][where 条件];
解释返回两个的交集
左连接(left join):
select * from + 表名1+ left join +表名2 +[ on 条件][where 条件];
解释:以左表为主,不管有没有右表数据,都要显示完全。
右连接(right join)
select * from + 表名1+ right join +表名2 +[ on 条件][where 条件];
解释:以右表为主,不管有没有左表数据,都要显示完全。
参考链接:
https://blog.csdn.net/plg17/article/details/78758593
https://blog.csdn.net/cs958903980/article/details/60139792
http://www.zsythink.net/archives/1105
十二. NULL值处理
IS NULL: 当列的值是 NULL,此运算符返回 true。
IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
查询结果集的修改:
select id,ifnull(列名,默认值) from +表名;
解释:如果这一列的值为null 则输出默认值
十三. 正则表达式
select * from + 表名+ where + 列名+ regexp +’正则表达式’;
十四. 索引
数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。
1. 创建索引:
普通索引:
alter table + 表名 + add index +索引名 + (列名);
create index + 索引名 + on + 表名(列名);
注:主键本来就是一个主键索引(所以在创主键时也是在创建一个索引);
唯一索引:
create unique index + 索引名 + on + 表名(列名);
2. 删除索引:
drop index + 索引名 + on + 表名;
alter table + 表名 + drop index + 索引名;
3. 查看索引:
show index from + 表名;
show keys from + 表名;
十五. 聚集函数
传送门: https://www.cnblogs.com/Anxc/p/11558963.html
十六. 附录
还有一部分是关于聚集函数的知识点,我把它放在了我的GitHub里面,由于截图的原因没有发布到这里(请看文章最后文档下载)。
MySQL 5.0 以上的版本:
1、一个汉字占多少长度与编码有关:
UTF-8:一个汉字=3个字节
GBK:一个汉字=2个字节
2、varchar(n) 表示 n 个字符,无论汉字和英文,Mysql 都能存入 n 个字符,仅是实际字节长度有所区别
3、MySQL 检查长度,可用 SQL 语言来查看:
mysql> select name,length(name) from grade where id=8;
+------+--------------+
| name | length(name) |
+------+--------------+
| 安 | 3 |
查看表结构:
desc 表名
单词翻译:
alter:改变
modify:修改(修改列属性)
constraint:限制,约束(设置外键名字,删除外键时用)
foreign:外国的(设置外键时用)
references:参考文献(设置外键时用)
primary:主要的(设置主键时用到)
regexp:正则表达式
* 文档下载:
GitHub:https://github.com/Anxc520/knowledge.git
教程如下:



MySQL复习值代码知识点(1)的更多相关文章
- MySQL复习值代码知识点(2)
目录 总汇表 order by使用举例 group by使用举例 limit举例 group by 与order by 联合使用 having的使用 SQL运行结果查询 总汇表 order by 排序 ...
- mysql复习-来源考试
mysql复习- No1 .登录和权限 (一)常用命令1.登录mysqlmysql -h localhost -u root -p 2.重启mysqlservice mysql restart 延 ...
- mysql复习秘籍
mysql复习 一:复习前的准备 1:确认你已安装wamp 2:确认你已安装ecshop,并且ecshop的数据库名为shop 二 基础知识: 1.数据库的连接 mysql -u -p -h -u 用 ...
- MYSQL复习笔记2-自带工具介绍
Date: 20140102Auth: Jin 一.mysql 命令行客户端1)base-h host-P port--socket=path,-S path用于连接的套接字文件替换使用IP PORT ...
- loadrunner动态从mysql取值
loadrunner动态从mysql取值 [需要下载跟数据库服务器一致的dll,32位或64位] loadrunner中有参数化从数据库中取值,但是只是静态的,对于一些要实时取值的数据就game ov ...
- MySQL NULL 值处理
MySQL NULL 值处理 我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. 为了 ...
- Python连接MySQL的实例代码
Python连接MySQL的实例代码 MySQLdb下载地址:http://sourceforge.net/projects/mysql-python/ 下载解压缩后放到%Python_HOME% ...
- python3.4学习笔记(二十五) Python 调用mysql redis实例代码
python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...
- 二十一、MySQL NULL 值处理
MySQL NULL 值处理 我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. ...
随机推荐
- SAP QM 主检验特性主数据关键字段解释
SAP QM 主检验特性主数据关键字段解释 检验特征是QM模块中的一项重要主数据,可以说是QM检验业务的构成基础,它通过体现在Task list (检验任务清单)和/或material specifi ...
- Gradle-构建脚本
构建语言 Gradle提供了一种领域特定语言,目前同时支持 Groovy 和 Kotlin . 在 Groovy 构建脚本中(.gradle) 你可以使用任何 Groovy 元素. 在 Kotlin ...
- [20191213]toad 12下BIND_AWARE提示无效.txt
[20191213]toad 12下BIND_AWARE提示无效.txt --//链接http://blog.itpub.net/267265/viewspace-2130781/的测试,发现当时测试 ...
- Eureka 入门,带视频
疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 前言 Crazy ...
- 【服务器踩坑】SSMS链接Ubuntu上的SQL Server 2019 报错 TCP Provider: Error code 0x2746
昨天在一台Ubuntu18.04.2 上安装了SQL Server 2019 for Linux 服务正常启动了,但是却无法通过命令行工具或者远程Windows机器上的SSMS链接. SSMS错误是 ...
- Spring Boot 项目维护全局json数据
1:概述 过去 我们在每一个方法中处理前端发过来的请求,需要自己构造请求数据,然后通过spring 提供的@ResponseBody 强制转为JSON数据吗,实际上出现了很多重复的代码,我么亦可以通过 ...
- 通过Ajax的访问zuul的跨域问题解决方案
刚开始在使用jqueryajax跨域请求zuul网关时,在后台发现一直拿不到前台请求的json数据,而前台也一直拿不到后台的响应数据.打开浏览器调试程序发现,本身ajax的POST请求统一都变成了op ...
- 【5000 Stars 福利】微信接口动态 WebApi 使用说明
前言 作为中国 C# 开源项目中 Watch/Star/Fork 最高的项目之一,Senparc.Weixin SDK 凝聚了盛派微信团队持续7年的付出,和大量开发者的无私贡献,以及数万开发者的使用 ...
- shiro认证授权
一.shiro基础概念 Authentication:身份认证 / 登录,验证用户是不是拥有相应的身份: Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限:即判断用户 ...
- Java内存区域与内存溢出异常,对象的创建
一.运行时数据区域 Java程序的执行流程:首先 .java源代码文件会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加载完毕之后,交由JVM执 ...