查看数据库

show databases;

使用数据库

use 数据库名;

创建数据库

CREATE DATABASE 数据库名;

删除数据库

DROP DATABASE 数据库名;

创建表

create table 表名(

列名1 类型(长度) [约束],

列名2 类型(长度) [约束],

……

);

长度区别

int类型带长度:不影响存取值,即使设定的值超出了长度的范畴,也能存,如果没有达到设定的长度,则使用空格自动填充到设定的长度

char类型:不可变字符,设定的长度就是规定当前字段能存的数据的最大长度,若超出长度,则会报错,若没有达到长度,使用空格填充到设定的长度

varchar:可变字符,设定的长度同样是规定当前字段能存的数据的最大长度,若超出长度,则会报错,若没有达到长度,不会使用空格填充,实际多长就是多长

删除表

DROP TABLE 表名;

表约束

1.非空约束    NOT NULL

2.默认值约束  DEFAULT '男'

3.唯一约束    UNIQUE

4.主键约束    PRIMARY KEY

查看表结构

DESC 表名

修改表

修改列名

Alter table 表名  change  列名  新列名 类型;

修改列类型

Alter table 表名  change 列名  列名  新类型;

修改列类型

Alter table 表名  modify  列名  新类型;

==============================数据查询-单表=================================

查询表中全部信息

select * from 表名;

查询表中指定列的信息

select 列1,列2 from 表名;

语句的执行顺序:from—>select

数据去重

select distinct 列…. From 表名;

拼接结果

select concat(列1,列2) from 表名;

运算符优先级:

1.乘法和除法的优先级高于加法和减法

2.同级运算的顺序是从左到右

3.表达式中使用"括号"可强行改变优先级的运算顺序

select 列1[+-*/]列2 from 表名;

设置别名(注意:关键字as可以省略)

select 列 as 别名 from 表名;

select 列 别名 from 表名;

语句的执行顺序:from—>select

条件查询

select 列… from 表名 where 条件;

条件中比较运算符:( 等于:=  大于:>  大于等于:>=  小于:<  小于等于:<=  不等于:!= 或 <>  )

where 列  比较运算符  值;

注意:字符串、日期需使用单引号括起来

语句的执行顺序:from—>where—>select

逻辑运算符( 并且:and 或 &&   或:or    非:not 或 !    )

where 条件1  逻辑运算符  条件2;

where not 条件;

范围查询

where 列 between 条件1  and 条件2;          //列在这个区间的值

where 列 not between 条件1 and 条件2;    //不在这个区间

where !( 列 between 条件1 and 条件2 );     //同样表示不在这个区间

集合查询( 判断列的值是否在指定的集合中 )

where 列 in(值1,值2);          //列中的数据是in后的值里面的

where 列 not in(值1,值2);   //不是in中指定值的数据

NULL值查询( 注意:列中值为null不能使用=去查询 )

where 列 is null;  //查询列中值为null的数据

模糊查询

%:表示0到多个字符,示例:

where 列 like '%0';   //表示以0结尾

where 列 like  '0%';   //表示以0开头

where 列 like  '%0%';   //表示数据中包含0

_:表示一个字符,可多次使用,示例:

where 列 like '%0_';   //数据结尾第二位是0

结果排序( 对查询出的结果按照一列或多列进行升序还是降序排列 升序:asc  降序:desc    注意:不能使用中文的别名排序)

where 条件 order by 列 [asc/desc]

语句的执行顺序:from—>where—>select—>order by

分页查询( beginIndex:表示从第多少条数据开始   pageSize:表示每页显示的数据条数 )

where [条件] limit beginIndex,pageSize;

ex:每页显示3条数据

第一页: SELECT * FROM 表名 LIMIT 0,3    --0,1,2

第二页: SELECT * FROM 表名 LIMIT 3,3    --3,4,5

第三页: SELECT * FROM 表名 LIMIT 6,3    --6,7,8

第四页: SELECT * FROM 表名 LIMIT 9,3    --9,10,11

……

第七页: SELECT * FROM 表名 LIMIT 18,3   --18,19,20

beginIndex公式:(当前页数-1)*pageSize

聚集函数( 作用于一组数据,并对一组数据返回一个值 )

COUNT:统计结果记录数,若统计的是列,列中为Null,那么count将不会计算值

MAX:  统计计算最大值

MIN:  统计计算最小值

SUM:  统计计算求和

AVG:  统计计算平均值

分组函数( 注意:如果要对分组后的数据进行筛选,那么必须使用having关键字,条件写在having后 )

select 聚集函数 from 表名 where [条件] group by 列 having 分组后的条件

语句的执行顺序:FROM—> WHERE—>group by---->Having—>SELECT-->ORDER BY

Where和having的区别:

Where: 先过滤已有的数据(数据是已经存在的),在进行分组,在聚集计算

Having:先分组,在对每组进行计算,根据得到结果在过滤(分组把数据算出之后,在过滤)

注意:使用having的时候,它是可以使用别名的

===============================数据查询-多表===============================

交叉连接:又名笛卡尔积,使用交叉连接会产生笛卡尔积

假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

select *  from 表1,表2

内连接:过滤为空的数据(查询的实际上是两张表数据的交集部分)    目的 ==》解决笛卡尔积现象,正确查询了需要的数据

select * from 表1,表2  where 表1.字段=表2.字段;  //隐式内连接,使用where条件消除笛卡尔积

select * from 表1 [inner] join 表2 on 表1.字段=表2.字段;  //显式内连接,如果是多张表,则一直在join..on后依次添加join..on即可,inner关键字可被省略

外连接:左外连接、右外连接、全外连接

左外连接:以左边表为主,返回左边表中所有数据,若右表中无数据,则显示为NULL,请参考实际查询结果来理解

select * from 表1 left [outer] join 表2 on 表1.字段=表2.字段;   //表1为左表,表2为右表,outer关键字可被省略

右外连接:以右边表为主,返回右表中所有数据,若左表中无数据,则显示为NULL,结合实际查询结果来理解

select * from 表1 right [outer] join 表2 on 表1.字段=表2.字段;  //表1为左表,表2为右表,outer关键字可被省略

全外连接:返回涉及的多表中的所有数据,MYSQL中不支持该查询,仅限了解自连接:单表当作多表查询,直白的讲就是一张表中数据含有多种关系,使用多表查询的语法,来查询一张表,查询过程中一定要使用别名

多用在分类数据、省市县分类数据、权限…

select 表1.字段1,表2.字段2 from 表名 as 表1,表名 as 表2 where 表1.字段1=表2.字段2

子查询:将一个查询结果作为另一个查询的对象,直白的讲就是SQL语句嵌套

select * from (select * from 表名) as 别名

select * from where 条件->条件中包含查询语句

注意:1.查询结果的虚拟表必须取别名

2.字段与关键字一样,冲突时,需要给字段名加``,(Esc键下面、1的左边)

3.如果给虚拟结果表中的字段取了别名,则对虚拟结果表查询时,应该用 表别名.虚拟表字段别名

===============================插入数据===============================

insert into 表名(字段1,字段2..) values(值1,值2…);

注意: 1.如果插入的表中的主键是自增类型的,可以不用插入值

2.如果主键是非自增 ,插入的数据则是填补主键字段值空余的值

3.如果主键设置了自动递增,会从主键字段最大值开始插入数据

其他插入方式:

insert into 表名(字段1,字段2) values(值1,值2),(值1,值2);     //插入多条数据【MYSQL】

insert into 表名 values(值1,值2);                    //针对全表所有字段进行插入操作

insert into 表名(字段) select 字段 from 表2;         //查询结果插入

insert into 表名 select 字段 from 表2;               //查询结果,全表插入

===============================修改数据===============================

update 表 set 字段=值 where 条件;  //带条件修改指定数据,否则修改全表

===============================删除数据===============================

delete from 表 where 条件;  //删除数据带条件指定数据,否则删除全表数据

===============================数据备份===============================

在命令行窗口进行,若操作系统版本高,则使用管理员模式

导出:

mysqldump -u账户 -p密码 数据库名称>脚本文件存储地

ex:         mysqldump -uroot -proot jdbcdemo> C:/shop_bak.sql

导入:

mysql -u账户 -p密码 数据库名称< 脚本文件存储地址

ex:         mysql -uroot -proot jdbcdemo< C:/shop_bak.sql

使用可视化导入导出:

Navicat工具的导入和导出/Navicat工具的备份和还原

===============================数据索引===============================

索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

什么列适合建索引??

1.表的主键、外键必须有索引;

2.数据量超过30000的表应该有索引;

3.经常与其他表进行连接的表,在连接字段上应该建立索引;

4.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;

5.索引应该建在选择性高的字段上;

6.索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;

sql语句创建和删除索引:

创建索引:

CREATE INDEX 索引名称 ON 表名 (列名)

删除索引:

方式一:

DROP INDEX 索引名 ON 表名

方式二:

ALTER TABLE 表名 DROP INDEX 索引名

mysql增删改查大全_MySQL数据库增删改查SQL语句(2018整理集合大全)相关推荐

  1. mysql数据库增删改查关键字_MySQL数据库(增删改查语句)

    MySQL数据库(增删改查语句) 一.登录数据库:---->  mysql -uroot -proot;(对应用户名和密码) 二.SQL语句: 数据定义语言DDL  用来定义数据库.表.列,关键 ...

  2. mysql对表中添加属性_MySQL数据库增删改字段(属性)

    MySQL数据库的各种操作今天在这里总结一下: 一.增加 1.在已有的表中添加新的字段: 首先是增加表的字段,比如一张表原本没有字段" Time ",现在我们要增加这样一个字段,可 ...

  3. linux mysql 实战_Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06

    Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06 视频教程学习地址 Oracle/MySQL数据库学习专用QQ群:336282998.189070296 学完风哥本课程能熟悉 ...

  4. 在mysql中更新数据sql语句怎么写_在MySQL中,更新数据库表记录的SQL语句,包括______语句...

    在MySQL中,更新数据库表记录的SQL语句,包括______语句 答:insert replace update delete 在域F中,设其特征为2,对于任意a,b∈F,则(a+b)2 等于多少 ...

  5. 如何找出MySQL数据库中的低效SQL语句

    面对业务的迅猛发展,DBA的一项重要工作就是及时发现数据库中的低效SQL语句,有的可以立刻着手解决(比如缺少合适的索引),有的需要尽快反馈给开发人员进行修改. MySQL数据库有几个配置选项可以帮助我 ...

  6. mysql创建test_MySQL中,创建数据库test正确的SQL语句是( )

    [多选题]PHP中可以实现循环的是(). [填空题]色彩模型是一种抽象的数学模型,即用________来对色彩进行描述的方法. [填空题]人耳可感受声音频率的范围是 HZ . [填空题]PHP中,多行 ...

  7. mysql导出不带注释的sql语句_MySQL mysqlbinlog解析出的SQL语句被注释是怎么回事

    MySQL mysqlbinlog解析出的SQL语句被注释是怎么回事 一网友反馈使用mysqlbinlog解析出的二进制日志中的内容中,有些SQL语句有#注释的情况,这个是怎么回事呢?我们通过实验来了 ...

  8. mysql字段排序语句_数据库字段排序的SQL语句

    简明现代魔法 -> 数据库技术 -> 数据库字段排序的SQL语句 数据库字段排序的SQL语句 2009-09-17 将字段依次写在order by 后面即可 , 中间用逗号隔开. sele ...

  9. vb mysql 语句_VB与数据库编程常用的SQL语句总结

    SQL数据库介绍国庆假期 美好而短暂 现已正式结束 不忘初心,继续前行 今天我们来学习VB与数据库编程中的SQL语句. SQL简介 SQL数据库语言是一种通用的,功能强大的关系数据库语言,是操作数据库 ...

最新文章

  1. 卷积神经网络(CNN)代码实现(MNIST)解析
  2. Android 2D Graphics
  3. NTP时间服务器介绍
  4. 【转载】Ubuntu环境下配置Android Studio
  5. Python type函数和isinstance函数区别 - Python零基础入门教程
  6. java 路径通配符_java实现路径通配符*,**,?
  7. FFmpeg源代码简单分析:avcodec_close()
  8. 2010伊始就这么忙
  9. elementUI 分页器使用时遇到的Bug
  10. 使用IdleTest进行TDD单元测试驱动开发演练(3) 之 ASP.NET MVC
  11. 4200有linux版本么,如何检查Linux版本
  12. Atitit. 资深高级软件工程师and 普通的区别 高度金字塔 深度 广度 1. 高度金字塔 深度 广度 1 1.1. 角色差异高度金字塔 使用者 维修者 制造者 1 1.2. 广度圈 1 1
  13. 【Linux】如何在文件中写入感叹号
  14. 如何解决python中文问题_布同:如何解决Python中文问题(总结了多位前人经验,初学者必看)...
  15. 如何在前端html获取cookie
  16. kafka数据清理配置——删除篇
  17. 如何使用计算机搜索文件,win7系统如何使用搜索筛选功能快速查找文件
  18. prototype鼠标指针_html5鼠标点击页面光标圆点动画特效
  19. Linux更改文件权限(一)
  20. Taro跨端开发探索19——商城小程序确认订单页面开发

热门文章

  1. matlab2c使用c++实现matlab函数系列教程-sort函数
  2. zedboard的xdc文件
  3. python可以嵌在vba中吗_Jupyter Notebooks嵌入Excel并使用Python替代VBA宏
  4. Python学习笔记--6.2 文件读写
  5. 通过分析等待类型解决系统产生问题
  6. 静态/动态注冊广播的差别
  7. 转载 hashtable和dictionary的区别
  8. 一个程序员一月的开销统计分析、(附上PC端和移动端android源码)
  9. CSS教程--CSS 属性选择器
  10. 【SPS2010】现在的这个版本不值得测试。