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. JSON2ABAPType:根据JSON数据结构生成ABAP类型定义

    一图表明本文将要介绍的工具: JSON是常见的数据格式,经常用于接口开发.ABAP开发者通常使用/ui2/cl_json来把JSON数据转换为相应的ABAP类型. 在转换前,必须要定义相应的ABAP类 ...

  2. 18.JAVA-pull解析XML

    1.pull解析介绍 pull解析其实和我们上章学的sax解析原理非常类似,在Android中非常常用. 在java中,需自己获取xmlpull所依赖的类库分别为:kxml2-2.3.0.jar,xm ...

  3. [洛谷P1967][题解]货车运输

    题目 这道题让我们求最小限重的最大值 显然可以先求出最大生成树,然后在树上进行操作 因为如果两点之间有多条路径的话一定会走最大的,而其他小的路径是不会被走的 然后考虑求最小权值 可以采用倍增求LCA, ...

  4. Java基础语法04面向对象上-类-属性-方法-可变参数-重载-递归-对象数组

    类 面向对象是一种思想,一般指将事务的属性与方法抽出总结为模板(类/class),处理事务时通过类创建/new出对象由对象的功能/方法去完成所要计算处理的事情. 面向过程:POP:以过程,步骤为主,考 ...

  5. Snack3 之 Jsonpath使用

    Snack3 之 Jsonpath使用 一. Snack3 和 JSONPath 介绍 Snack3 是一个支持JSONPath的JSON框架.JSONPath是一个很强大的功能,也可以在Java框架 ...

  6. C#封装继承

    面向对象开发有三大特性(特点 / 特征) : 封装, 继承, 多态.我们今天主要讨论封装和继承,多态会在下篇中讨论. 一.封装: 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法 ...

  7. Exceptionless应用--自定义插件

    遇到的问题/需求 这里会把一些敏感的参数记录下来,我们需要屏蔽掉,如图 我们希望日志里面有当前登录用户的信息,如图: 处理方法 tip:这里用的是.net非.net core 第一个问题(屏蔽敏感参数 ...

  8. Linux(三)

    1.用户与用户组        Linux系统是一个多用户.多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员(root)申请一个账号,然后以这个账号的身份进入系统.       ...

  9. C#后台架构师成长之路-进阶体系篇章大纲

    这些知识体系概念和应用如果不了解,怎么修炼你的内功..... 1.数据类型的理解,比如bool,byte,short,ushort,int,uint,long,ulong,float,double,s ...

  10. 浅谈——MySQL存储引擎

    博文大纲: 一.MyISAM存储引擎: 二.InnoDB存储引擎: 三.Memory存储引擎特点: 四.如何选择合适的存储引擎? 前言 数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使 ...