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. CSS样式 解决文字过长显示省略号问题

    一.CSS样式 解决文字过长显示省略号问题 1.一般样式 一般 css 样式,当宽度不够时,可能会出现换行的效果.这样的效果在某些时候肯定是不行的,可以修改 css 样式来解决这个问题. <!D ...

  2. HTTP认知(请求与响应)

    web的工作是:浏览器发送请求报文 + 服务端返回响应报文 通俗的说一下web工作的一个流程: 浏览器向服务端发送HTTP请求报文:这条请求报文组成由请求行.请求头.请求体三大部分组成: 1.请求行 ...

  3. 61-如何使用 Weave 网络?

    weave 是 Weaveworks 开发的容器网络解决方案.weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来.对容器来说,weave 就像一个巨大的以太网交换机,所有容器都被接入这个交 ...

  4. django-建表出现的错误

    在执行python3 manage.py migrate时出现以下错误 ?: (mysql.W002) MySQL Strict Mode is not set for database connec ...

  5. python 打飞机项目 ( 基类封装 )

    项目代码 | plane # -*- coding:utf-8 -*- import pygame, time from Plane import Plane from HeroPlane impor ...

  6. C# TreeView模糊查找节点

    List<TreeNode> listSearchTreeNodes; private void btn_Search_Click(object sender, EventArgs e) ...

  7. SpringMVC架构模拟

    这次来学习一下SpringMVC的源码. 对于常见的项目架构模式,比如大名鼎鼎的SSM(SpringMVC,Spring,Mybatis)框架. SpringMVC ->web层(Control ...

  8. How to: Use the Entity Framework Code First in XAF 如何:在 XAF 中使用EF CodeFirst

    This topic demonstrates how to create a simple XAF application with a business model in a DbContext ...

  9. django的使用INNODE的方式,排除错误MySQL Strict Mode is not set for database connection 'default'

    出现如下错误: 解决办法: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mxshop', 'HO ...

  10. 如何计算Data Guard环境中Redo所需的网络带宽传输 (Doc ID 736755.1)

    How To Calculate The Required Network Bandwidth Transfer Of Redo In Data Guard Environments (Doc ID ...