MySQL复习值代码知识点

一. 创建数据库

  create database 数据库名;

二. 删除数据库

  drop database 数据库名;

三. 选择相应的数据库

  use 数据库名;

四. 创建表

  create table table_name(

  id integer primary key,

  username varchar(20) not null,

  birthday date

  );

  或者设置主键也可用:primary key(id)

  1. 设置主键

    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 表名;

  1. WHERE子句:

=

等号,检测两个值是否相等,如果相等返回true

<>, !=

不等于,检测两个值是否相等,如果不相等返回true

>

大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true

<

小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true

>=

大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true

<=

小于等于号,检测左边的值是否小于于或等于右边的值, 如果左边的值小于或等于右边的值返回true

八. 更新表数据

    update 表名 set 列名=新值,列名=新值 [where 列名=限定值];

九. 删除表数据

    delete from 表名 [where 列名=限定值];

十. 模糊查询

    select * from 表名 where 列名LIKE ‘限定值’;

    解释:

    其中限定值:

    ”_”为任意单个字符;

    ”%”为任意个字符(0~+∽);

    “[]”表示匹配括号内的字符,类似于正则表达式

    “[^]”表示不包括括号在内的任意单个字符

十一.  连接结果

  1. union的使用

    select * from 表名1 union select * from 表名2;

    解释:union两表的查询结果集列值必须数目相同,否则会出错(1222)

    列名显示以左表为主。

    union会自动去重

    union all不会去重

  1. 内连接、左连接和右连接

    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)的更多相关文章

  1. MySQL复习值代码知识点(2)

    目录 总汇表 order by使用举例 group by使用举例 limit举例 group by 与order by 联合使用 having的使用 SQL运行结果查询 总汇表 order by 排序 ...

  2. mysql复习-来源考试

    mysql复习-   No1 .登录和权限 (一)常用命令1.登录mysqlmysql -h localhost -u root -p 2.重启mysqlservice mysql restart 延 ...

  3. mysql复习秘籍

    mysql复习 一:复习前的准备 1:确认你已安装wamp 2:确认你已安装ecshop,并且ecshop的数据库名为shop 二 基础知识: 1.数据库的连接 mysql -u -p -h -u 用 ...

  4. MYSQL复习笔记2-自带工具介绍

    Date: 20140102Auth: Jin 一.mysql 命令行客户端1)base-h host-P port--socket=path,-S path用于连接的套接字文件替换使用IP PORT ...

  5. loadrunner动态从mysql取值

    loadrunner动态从mysql取值 [需要下载跟数据库服务器一致的dll,32位或64位] loadrunner中有参数化从数据库中取值,但是只是静态的,对于一些要实时取值的数据就game ov ...

  6. MySQL NULL 值处理

    MySQL NULL 值处理 我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. 为了 ...

  7. Python连接MySQL的实例代码

    Python连接MySQL的实例代码   MySQLdb下载地址:http://sourceforge.net/projects/mysql-python/ 下载解压缩后放到%Python_HOME% ...

  8. python3.4学习笔记(二十五) Python 调用mysql redis实例代码

    python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...

  9. 二十一、MySQL NULL 值处理

    MySQL NULL 值处理 我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. ...

随机推荐

  1. SAP QM 主检验特性主数据关键字段解释

    SAP QM 主检验特性主数据关键字段解释 检验特征是QM模块中的一项重要主数据,可以说是QM检验业务的构成基础,它通过体现在Task list (检验任务清单)和/或material specifi ...

  2. Gradle-构建脚本

    构建语言 Gradle提供了一种领域特定语言,目前同时支持 Groovy 和 Kotlin . 在 Groovy 构建脚本中(.gradle) 你可以使用任何 Groovy 元素. 在 Kotlin ...

  3. [20191213]toad 12下BIND_AWARE提示无效.txt

    [20191213]toad 12下BIND_AWARE提示无效.txt --//链接http://blog.itpub.net/267265/viewspace-2130781/的测试,发现当时测试 ...

  4. Eureka 入门,带视频

    疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 前言 Crazy ...

  5. 【服务器踩坑】SSMS链接Ubuntu上的SQL Server 2019 报错 TCP Provider: Error code 0x2746

    昨天在一台Ubuntu18.04.2 上安装了SQL Server 2019 for Linux 服务正常启动了,但是却无法通过命令行工具或者远程Windows机器上的SSMS链接. SSMS错误是 ...

  6. Spring Boot 项目维护全局json数据

    1:概述 过去 我们在每一个方法中处理前端发过来的请求,需要自己构造请求数据,然后通过spring 提供的@ResponseBody 强制转为JSON数据吗,实际上出现了很多重复的代码,我么亦可以通过 ...

  7. 通过Ajax的访问zuul的跨域问题解决方案

    刚开始在使用jqueryajax跨域请求zuul网关时,在后台发现一直拿不到前台请求的json数据,而前台也一直拿不到后台的响应数据.打开浏览器调试程序发现,本身ajax的POST请求统一都变成了op ...

  8. 【5000 Stars 福利】微信接口动态 WebApi 使用说明

    前言 作为中国 C# 开源项目中 Watch/Star/Fork 最高的项目之一,Senparc.Weixin SDK  凝聚了盛派微信团队持续7年的付出,和大量开发者的无私贡献,以及数万开发者的使用 ...

  9. shiro认证授权

    一.shiro基础概念 Authentication:身份认证 / 登录,验证用户是不是拥有相应的身份: Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限:即判断用户 ...

  10. Java内存区域与内存溢出异常,对象的创建

    一.运行时数据区域 Java程序的执行流程:首先 .java源代码文件会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加载完毕之后,交由JVM执 ...