MySQL的常规操作

一、数据库的基本概念

一、数据库的查询用法

1、 数据表记录的询问: 运算符、虑重、列运算、别称、排序、聚合函数、分组

MySQL的正规知识

MySQL的平常化知识

        1.1  常用的关系型数据库

                       数据库(Database)是遵守数据结构来协会、存款和储蓄和管制数据的货仓。

1.1数量希图

style="font-size: 1.167rem;">create table exam(

  id int primary key auto_increment,

  name varchar(20) not null,

  chinese double,

  math double,

  english double

style="font-size: 1.167rem;">);

style="font-size: 1.167rem;">insert into exam values(null,'关羽',85,76,60);

style="font-size: 1.167rem;">insert into exam values(null,'张飞',70,75,70);

style="font-size: 1.167rem;">insert into exam values(null,'赵云',90,65,95);

style="font-size: 1.167rem;">insert into exam values(null,'刘备',97,50,50);

style="font-size: 1.167rem;">insert into exam values(null,'曹操',90,89,80);

style="font-size: 1.167rem;">insert into exam values(null,'司马懿',90,67,65);

style="font-size: 1.167rem;">insert into exam values(null,'刘阿斗');

标准的SQL语句通常可分为如下的几系列型:

show

        1.2  sql语言

     SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而树立的操作命令集。SQL功用强大、简单易学、使用方便,已经济体制改进成了数据库操作的根底,况兼将来大概全数的关系型数据库均辅助SQL。

> data-wiz-span="data-wiz-span" style="color: #ff0000"> 

> data-wiz-span="data-wiz-span" style="color: #ff0000">特点

     非进度性语言。一条语句一个结实。多条语句之间一贯不影响。每一条SQL推行完都会有一个实际的结果出现。

 

style="font-size: 1.167rem">SQL是用来操作关周详据库的语言,具备查询、垄断、定义和调控关系型数据库的四地点功效

 

1.2 数据查询

style="font-size: 1.167rem;">文件结构:

style="font-size: 1.167rem;">名字:    

style="font-size: 1.167rem;">语法:

█▓     查询全数消息

       select * from 表名

█▓    查询钦命列的新闻

        select 列名,列名... from 表名;

█▓     条件查询

        select * from表名 where 条件

 

█▓    运算符

        

 

 

比较运算符

>  <<=  >=  =<>

超过、小于、大于/小于等于、不等于

between 1 and 10

展示某一间隔的值:1—10以内

in(1,2,3)

浮未来in列表中的值:1、2、3Infiniti制四个

Like ‘张_’

Like ‘张%’

漏洞相当多查询:%表示零或私行多个字符,_代表二个字符.

例子1:张三丰      like ‘张%’

例子2:张三        like ‘张_’

is null、is not null

是不是为空

 

逻辑运算符

and&&

多少个尺码还要建设构造

or||

多个规格跋扈三个家徒壁立

not!

不成立,例如:where not(age>18)

█▓       虑重

        查询排重:select distinct 列名 from 表名 where 条件;

 

█▓       别名以及列运算

        select 列名 as 别名, 列名 as 别名 ... from 表名 where 条件;

 

█▓     order by 排序 

        select * from 表名 order by 列名 asc desc;

█▓     关于null 问题 

        通过 ifnull(values,default)解决 

 

█▓    SQL中聚合 / 聚焦函数

        集中函数:四个数据开展览演出算,运算出三个结出。举例,求和,平均值,最大值,最小值。

图片 1

        语法:select avg(列名) from 表名;都是位于 select 后

 

█▓  █▓  █▓      group by 分组查询

            select  ... from ... group by 列名;

 

 

█▓  █▓  █▓ █▓  █▓  █▓ █▓  █▓  █▓ █▓  █▓ 至关重要总括 select 语句实行各样   █▓  █▓ █▓  █▓  █▓ █▓  █▓  █▓ █▓  █▓  █▓ 

 

select …要呈现的内容.. from …表名.. where 条件…. group by …分组的列 …having …分组后的标准… order by …排序

 

select …4… from …1.. where …2.. group by ..3…having ..5… order by ...6.

 

 

1,DCL(Database Control Language) :数据调节语言,主要由grant和revoke关键字组合。

style="font-family: SimSun; font-size: 24px; color: #3333ff; background-color: #ffffff;">查看数据库

show databases;

style="font-family: SimSun; font-size: 24px; color: #3366ff;">查看表

style="font-family: SimSun; font-size: 24px; color: #3366ff; background-color: #ff0000;"> style="font-family: SimSun; font-size: 18px; color: #ffff00;">查看编码格式

style="font-family: SimSun; font-size: 24px; color: #000000;"> style="font-family: SimSun; font-size: 18px;"> style="font-family: SimSun; font-size: 18px;"> style="color: #555555; font-family: 'microsoft yahei'; font-size: 15px;">show variables like 'character%';

style="font-family: SimSun; font-size: 18px; color: #ffff00; background-color: #ff0000;">存在的全数表

show tables;

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">创造表的授命

show create table table_name;

style="font-family: SimSun; font-size: 18px; color: #ffff00; background-color: #ff0000;">表的协会

show index from table_name;

style="font-family: SimSun; font-size: 18px;">图片 2

show columns from table_name;

style="font-family: SimSun; font-size: 18px;">图片 3

> style="color: red;">注: > > > style="color: red;">“show columns from table_name; > > > style="color: red;">” > > > style="color: red;">和“ > > > style="color: red;">desctable_name;” > > > style="color: red;">效果是同一的。

show table status like "table_name"G

style="font-family: SimSun; font-size: 18px;">图片 4

> style="color: red;">注: > > > style="color: red;">”G” > > > style="color: red;">是为了让数据显示更清晰易懂,也能够不安装。

style="font-family: SimSun; font-size: 24px; color: #3333ff;">查看服务器

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">服务器状态

show status;

style="font-family: SimSun; font-size: 18px; background-color: #ff0000;"> > style="color: #ffcc00;">服务器配置变量

show variables;

        1.3  sql分类

style="font-size: 1.167rem; color: #ff0000">DDL (数据定义语言)

style="font-size: 1.167rem">数据定义语言 - Data Definition Language

style="font-size: 1.167rem">用来定义数据库的指标,如数据表、视图、索引等

style="font-size: 1.167rem">create drop alter truncate

 

style="font-size: 1.167rem; color: #ff0000">DML (数据垄断语言)

style="font-size: 1.167rem">数据管理语言 - Data Manipulation Language

style="font-size: 1.167rem">在数据库表中更新,增删记录

如 update, insert, delete 不含有查询

 

style="font-size: 1.167rem; color: #ff0000">DCL (数据调整语言)

style="font-size: 1.167rem">数据调节语言 – Data Control Language

style="font-size: 1.167rem">指用于安装客户权限和调整专门的学业语句

style="font-size: 1.167rem">如grant,revoke,if…else,while,begin transaction

 

style="font-size: 1.167rem"> > > style="color: #ff0000">DQL (数据查询语言)(★★★★★)

style="font-size: 1.167rem">数据查询语言 – Data Query Language

style="font-size: 1.167rem">数据表记录的查询。

style="font-size: 1.167rem">select

二、数据备份和苏醒

█▓  █▓  █▓      1.备份

    

语法:mysqldump -u 客商名 -p 数据库名 > 磁盘SQL文件路线

 █▓  █▓ █▓        2.恢复

        复苏措施1:

                1.创办数据库

                            备份的时候,没有备份创立数据库的言辞,当供给恢复生机有些具体多少的时候必要手动创立

                  2. 导入数据

                    source D://mydb.sql

          苏醒措施2:

                1.创设数据库

                 2.语法:mysql -u 客商名 -p 导入库名 < 硬盘SQL文件相对路线

                

2.DDL(Database Define Language):数据定义语言,主要由Create、Drop、Alter和Truncate关键字组合。

use

二、对数据库举办操作的语句

 

1.1 数据库中暗许自带有4个库:

        style="background-color: #ffd700">1.information_schema 数据库:

    当中保存着关于MySQL服务器所保险的富有别的数据库的新闻。如数据库名,数据库的表,表栏的数据的表,表栏的数据类型与拜谒权限等。

      style="background-color: #ffd700">   2.performance_schema 数据库:

style="font-size: 1.167rem">存储引擎:命名PELX570FORMANCE_SCHEMA,首要用于手提式有线电话机数据库服务器质量参数。

        style="background-color: #ffd700">3.mysql 数据库:

        mysql库是系统库,里面保存有账户音信,权限音信,存储进度,event,时区等新闻

      style="background-color: #ffd700">  4.test 数据库:

style="font-size: 1.167rem">那个是设置时候创制的三个测量检验数据库,和它的名字同样,是三个完全的空数据库,未有别的表,能够去除。

 

1.2 查看全体数据库

style="font-size: 1.167rem; background-color: #ffd700">1.1 查询当前具备的数据库

show databases;

style="font-size: 1.167rem; background-color: #ffd700">1.2 查看当前数码的开创格局:查看数据库的编码表

show create database 库名;

style="font-size: 1.167rem; background-color: #ffd700">1.3 创设数据库

create database 数据库名: 由于创立数据库时并未有一些名编码表,因而会动用安装数据库时私下认可的编码表

create database 数据库名 character set 编码表名;创制数据库会利用钦赐的编码表

style="font-size: 1.167rem; background-color: #ffd700">1.4 删除数据库

drop database 数据库名;

style="font-size: 1.167rem; background-color: #ffd700">1.5 修改数据库编码集

alter database 数据库名称 character set 字符集;

 

1.3 数据表结构的sql语句

        1.1 数据表的创导语句

        create table 表名(         

style="font-size: 1.167rem"> 列名 数据类型,          

style="font-size: 1.167rem"> 列名 数据类型,

style="font-size: 1.167rem"> ……

style="font-size: 1.167rem"> 列名 数据类型 (最后三个列无需逗号)

        );

style="font-size: 1.167rem; background-color: #ffd700">1.2 查看表

       show tables : 查看该数据库的装有的表

                show create table 表名 :查看建表语句以及字符集

                desc emp 查看表的详细新闻

                show columns from emp ;查看表的列消息

1.4 约束

        1.1 主键约束

                primary key

                varchar 类型的主键不得以自增加.

                示例:

                        【示例】

style="font-size: 1.167rem">create table 表名 (

style="font-size: 1.167rem"> id int primary key auto_increment,

style="font-size: 1.167rem"> name varchar(20),

style="font-size: 1.167rem"> ………….

style="font-size: 1.167rem">);

          1.2 独一约束

                unique 内容不容许再度,可以为null(null不算重复)。 

三个表里能够加上几个独一约束。

style="font-size: 1.167rem">【示例】

style="font-size: 1.167rem">create table 表名 (

 id int primary key auto_increment,

style="font-size: 1.167rem"> name varchar(20) unique,

style="font-size: 1.167rem"> ………….

style="font-size: 1.167rem">);

style="font-size: 1.167rem">独一约束和主键约束的界别  

style="font-size: 1.167rem">1、独一约束可以是空(null)。 然而主键约束无法为空

style="font-size: 1.167rem">2、一张表中只好有多个主键,但是独一约束能够有七个

          1.3 非空约束

        not null 不容许为空 表示该列的剧情 不容许为空。

style="font-size: 1.167rem">约束的指标。

style="font-size: 1.167rem">目标:保险数据的不利。

style="font-size: 1.167rem">约束列。限制列的剧情。

1.5  数据表结构的修改

        1.修改数据表

                可以对表名、表中的列名、列的类型、列的约束进行增加和删除改

                语法 :alter table 表名  add/drop/modify  改名  类型长度  约束;

         2. 改造现存列的连串,长度和束缚 用modify

       

  1. 修改现成列名称

                    语法 alter table 表名 change 旧列名 新列名 类型(长度) 约束;

·        4. 刨除现存列

                    语法 alter table 表名 drop 列名;

          5. 修改表名 

                    语法 :rename table 旧表名 to 新表名

          6. 修改表的字符集 

                    语法 : alter table 表名 character set 编码集;

1.6 数据表的删减

         语法 : drop table 表名:

 

三、外键约束

 

增加外键须要专心的主题素材

l  假若从表要去加多二个外键约束。须要主表被引述的字段是主键只怕独一的。经常采取主键。

l  要是要删减主表中的数据。供给在从表中那么些数量,要未有被引述,才得以去删除。

l  纵然要向从表中去丰裕数码。需要在主表中,要有相应的数目。才足以去充分。

l  就算要删除表。要先删除从表。然后去删除主表。

l  新建表的时候。要求先去创设主表,然后去创建从表。

 

职能:保持数据的完整性,和有效。

 

 

1.增添外键约束的语法

            创立表之后增添外键

█▓  █▓        alter table 从表名称    add foreign key (外键列的称谓)references 主表名称(主键)

 

                创制表的时候拉长外键

/*开创机关表*/

create table dept(

       id int primary key auto_increment,

       name varchar(20)

);

/*创设职员和工人表*/

create table employee(

       id int primary key auto_increment,

       name varchar(20),

       age int ,

       salary double,

       dept_id int,

       foreign key (dept_id) references dept(id)

);

 

总结:

库的操作

创建库:create database 库名 character set 编码表;

删除库:drop database 库名;

查询库:show databases;

查看库的编码表:show create database 库名;

更改库:use 库名;

翻开当前正值选拔的库:select database();

修改库的编码表:alter database 库名 character set 编码表;

 

表本人的操作

创建表:create table 表名( 列名 列的类型(长度)  类的束缚 ,列名 列的门类(长度)  类的约束...... );

删除表:drop table 表名;

查询表:show tables;

查看表的组织:desc 表名;

查看表的编码表:show create table 表名;

修改表:alter table 表名 增/删/改 列名 列的类型(长度) 约束;

add/drop/change/modify

修改表名:rename table 旧表名 to 新表名;

 

 

表中多少的操作

增:insert into 表名(列名) values(值);

删:delete from 表名 where 条件;  truncate

改:update 表名 set 列名=值 ,列名=值 where 条件;

查:select 列名 as 别名 ,列名 as 别名… from 表名  where 条件 group by 列名 having 条件 order by 排序.

询问排重:select distinct 列名 from 表名 where 条件;

 

 

聚合函数:

count 计算个数、sum求和、avg 平均值、max、min

在行使那多少个函数进行数据的计算解析时,不常要求对数码表中的列进行多少的分组管理。group by

 

分组 group by :

 

 

排序:order  by 列名  asc | desc;

 

 

 

 

 

 

 

 

 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 

 

 

 

发源为知笔记(Wiz)

3,DML(Database Manipulate Language):数据调节语法,首要由insert、update和delete关键字组合。

style="font-family: SimSun; font-size: 24px; color: #3366ff;">使用数据库

use database_name;

三、数据记录的增加和删除改

    

       在java代码中对数据库操作最频仍的正是对表中数量的CRUD操作:create read / retrive update delete

多少记录存储地点

            

                    增:  语法:insert into 表名 (列名,列名,列名。。。) values( 值,值,值。。。);

                    改:update 表名 set 列名 = 值 , 列名 = 值 .. . [where 条件语句];            notes:借使不加条件 则修改整列

                    删:delete :delete from 表名 [where 条件语句]                       

                             notes:若无where 删除表中全部的笔录    delete 删除的是行

                                          truncate table 表名 是删除三个表,之后在依附你 的表结构在给您创制一张新表

 

 

 

 

 

 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 

 

 

 

根源为知笔记(Wiz)

4,DQL(Database Query Language):数据查询语言,主要由select关键字组合

create

5,TCL(Tranlasion Control Language):事物资调剂整语言,主要由commit、rollback和savePoint关键字组合。

style="font-family: SimSun; font-size: 24px; color: #3366ff;">创立数据库

create databasedatabase_name;

style="color: #3366ff; font-family: SimSun; font-size: 24px;">创建表

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">成立非偶尔表

create table student_info(StuID int not null auto_increment,StuName varchar(15) not null,Telephone bigInt not null,primary key(StuID));

> style="font-family: SimSun; font-size: 18px; color: #cc0000;">注: > > > style="color: red;">1 > > > > style="color: red;">, > > > > style="color: red;">auto_increment > > > > style="color: red;">属性的目的只好是整形,在张开值插入时若不钦赐具体的值,或钦定其为 > > > > style="color: red;">null > > > > style="color: red;">或 > > > > style="color: red;">0 > > > > style="color: red;">,则其机动赋值为当下列的最大值再增进 > > > > style="color: red;">1 > > > > style="color: red;">的值。 > > > style="color: red;">2 > > > > style="color: red;">, > > > > style="color: red;">primary key() > > > > style="color: red;">是设置主键 > > > > style="color: red;">, > > > > style="color: red;">二个表能够持续一个主键。

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">成立偶然表

create temporary table Student_info(StuID int not null auto_increment,StuName varchar(15) not null,Telephone bigInt not null,primary key(StuID));

> style="color: red;">注:制造一时表要用关键字 > > > style="color: red;">”temporary” > > > style="color: red;">,一时表首假若用来保存一些一时半刻数据,临时表的数码只是在时下连年可用,当断开链接后就能, > > > style="color: red;">MySQL > > > style="color: red;">就能够自行删除一时表。

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">创立复制旧表的数额和布局的新表

create table new_table select * from old_table;

> style="color: red;">注:这种方法会将旧表中的全体内容都拷贝过来,当然大家也得以用 > > > style="color: red;">delete > > > style="color: red;">、insert into > > > style="color: red;">来删除、扩展。不过这种措施最倒霉的地点正是未有了旧表的 > > > style="color: red;">primary key > > > style="color: red;">, > > > style="color: red;">extra(auto_incremet) > > > style="color: red;">等天性。供给和煦用 > > > style="color: red;">alter > > > style="color: red;">手动增多。

style="background-color: #ff0000; color: #ffcc00; font-family: SimSun; font-size: 18px;">创制复制旧表的组织的新表

create table new_table select * from old_table where 1 = 2;

> style="color: red;">注:这种措施只是复制表结构,当然旧表中的 > > > style="color: red;">primary key > > > style="color: red;">  > > > style="color: red;">和 > > > style="color: red;">auto_increment > > > style="color: red;">等品质都是复制过来了。

show

desc

style="font-family: SimSun; font-size: 24px; color: #3333ff; background-color: #ffffff;">查看数据库

show databases;

style="font-family: SimSun; font-size: 24px; color: #3366ff;">查看表

style="font-family: SimSun; font-size: 24px; color: #3366ff; background-color: #ff0000;"> style="font-family: SimSun; font-size: 18px; color: #ffff00;">查看编码格式

style="font-family: SimSun; font-size: 24px; color: #000000;"> style="font-family: SimSun; font-size: 18px;"> style="font-family: SimSun; font-size: 18px;"> style="color: #555555; font-family: 'microsoft yahei'; font-size: 15px;">show variables like 'character%';

style="font-family: SimSun; font-size: 18px; color: #ffff00; background-color: #ff0000;">存在的全体表

show tables;

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">成立表的下令

show create table table_name;

style="font-family: SimSun; font-size: 18px; color: #ffff00; background-color: #ff0000;">表的布局

show index from table_name;

style="font-family: SimSun; font-size: 18px;">图片 5

show columns from table_name;

style="font-family: SimSun; font-size: 18px;">图片 6

> style="color: red;">注: > > > style="color: red;">“show columns from table_name; > > > style="color: red;">” > > > style="color: red;">和“ > > > style="color: red;">desctable_name;” > > > style="color: red;">效果是同等的。

show table status like "table_name"G

style="font-family: SimSun; font-size: 18px;">图片 7

> style="color: red;">注: > > > style="color: red;">”G” > > > style="color: red;">是为着让多少展现更清晰易懂,也得以不设置。

style="font-family: SimSun; font-size: 24px; color: #3333ff;">查看服务器

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">服务器状态

show status;

style="font-family: SimSun; font-size: 18px; background-color: #ff0000;"> > style="color: #ffcc00;">服务器配置变量

show variables;

style="font-family: SimSun; font-size: 18px; color: #3366ff;">查看表结构

style="font-family: SimSun; font-size: 18px; background-color: #ffffff;">desc table_name;

use

drop

style="font-family: SimSun; font-size: 24px; color: #3366ff;">使用数据库

use database_name;

 

create

style="font-size: 18px;">撤废数据库

style="font-family: SimSun; font-size: 24px; color: #3366ff;">制造数据库

create database if not exists database_name;

style="color: #3366ff; font-family: SimSun; font-size: 24px;">创建表

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">创立非有的时候表

create table student_info(StuID int not null auto_increment,StuName varchar(15) not null,Telephone bigInt not null,primary key(StuID));

> style="font-family: SimSun; font-size: 18px; color: #cc0000;">注: > > > style="color: red;">1 > > > > style="color: red;">, > > > > style="color: red;">auto_increment > > > > style="color: red;">属性的靶子只可以是整形,在进展值插入时若不点名具体的值,或钦点其为 > > > > style="color: red;">null > > > > style="color: red;">或 > > > > style="color: red;">0 > > > > style="color: red;">,则其活动赋值为方今列的最大值再增多 > > > > style="color: red;">1 > > > > style="color: red;">的值。 > > > style="color: red;">2 > > > > style="color: red;">, > > > > style="color: red;">primary key() > > > > style="color: red;">是安装主键 > > > > style="color: red;">, > > > > style="color: red;">一个表能够不断贰个主键。

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">创制偶尔表

create temporary table Student_info(StuID int not null auto_increment,StuName varchar(15) not null,Telephone bigInt not null,primary key(StuID));

> style="color: red;">注:创立有时表要用关键字 > > > style="color: red;">”temporary” > > > style="color: red;">,一时表首若是用以保存一些有时数据,有的时候表的数码只是在当下连连可用,当断开链接后就能够, > > > style="color: red;">MySQL > > > style="color: red;">就能够自动删除一时表。

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">创设复制旧表的多少和结构的新表

create table new_table select * from old_table;

> style="color: red;">注:这种方法会将旧表中的全数情节都拷贝过来,当然大家也足以用 > > > style="color: red;">delete > > > style="color: red;">、insert into > > > style="color: red;">来删除、扩展。不过这种方法最不佳的地点正是从未了旧表的 > > > style="color: red;">primary key > > > style="color: red;">, > > > style="color: red;">extra(auto_incremet) > > > style="color: red;">等品质。须求本人用 > > > style="color: red;">alter > > > style="color: red;">手动增加。

style="background-color: #ff0000; color: #ffcc00; font-family: SimSun; font-size: 18px;">创建复制旧表的结构的新表

style="background-color: #ffffff; color: #000000; font-family: SimSun; font-size: 18px;"> > style="font-family: SimSun; font-size: 18px;">  create table new_table select * from old_table where 1 = 2;

style="background-color: #ffffff; color: #000000; font-family: SimSun; font-size: 18px;"> > style="font-family: SimSun; font-size: 18px;">     > style="font-size: 18px;"> > style="color: red;">注:这种方法只是复制表结构,当然旧表中的 > style="color: red;">primary key > style="color: red;"> 和 > style="color: red;">auto_increment > style="color: red;">等性子都以复制过来了。

style="background-color: #ff0000; color: #ffcc00; font-family: SimSun; font-size: 18px;"> > style="color: #ffcc00; font-family: SimSun; font-size: 18px;">创设表时钦命引擎和编码格局

style="font-family: SimSun; font-size: 18px;">  create table new_table(id int not null,name varchar(20) not null)engine=InnoDB,default charset=UTF-8;

style="font-family: SimSun; font-size: 18px;">     > style="color: #ff0000;">注:因为默许的斯特林发动机便是InnoDB,默许的编码格局正是utf-8,所以借使不退换引擎和编码情势能够不增多engine=InnoDB,default charset=utf-8

style="font-family: SimSun; font-size: 18px; color: #00ffff; background-color: #ff0000;"> > style="font-family: SimSun; font-size: 18px;"> > style="font-family: SimSun; font-size: 18px;"> > style="font-family: SimSun; font-size: 18px;">创立表的时候,内定暗许的值

style="font-family: SimSun; font-size: 18px;">  create table new_table(id int not null,name varchar(20) not null,salary int not null default 1200)engine=InnoDB,default charset=UTF8;

style="font-family: SimSun; font-size: 18px;">    注:salary int not null default 1200,表示插入全体行中salary的暗中认可值都以1200。

 

 

drop database databasename;

 

 

 

style="font-size: 18px;">撤销表

drop table if exists table_name;

style="font-family: SimSun; font-size: 18px; color: #ff0000;">注:dropexists的用法是分裂的,drop是恒久删除表,而delete只是去除表中的数码。

 

 

 

delete

desc

style="font-family: SimSun; font-size: 18px; color: #3366ff;">删除表数据

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">删除表的具有数据

delete from table_name;

style="color: yellow; background: red;">删除内定表中的多寡

delete from table_name where column_name > value;

style="font-family: SimSun; font-size: 18px; color: #3366ff;">查看表结构

style="font-family: SimSun; font-size: 18px; background-color: #ffffff;">desc table_name;

insert

drop

style="font-family: SimSun; font-size: 18px; color: #3366ff;">插入数据

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">插入完整元组

insert into Student_info values (10,'宋文',123456789);

style="background-color: #ff0000; color: #ffcc00; font-family: SimSun; font-size: 18px;">插入非完全元组

insert into Student_info(StuName,Telephone) values ('小吴,'123456789');

> style="font-family: SimSun; font-size: 18px;">注:在决定插入元组数据中的属性个数时,首要依靠表中属性的完整性来调控。

style="font-family: SimSun; font-size: 18px; color: #3366ff;">复制表数据

style="font-family: SimSun; font-size: 18px; color: #3366ff;"> > style="color: #ffcc00; font-family: SimSun; font-size: 18px; background-color: #ff0000;">复制旧表的数量到新表

insert into 新表 select * from 旧表

> style="font-size: 18px;">注: > style="font-size: 18px;">这里八个表的结构须要要一律 > style="color: red;">这里只是复制数据,旧表的 > > > style="color: red;">primary key > > > style="color: red;">和 > > > style="color: red;">auto_increment > > > style="color: red;">依然必要自身充足。上面包车型地铁法子也能够博得五个精光一样的表 > style="color: red;">方法一:首先用“ > > > style="color: red;">creat table  > > > style="color: red;">新表 like  > > > style="color: red;">旧表”将旧表的布局复制过来,然后选择“ > > > style="color: red;">insert into > > > style="color: red;">新表 select from 旧表 > > > style="color: red;">”将表中的数量复制过去。 > style="color: red;">方法二: > > > style="color: red;">show create table > > > style="color: red;">旧表*命令获得创设表的下令,复制粘贴再转移名称最后运维,得到一个数据结商谈品质同样的新表 > > > style="color: red;">( > > > style="color: red;">除名称 > > > style="color: red;">) > > > style="color: red;">,再用这里 > > > style="color: red;">insert > > > style="color: red;">命令,将数据复制过去,就可以获得完全平等的表了。

style="background-color: #ff0000; color: #ffcc00; font-family: SimSun; font-size: 18px;">复制旧表的部分数据到新表

insert into 新表 (字段1,字段2......)select 字段1,,字段2,.....from 旧表

> style="font-family: SimSun; font-size: 18px;">注: > style="font-family: SimSun; font-size: 18px;">1,这里四个表的分外字段数据类型要平等。 > style="color: red;">2,这里只是复制数据,旧表的 > > > style="color: red;">primary key > > > style="color: red;">和 > > > style="color: red;">auto_increment > > > style="color: red;">照旧要求团结加上。

style="font-family: SimSun; font-size: 18px; color: #3366ff;">insert ignore into 和 insert into 的区别

INSERT IGNORE INTO与INSERT INTO的差别正是INSERT IGNORE会忽略数据库中早已存在的数额,假使数据库未有数据,就插入新的多少,倘若有数量的话就跳过那条数据。INSERT IGNORE INTO当插入数据时,在设置了笔录的独一性后,假若插入重复数据,将不回来错误,只以警示情势重回。 而REPLACE INTO into如若存在primary 或 unique一样的笔录,则先删除掉。再插入新记录。

 

select

style="font-size: 18px;">撤消数据库

style="font-family: SimSun; font-size: 18px; color: #3366ff;">查看当前天期

select current_date;

style="font-family: SimSun; font-size: 18px;">图片 8

style="font-family: SimSun; font-size: 18px; color: #3366ff;">查看服务器版本

select version();

style="font-family: SimSun; font-size: 18px;">图片 9

style="font-family: SimSun; font-size: 18px; color: #3366ff;">查看当前数据库名称

select database();

style="font-family: SimSun; font-size: 18px; color: #3333ff;">查看当前客户名

select user();

style="font-family: SimSun; font-size: 18px; color: #3333ff;">查询表中多少的话语

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">查询表中钦命字段无重复的数码

select distinct column_name from table_name wherecondition;

> style="font-family: SimSun; font-size: 18px;">注: > style="color: red;">1 > > > style="color: red;">, > > > style="color: red;">distinct > > > style="color: red;">用于显示的多少内容不设有重新 > style="color: red;">2 > > > style="color: red;">, > > > style="color: red;">* > > > style="color: red;">表示具有数据 > style="color: red;">3 > > > style="color: red;">, > > > style="color: red;">condition > > > style="color: red;">可以用超过、小于等

style="font-size: 18px; color: #3333ff;">查询数据之动态钦命条件语句

 比如有三个表,分别是table1和table2,在table第11中学有二个id1属性,在table第22中学有三个id2属性。假使要查询符合id第22中学的id1的多寡,无需分两句书写,能够直接将其写到一齐,比方:

select table1.id1 from table1 where id1=(select table2.id2 from table2 where id2=1);

总得注意:在口径语句中的得出table2的多少只可以是叁个显眼的数值,不能够是多少个数组。

连接查询

style="font-size: 18px; color: #ffff00; background-color: #ff0000;">语法:

select 属性 from 表1,表2 where (表1.属性 = 表2.属性);

注:“表1.属性 = 表2.属性” 是很主要的,它意味着八个表连接的尺码。

style="font-size: 18px; color: #ffff00; background-color: #ff0000;">简单连接查询

select * from student_info,test_table where( StuID >2) and(StuID < 5) and (student_info.StuID = test_table.test_StuID);

> style="color: red;">注:查询Student_info表中StuIDtestable表中tesStuID的值一样的具备数据,并且满足Student_info中的StuID在2到5的条件。

style="font-size: 18px;">图片 10

style="font-size: 18px;">图片 11

 

 

drop database databasename;

自连接查询

style="font-size: 14px; color: #000000; background-color: #ff0000;"> style="font-size: 18px; color: #ffff33;">语法:

  使用小名

 

例如:

style="font-size: 18px;">撤销表

drop table if exists table_name;

style="font-family: SimSun; font-size: 18px; color: #ff0000;">注:dropexists的用法是不等同的,drop是恒久删除表,而delete只是删除表中的数据。

图片 12

打字与印刷这些表中全部的id,name,但是那一个name对应的id至少有贰次现身在manager_id中(尽管把id看成员工编号,manager_id看成职员和工人上司的id号,那么请打字与印刷全体的管理层)。

select distinct z.id,z.name from zilianjie z,zilianjie j where j.manager_id=z.id;

 

超连接查询

style="font-size: 18px; color: #ffff33; background-color: #ff0000;">语法:

其中连接:select 属性1,属性2....... from 表1 inner join 表2 on 表1.属性 = 表2.属性

左连接: select属性1,属性2....... from 表1 left join 表2 on 表1.属性 = 表2.属性

右连接 : select 属性1,属性2....... from 表1 left join 表2 on 表1.属性 = 表2.属性

其间连接

inner join 格局的连年称为内部连接,也足以写为join。内部连接表示除非满意条件的笔录才会来获得查询结果中

select * from student_info inner join test_table on student_info.StuID = test_table.test_StuID;

那么些讲话等价于select * from student_info,test_table where(student_info.StuID =test_table.test_StuID);

style="background-color: #ffffff;">图片 13

style="background-color: #ffffff;">图片 14

 

 

左连接

left join 方式的连年称为左连接。查询结果包括join左边表中的享有记录以及侧面表满足条件的记录

右连接

right join 格局的三翻五次称为右连接。查询结果包罗join侧边表中的有着记录以及右石英钟中满意条件的笔录

并运算查询

语法

union代表并运算

style="background-color: #ff0000; color: #ffff33; font-size: 18px; font-family: SimSun;">实例

style="background-color: #ffffff;">将三个表中满意条件的多少展现

select StuID,StuName,Telephone from student_info where StuName = "第多个名称"

union

select test_StuID,test_Name from test_table where test_StuID= 4;

style="background-color: #ffffff;">图片 15

style="font-family: SimSun; font-size: 18px; color: #ff9966;">注:这里八个表须求查询出来的性质数据要一律,不然就能够油然则生“EHavalROWrangler1222 (2壹仟): The used SELECT statements have a different number of columns”的错误。

 

update

delete

style="font-family: SimSun; font-size: 18px; color: #3333ff;">更新部分数据

update table_name set StuName = "易建联" where StuID = 1;

style="font-family: SimSun; font-size: 18px;">图片 16

style="font-family: SimSun; font-size: 18px; color: #3333ff;">更新整列的值

update table_name set Telephone= Telephone 1;

style="font-family: SimSun; font-size: 18px;">图片 17

style="font-family: SimSun; font-size: 18px; color: #3366ff;">删除表数据

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">删除表的具有数据

delete from table_name;

style="color: yellow; background: red;">删除钦赐表中的多寡

delete from table_name where column_name > value;

alter

 

style="font-family: SimSun; font-size: 18px; color: #3333ff;">更改表

style="font-family: SimSun; font-size: 18px; color: #ffff00; background-color: #ff0000;">在表中追加五个属性

alter table 表 add column 属性 数据类型 [列的完整性];

style="background-color: #ff0000; color: #ffcc00; font-family: SimSun; font-size: 18px;">改换表中有些属性

alter table 表 change 属性 属性 数据类型 [列的完整性];

style="background-color: #ff0000; color: #ffff00; font-family: SimSun; font-size: 18px;">打消表中的某部属性

alter table 表 drop 属性;

style="background-color: #ff0000; color: #ffff33; font-family: SimSun; font-size: 18px;">改造表的称号

alter table 旧表名 rename 新表名;

style="background-color: #ff0000; color: #ffff33; font-family: SimSun; font-size: 18px;">裁撤和改换表的主键

alter table 表 drop primary key,add primary key(属性);

style="background-color: #ff0000; color: #ffff33; font-family: SimSun; font-size: 18px;">在第一行增多属性

alter table table_name add I [….]first;

> style="color: red;">注: > style="color: red;">这里的 > > > style="color: red;">first > > > style="color: red;">表示在首先行加多属性 > > > style="color: red;">I > style="color: red;">[….] > > > style="color: red;">用于表示列的完整性 > style="color: red;">举例: > style="color: red;">alter table userinfo add userAge varchar(2) not null first;

style="font-family: SimSun; font-size: 18px; color: #ffff33; background-color: #ff0000;">在属性I前边增加J属性

alter table table_name add I […] after J;

> style="font-family: SimSun; font-size: 18px;">注: > style="color: red;">[…] > > > style="color: red;">用于表示列的完整性 > style="color: red;">这里的 > > > style="color: red;">I[…] after J > > > style="color: red;">表示在 > > > style="color: red;">J > > > style="color: red;">后边加多属性 > > > style="color: red;">I

style="background-color: #ff0000; color: #ffff33; font-family: SimSun; font-size: 18px;">删除字段I的暗许值

alter table table_name alter I drop default;

> style="color: red;">注:使用 ALTE路虎极光命令及 > > > style="color: red;"> DROP > > > style="color: red;">子句来删除字段的暗中认可值

style="background-color: #ff0000; color: #ffff00; font-family: SimSun; font-size: 18px;">改动表的引擎

alter table table_name engine=engineName;

> style="font-family: SimSun; font-size: 18px;">注:将数据表的斯特林发动机改动为钦定的引擎。

style="background-color: #ff0000; color: #ffff00; font-family: SimSun; font-size: 18px;">修改表种类的伊始值

alter table table_name auto_increment=value;

> style="font-size: 18px;">注: > style="color: red;">改变表的行列开端值为 > > > style="color: red;">value > > > style="color: red;">。 > style="color: red;">这里的 > > > style="color: red;">value > > > style="color: red;">依赖设定 > > > style="color: red;">auto_increment > > > style="color: red;">的列的数据类型而定,如 > > > style="color: red;">int > > > style="color: red;">则足感到整数,如 > > > style="color: red;">varchar(4) > > > style="color: red;">可感觉字符串

truncate

视图

 

style="font-family: SimSun; font-size: 18px; color: #3333ff;">创立视图

style="font-family: SimSun; font-size: 18px; color: #ffff00; background-color: #ff0000;">创制视图语法:

create view 视图名[字段名1,字段名2,.....] as 查询语句

style="background-color: #ff0000; color: #ffff00; font-family: SimSun; font-size: 18px;">从单个表中派生视图

如:

create view v1 as select StuID,StuName from Student_info;

style="font-family: SimSun; font-size: 18px;">图片 18

style="color: #ffff00; font-family: SimSun; font-size: 18px; background-color: #ff0000;">从多个表中派生视图

如:

create view v2 as select * from student_info,test_table where student_info.StuID = test_table.test_StuID;

style="font-family: SimSun; font-size: 18px;">图片 19

style="font-family: SimSun; font-size: 18px;">图片 20

style="background-color: #ff0000; color: #ffff00; font-family: SimSun; font-size: 18px;">视图虚字段

如:

create view v3 as select StuName,Telephone as oritel,telephone 1 as retel from student_info;

> style="font-size: 18px; color: #ff6600;">注:这里再度创造了贰个视图,有多少个属性分别为StuName、oritel、retel,个中oritel属性正是Telephone,retel属性是Telephone 1的值。因为此处的oritel和retel属性在原表中是从未的,需求通过计算而来的,全体被产生虚字段。

style="font-size: 18px;">图片 21

style="font-family: SimSun; font-size: 18px; color: #3333ff;">删除视图

style="font-family: SimSun; font-size: 18px; color: #ffff00; background-color: #ff0000;">删除视图语法:

drop view 视图名

  • > style="font-family: SimSun; font-size: 18px;">如:*

drop view v3;

style="color: #3333ff; font-family: SimSun; font-size: 18px;">视图的证实

style="font-family: SimSun; font-size: 18px;">MySQL中的视图是可更新的,任何对原表的改观都会反射到视图中,或然别的对视图的更动都会反馈到原表上。

style="font-family: SimSun; font-size: 18px; color: #3366ff;">删除表数据

正则表达式

 

style="font-family: SimSun; font-size: 18px; color: #3333ff;">查找钦定的数目

style="font-family: SimSun; font-size: 18px; color: #ffff00; background-color: #ff0000;">查找name字段中以'st'为始发的有着数据:

select name from table_name where name regexp'^st';

style="font-family: SimSun; font-size: 18px; color: #ffff33; background-color: #ff0000;">查找name字段中以'ok'为最终的全体数据:

SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

style="font-family: SimSun; font-size: 18px; color: #ffff33; background-color: #ff0000;">查找name字段中富含'mar'字符串的持有数据:

SELECT name FROM person_tbl WHERE name REGEXP 'mar';

style="font-family: SimSun; font-size: 18px; color: #ffff33; background-color: #ff0000;">查找name字段中以元音字符起初且以'ok'字符串结尾的保有数据:

SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]. ok$';

style="font-family: SimSun; font-size: 18px; color: #ffff33; background-color: #ff0000;">查找name字段中以元音字符伊始或许以'ok'字符串结尾的具有数据:

SELECT name FROM person_tbl WHERE nameREGEXP '^[aeiou]|ok$';

style="font-family: SimSun; font-size: 18px; color: #ffcc00;">删除表的装有数据

NULL运算符

 

style="font-family: SimSun; font-size: 18px; color: #3366ff;">说明:

IS NULL: 当列的值是NULL,此运算符重返true。

IS NOT NULL: 当列的值不为NULL, 运算符再次来到true。

<=>: 比较操作符(不相同于=运算符),当比较的的四个值为NULL时再次回到true。

style="font-family: SimSun; font-size: 18px; color: #3333ff;">例子:

比如:

select * from table where column_name is null;

style="font-family: SimSun; font-size: 18px;">注:将会显示column_name为null的全部数据,无法动用select * from table where column_name = null。

truncate table_name;

 

 

select * from table where column_nameis not null;

style="font-family: SimSun; font-size: 18px;">注:将会来得column_name不为空的有所数据,无法接纳select * from table where column_name != null。

 

select null <=> null;

style="font-family: SimSun; font-size: 18px;">注:将会呈现1。

 

select null <=>"NotEmpty";

style="font-family: SimSun; font-size: 18px;">注:将会显示0。

 

SQL注入

 

style="font-family: SimSun; font-size: 18px; color: #3333ff;">sql注入是怎么

style="font-family: SimSun; font-size: 18px;">正是由此把SQL命令插入到Web表单递交或输入域名或页面央求的查询字符串,最后落成棍骗服务器实施恶意的SQL命令。

style="color: #3333ff; font-family: SimSun; font-size: 18px;">举例

style="font-family: SimSun; font-size: 18px;">MySQL特点,施行语句的时候倘使出现这么的语句将会不报错,何况继续施行,

select * from table_name where user =value;show tables;

style="font-family: SimSun; font-size: 18px;">这样回车就是多少个语句,这里是会执行五个语句的,假设在表单中查询客户的音信,那么在表单输入中的客户名一栏写入,

'jame;delete from user;'

style="font-family: SimSun; font-size: 18px;">那么最终就能够去除user表。

  注:truncate和delete的区分,对于好些个数据库来讲,truncate都被当成DDL管理,truncate被喻为“截断”有个别表-它的成效是删除该表里的全部数目,但保留数据结构。也等于DML中的delete命令,truncate的进度要快得多,况兼truncate不像delete能够去除钦定的笔录,truncate只好删除表中的成套笔录。MySQL对truncate的拍卖相比较特出-借使使用非InnoDB的存款和储蓄引擎,truncate要比delete快;假如使用InnoDB的蕴藏引擎,在MySQL5.0.3事先,truncate和delete完全平等,在5.0.3之后,truncate比delete要快,但只要该表被外键约束所参照,truncate又改为delete操作。在5.0.13过后,快捷truncate总是可用的,即比delete的快慢要快。在行使

 

insert

事务

style="font-family: SimSun; font-size: 18px; color: #3366ff;">插入数据

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">插入完整元组

insert into Student_info values (10,'宋文',123456789);

style="background-color: #ff0000; color: #ffcc00; font-family: SimSun; font-size: 18px;">插入非完全元组

insert into Student_info(StuName,Telephone) values ('小吴,'123456789');

> style="font-family: SimSun; font-size: 18px;">注:在调整插入元组数据中的属性个数时,重要依赖表中属性的完整性来决定。

style="font-family: SimSun; font-size: 18px; color: #3366ff;">复制表数据

style="font-family: SimSun; font-size: 18px; color: #3366ff;"> > style="color: #ffcc00; font-family: SimSun; font-size: 18px; background-color: #ff0000;">复制旧表的数据到新表

insert into 新表 select * from 旧表

> style="font-size: 18px;">注: > style="font-size: 18px;">这里七个表的结构要求要一致 > style="color: red;">这里只是复制数据,旧表的 > > > style="color: red;">primary key > > > style="color: red;">和 > > > style="color: red;">auto_increment > > > style="color: red;">依旧供给团结丰裕。上边的艺术也足以拿走四个精光同样的表 > style="color: red;">方法一:首先用“ > > > style="color: red;">creat table  > > > style="color: red;">新表 like  > > > style="color: red;">旧表”将旧表的结构复制过来,然后利用“ > > > style="color: red;">insert into > > > style="color: red;">新表 select from 旧表 > > > style="color: red;">”将表中的数据复制过去。 > style="color: red;">方法二: > > > style="color: red;">show create table > > > style="color: red;">旧表*命令获得创制表的下令,复制粘贴再转移名称最终运转,获得三个数据结交涉总体性一样的新表 > > > style="color: red;">( > > > style="color: red;">除名称 > > > style="color: red;">) > > > style="color: red;">,再用这里 > > > style="color: red;">insert > > > style="color: red;">命令,将数据复制过去,就足以获得千篇一律的表了。

style="background-color: #ff0000; color: #ffcc00; font-family: SimSun; font-size: 18px;">复制旧表的一部分数据到新表

insert into 新表 (字段1,字段2......)select 字段1,,字段2,.....from 旧表

> style="font-family: SimSun; font-size: 18px;">注: > style="font-family: SimSun; font-size: 18px;">1,这里三个表的相称字段数据类型要一律。 > style="color: red;">2,这里只是复制数据,旧表的 > > > style="color: red;">primary key > > > style="color: red;">和 > > > style="color: red;">auto_increment > > > style="color: red;">依然需求本身加上。

style="font-family: SimSun; font-size: 18px; color: #3366ff;">insert ignore into 和 insert into 的区别

INSERT IGNORE INTO与INSERT INTO的界别正是INSERT IGNORE会忽略数据库中一度存在的多少,若是数据库十分少,就插入新的多寡,假设有多少的话就跳过那条数据。INSERT IGNORE INTO当插入数据时,在安装了笔录的独一性后,如若插入重复数据,将不回来错误,只以警示形式再次回到。 而REPLACE INTO into若是存在primary 或 unique同样的笔录,则先删除掉。再插入新记录。

诚如的话,事务是必需满意4个条件(ACID):Atomicity(原子性)、Consistency(稳固性)、Isolation(隔开性)、Durability(可相信性)

select

1、事务的原子性:一组专门的学业,要么成功;要么撤回。

style="font-family: SimSun; font-size: 18px; color: #3366ff;">查看当今日子

select current_date;

style="font-family: SimSun; font-size: 18px;">图片 22

style="font-family: SimSun; font-size: 18px; color: #3366ff;">查看服务器版本

select version();

style="font-family: SimSun; font-size: 18px;">图片 23

style="font-family: SimSun; font-size: 18px; color: #3366ff;">查看当前数据库名称

select database();

style="font-family: SimSun; font-size: 18px; color: #3333ff;">查看当前客户名

select user();

style="font-family: SimSun; font-size: 18px; color: #3333ff;">查询表中多少的口舌

style="font-family: SimSun; font-size: 18px; color: #ffcc00; background-color: #ff0000;">查询表中钦赐字段无重复的数额

select distinct column_name from table_name wherecondition;

> style="font-family: SimSun; font-size: 18px;">注: > style="color: red;">1 > > > style="color: red;">, > > > style="color: red;">distinct > > > style="color: red;">用于显示的多寡内容不设有重新 > style="color: red;">2 > > > style="color: red;">, > > > style="color: red;">* > > > style="color: red;">表示具有数据 > style="color: red;">3 > > > style="color: red;">, > > > style="color: red;">condition > > > style="color: red;">能够用赶上、小于等

style="font-size: 18px; color: #3333ff;">查询数据之动态钦赐条件语句

 比如有七个表,分别是table1和table2,在table第11中学有三个id1属性,在table2中有叁个id2属性。假若要询问符合id第22中学的id1的数据,不须要分两句书写,能够一贯将其写到一同,举个例子:

select table1.id1 from table1 where id1=(select table2.id2 from table2 where id2=1);

必须小心:在基准语句中的得出table2的多寡只可以是四个显著的数值,不可能是贰个数组。

连日查询

style="font-size: 18px; color: #ffff00; background-color: #ff0000;">语法:

select 属性 from 表1,表2 where (表1.属性 = 表2.属性);

注:“表1.属性 = 表2.属性” 是很器重的,它表示七个表连接的尺码。

style="font-size: 18px; color: #ffff00; background-color: #ff0000;">轻易连接查询

select * from student_info,test_table where( StuID >2) and(StuID < 5) and (student_info.StuID = test_table.test_StuID);

> style="color: red;">注:查询Student_info表中StuIDtestable表中tesStuID的值一样的持有数据,並且满意Student_info中的StuID在2到5的条件。

style="font-size: 18px;">图片 24

style="font-size: 18px;">图片 25

2、稳固性 : 有违法数据(外键约束之类),事务撤回。

 

3、隔开分离性:事务独立运作。二个事务管理后的结果,影响了别样事情,那么别的事务会撤回。事务的百分百割裂,要求就义速度。

自连接查询

style="font-size: 14px; color: #000000; background-color: #ff0000;"> style="font-size: 18px; color: #ffff33;">语法:

  使用外号

4、可信性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。可信赖性和高速度不可兼得, innodb_flush_log_at_trx_commit选项 决定哪些时候啊事务保存到日志里。

例如:

 

图片 26

打字与印刷那几个表中全体的id,name,可是那几个name对应的id至少有三遍面世在manager_id中(如若把id看成职员和工人编号,manager_id看成职员和工人上司的id号,那么请打字与印刷全部的管理层)。

select distinct z.id,z.name from zilianjie z,zilianjie j where j.manager_id=z.id;

 

超连接查询

style="font-size: 18px; color: #ffff33; background-color: #ff0000;">语法:

里头连接:select 属性1,属性2....... from 表1 inner join 表2 on 表1.属性 = 表2.属性

左连接: select属性1,属性2....... from 表1 left join 表2 on 表1.属性 = 表2.属性

右连接 : select 属性1,属性2....... from 表1 left join 表2 on 表1.属性 = 表2.属性

在那之中连接

inner join 格局的一连称为内部连接,也能够写为join。内部连接表示除非知足条件的笔录才会显获得查询结果中

select * from student_info inner join test_table on student_info.StuID = test_table.test_StuID;

本条讲话等价于select * from student_info,test_table where(student_info.StuID =test_table.test_StuID);

style="background-color: #ffffff;">图片 27

style="background-color: #ffffff;">图片 28

 

 

左连接

left join 格局的三番五次称为左连接。查询结果包涵join侧边表中的持有记录以及左侧表满足条件的记录

右连接

right join 情势的接连称为右连接。查询结果包涵join右边表中的具有记录以及右手表中满足条件的笔录

并运算查询

语法

union表示并运算

style="background-color: #ff0000; color: #ffff33; font-size: 18px; font-family: SimSun;">实例

style="background-color: #ffffff;">将八个表中满意条件的数目体现

select StuID,StuName,Telephone from student_info where StuName = "第多少个称呼"

union

select test_StuID,test_Name from test_table where test_StuID= 4;

style="background-color: #ffffff;">图片 29

style="font-family: SimSun; font-size: 18px; color: #ff9966;">注:这里多个表须求查询出来的属性数据要长久以来,否则就能冒出“E汉兰达RO中华V1222 (2一千): The used SELECT statements have a different number of columns”的荒唐。

双索引

update

primary key(column1,column2);

style="font-family: SimSun; font-size: 18px; color: #3333ff;">更新部分数据

update table_name set StuName = "易建联" where StuID = 1;

style="font-family: SimSun; font-size: 18px;">图片 30

style="font-family: SimSun; font-size: 18px; color: #3333ff;">更新整列的值

update table_name set Telephone= Telephone 1;

style="font-family: SimSun; font-size: 18px;">图片 31

安装了双索引的话,那么满足几个数据都重新的数码不会存入,有一个数量再次则能够积累。

alter

图片 32

style="font-family: SimSun; font-size: 18px; color: #3333ff;">更改表

style="font-family: SimSun; font-size: 18px; color: #ffff00; background-color: #ff0000;">在表中追加叁特质量

alter table 表 add column 属性 数据类型 [列的完整性];

style="background-color: #ff0000; color: #ffcc00; font-family: SimSun; font-size: 18px;">退换表中有个别属性

alter table 表 change 属性 属性 数据类型 [列的完整性];

alter table 表 modify 属性 数据类型 [列的完整性];

style="font-family: SimSun; font-size: 18px;">注:change能够改造属性名称,不过modify只能在原本的天性上开展修改。

style="background-color: #ff0000; color: #ffff00; font-family: SimSun; font-size: 18px;">裁撤表中的某些属性

alter table 表 drop 属性;

style="background-color: #ff0000; color: #ffff33; font-family: SimSun; font-size: 18px;">更动表的名号

alter table 旧表名 rename 新表名;

style="background-color: #ff0000; color: #ffff33; font-family: SimSun; font-size: 18px;">撤除和改变表的主键

alter table 表 drop primary key,add primary key(属性);

style="background-color: #ff0000; color: #ffff33; font-family: SimSun; font-size: 18px;">在率先行增添属性

alter table table_name add I [….]first;

> style="color: red;">注: > style="color: red;">这里的 > > > style="color: red;">first > > > style="color: red;">表示在第一行增添属性 > > > style="color: red;">I > style="color: red;">[….] > > > style="color: red;">用于表示列的完整性 > style="color: red;">譬喻: > style="color: red;">alter table userinfo add userAge varchar(2) not null first;

style="font-family: SimSun; font-size: 18px; color: #ffff33; background-color: #ff0000;">在属性I前面加多J属性

alter table table_name add I […] after J;

> style="font-family: SimSun; font-size: 18px;">注: > style="color: red;">[…] > > > style="color: red;">用于表示列的完整性 > style="color: red;">这里的 > > > style="color: red;">I[…] after J > > > style="color: red;">表示在 > > > style="color: red;">J > > > style="color: red;">后边增加属性 > > > style="color: red;">I

style="background-color: #ff0000; color: #ffff33; font-family: SimSun; font-size: 18px;">删除字段I的私下认可值

alter table table_name alter I drop default;

> style="color: red;">注:使用 ALTE奔驰G级命令及 > > > style="color: red;"> DROP > > > style="color: red;">子句来删除字段的默许值

style="background-color: #ff0000; color: #ffff00; font-family: SimSun; font-size: 18px;">退换表的引擎

alter table table_name engine=engineName;

> style="font-family: SimSun; font-size: 18px;">注:将数据表的引擎退换为钦命的引擎。

style="background-color: #ff0000; color: #ffff00; font-family: SimSun; font-size: 18px;">修改表系列的起头值

alter table table_name auto_increment=value;

> style="font-size: 18px;">注: > style="color: red;">更动表的队列开头值为 > > > style="color: red;">value > > > style="color: red;">。 > style="color: red;">这里的 > > > style="color: red;">value > > > style="color: red;">依靠设定 > > > style="color: red;">auto_increment > > > style="color: red;">的列的数据类型而定,如 > > > style="color: red;">int > > > style="color: red;">则足以为整数,如 > > > style="color: red;">varchar(4) > > > style="color: red;">可认为字符串

order by

视图

语法:

style="font-family: SimSun; font-size: 18px; color: #3333ff;">制造视图

style="font-family: SimSun; font-size: 18px; color: #ffff00; background-color: #ff0000;">创立或交流视图语法:

create or replace view 视图名[字段名1,字段名2,.....] as 查询语句

style="background-color: #ff0000; color: #ffff00; font-family: SimSun; font-size: 18px;">从单个表中派生视图

如:

create view v1 as select StuID,StuName from Student_info;

style="font-family: SimSun; font-size: 18px;">图片 33

style="color: #ffff00; font-family: SimSun; font-size: 18px; background-color: #ff0000;">从多少个表中派生视图

如:

create view v2 as select * from student_info,test_table where student_info.StuID = test_table.test_StuID;

style="font-family: SimSun; font-size: 18px;">图片 34

style="font-family: SimSun; font-size: 18px;">图片 35

style="background-color: #ff0000; color: #ffff00; font-family: SimSun; font-size: 18px;">视图虚字段

如:

create view v3 as select StuName,Telephone as oritel,telephone 1 as retel from student_info;

> style="font-size: 18px; color: #ff6600;">注:这里再一次创制了四个视图,有八特性子分别为StuName、oritel、retel,在那之中oritel属性便是Telephone,retel属性是Telephone 1的值。因为此地的oritel和retel属性在原表中是从未的,需求经过测算而来的,全数被成为虚字段。

style="font-size: 18px;">图片 36

style="font-family: SimSun; font-size: 18px; color: #3333ff;">删除视图

style="font-family: SimSun; font-size: 18px; color: #ffff00; background-color: #ff0000;">删除视图语法:

drop view 视图名

  • > style="font-family: SimSun; font-size: 18px;">如:*

drop view v3;

style="color: #3333ff; font-family: SimSun; font-size: 18px;">视图的注解

style="font-family: SimSun; font-size: 18px;">MySQL中的视图是可更新的,任何对原表的转移都会影响到视图中,恐怕别的对视图的改观都会反射到原表上。

order by 属性1,属性2,...... [asc,desc];

正则表达式

注:asc为升序(默以为升序)

style="font-family: SimSun; font-size: 18px; color: #3333ff;">查找钦命的数额

style="font-family: SimSun; font-size: 18px; color: #ffff00; background-color: #ff0000;">查找name字段中以'st'为发端的兼具数据:

select name from table_name where name regexp'^st';

style="font-family: SimSun; font-size: 18px; color: #ffff33; background-color: #ff0000;">查找name字段中以'ok'为最后的享有数据:

SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

style="font-family: SimSun; font-size: 18px; color: #ffff33; background-color: #ff0000;">查找name字段中蕴涵'mar'字符串的有所数据:

SELECT name FROM person_tbl WHERE name REGEXP 'mar';

style="font-family: SimSun; font-size: 18px; color: #ffff33; background-color: #ff0000;">查找name字段中以元音字符初阶且以'ok'字符串结尾的全体数据:

SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]. ok$';

style="font-family: SimSun; font-size: 18px; color: #ffff33; background-color: #ff0000;">查找name字段中以元音字符发轫也许以'ok'字符串结尾的持有数据:

SELECT name FROM person_tbl WHERE nameREGEXP '^[aeiou]|ok$';

desc为降序

NULL运算符

  当有多个属性值进行排序的时候,依照前后相继顺序进行排序。

style="font-family: SimSun; font-size: 18px; color: #3366ff;">说明:

IS NULL: 当列的值是NULL,此运算符重临true。

IS NOT NULL: 当列的值不为NULL, 运算符重回true。

<=>: 比较操作符(分化于=运算符),当比较的的五个值为NULL时回来true。

style="font-family: SimSun; font-size: 18px; color: #3333ff;">例子:

比如:

select * from table where column_name is null;

style="font-family: SimSun; font-size: 18px;">注:将会显得column_name为null的具备数据,无法使用select * from table where column_name = null。

:

 

select * from Student_info order byStuID,StuName desc;

select * from table where column_nameis not null;

style="font-family: SimSun; font-size: 18px;">注:将会议及展览示column_name不为空的有着数据,无法动用select * from table where column_name != null。

 

select null <=> null;

style="font-family: SimSun; font-size: 18px;">注:将会显得1。

 

select null <=>"NotEmpty";

style="font-family: SimSun; font-size: 18px;">注:将会展现0。

先根据StuID举行降序排序,再根据StuName进行升序排序。

SQL注入

 

style="font-family: SimSun; font-size: 18px; color: #3333ff;">sql注入是何许

style="font-family: SimSun; font-size: 18px;">正是由此把SQL命令插入到Web表单递交或输入域名或页面央浼的查询字符串,最终完成诈欺服务器施行恶意的SQL命令。

style="color: #3333ff; font-family: SimSun; font-size: 18px;">举例

style="font-family: SimSun; font-size: 18px;">MySQL特点,试行语句的时候假若出现这么的说话将会不报错,何况继续实施,

select * from table_name where user =value;show tables;

style="font-family: SimSun; font-size: 18px;">那样回车就是八个语句,这里是会进行八个语句的,假设在表单中询问客商的新闻,那么在表单输入中的客户名一栏写入,

'jame;delete from user;'

style="font-family: SimSun; font-size: 18px;">那么最后就能够去除user表。

去除有个别数据库下的全部表

 

SELECT concat('DROP TABLE IF EXISTS ', table_name, ';')

事务

FROM information_schema.tables

相似的话,事务是务必满意4个规范(ACID):Atomicity(原子性)、Consistency(牢固性)、Isolation(隔开分离性)、Durability(可靠性)

WHERE table_schema = 'mydb';

1、事务的原子性:一组专门的职业,要么成功;要么撤回。

将mydb换到需求删除的数据库就足以了。

2、牢固性 : 有违规数据(外键约束之类),事务撤回。

 

3、隔断性:事务独立运作。一个事务管理后的结果,影响了别样作业,那么别的事务会撤回。事务的百分之百隔断,供给捐躯速度。

binary

4、可信性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。可信性和高速度不可兼得, innodb_flush_log_at_trx_commit选项 决定如何时候吧事务保存到日志里。

binary用于能够用于区分轻重缓急写

 

MySQL中本来是不区分轻重缓急写的,

双索引

比如:“select from table_name where name = "Jame";*”能够查搜索table_name 表中Jame、jame、jAme等数据,

primary key(column1,column2);

但是“select from table where binary name ="Jame";*”就只好寻觅出Jame数据。

设置了双索引的话,那么知足四个数据都再一次的多少不会存入,有三个数额再次则足以储存。

addcslashes() 

图片 37

 

order by

addcslashes() 函数在钦点的字符前加多反斜杠。

语法:

参数    描述

order by 属性1,属性2,...... [asc,desc];

string 必得。规定要检查的字符串。

注:asc为升序(默感觉升序)

characters     可选。规定受 addcslashes() 影响的字符或字符范围。

desc为降序

 

  当有七个属性值实行排序的时候,依照前后相继顺序进行排序。

select coalesce(a,b,c)

:

参数表明:要是a==null,则选拔b;倘若b==null,则选拔c;倘诺a!=null,则接纳a;假诺a b c 都为null ,则赶回为null(没意义)。

select * from Student_info order byStuID,StuName desc;

如:

先根据StuID举行降序排序,再依照StuName实行升序排序。

创建贰个employee_tbl表:

 

 

删除某些数据库下的全数表

CREATE TABLE `employee_tbl`(`id`int(11) NOT NULL,`name`char(10) NOT NULL DEFAULT '',`date` datetime NOT NULL,`singin` tinyint(4) NOT NULL DEFAULT '0' COMMENT '登录次数',
  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

SELECT concat('DROP TABLE IF EXISTS ', table_name, ';')

向表中插入数据:

FROM information_schema.tables

 

WHERE table_schema = 'mydb';

INSERT INTO `employee_tbl` VALUES ('1','小明','2016-04-22 15:25:33','1'),('2','小王','2016-04-20 15:25:47','3'),('3','小丽','2016-04-19 15:26:02','2'),('4','小王','2016-04-07 15:26:14','4'),('5','小明','2016-04-11 15:26:40','4'),('6','小明','2016-04-04 15:26:54','2');

将mydb换来供给删除的数据库就足以了。

查询表中数量:

 

 

binary

mysql> SELECT * FROM employee_tbl; ---- -------- --------------------- -------- | id | name   | date                | singin | ---- -------- --------------------- -------- |1|小明|2016-04-2215:25:33|1||2|小王|2016-04-2015:25:47|3||3|小丽|2016-04-1915:26:02|2||4|小王|2016-04-0715:26:14|4||5|小明|2016-04-1115:26:40|4||6|小明|2016-04-0415:26:54|2| ---- -------- --------------------- -------- 

binary用于能够用来区分轻重缓急写

 

MySQL中本来是不区分轻重缓急写的,

 

比如:“select from table_name where name = "Jame";*”能够查搜索table_name 表中Jame、jame、jAme等数据,

接下去大家应用 GROUP BY 语句 将数据表按名字进行分组,并计算各种人有稍许条记下:

但是“select from table where binary name ="Jame";*”就不得不寻找出Jame数据。

mysql> SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name; -------- ---------- | name   | COUNT(*)| -------- ---------- |小丽|1||小明|3||小王|2| -------- ---------- 3 rows inset(0.01 sec)

addcslashes() 

使用 WITH ROLLUP

WITH ROLLUP 能够兑未来分组总括数据基础上再展开一样的总括(SUM,AVG,COUNT…)。

例如大家将以上的数据表按名字实行分组,再总计每一个人登陆的次数:

mysql> SELECT name, SUM(singin)as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP; -------- -------------- | name   | singin_count | -------- -------------- |小丽|2||小明|7||小王|7|| NULL   |16| -------- -------------- 4 rows inset(0.00 sec)

只要不行使With Rollup则结果不会并发NULL字段

图片 38

内部记录 NULL 表示全体人的记排行数。

咱俩得以采用coalesce 来安装一个能够代替 NUll 的称呼,coalesce 语法:

select coalesce(a,b,c);

参数表达:如若a==null,则采用b;尽管b==null,则采纳c;就算a!=null,则采纳a;假诺a b c 都为null ,则赶回为null(没意义)。

以下实例中只要名称为空我们运用总量代替:

 

mysql> SELECT coalesce(name,'总数'), SUM(singin)as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP; -------------------------- -------------- | coalesce(name,'总数')| singin_count | -------------------------- -------------- |小丽|2||小明|7||小王|7||总数|16| -------------------------- -------------- 4 rows inset(0.01 sec)

 

参照小说连接:

 

 

addcslashes() 函数在钦点的字符前增多反斜杠。

参数    描述

string 必须。规定要反省的字符串。

characters     可选。规定受 addcslashes() 影响的字符或字符范围。

 

select coalesce(a,b,c)

参数表明:假诺a==null,则选用b;假如b==null,则选拔c;假使a!=null,则选用a;假使a b c 都为null ,则赶回为null(没意义)。

如:

始建二个employee_tbl表:

 

CREATE TABLE `employee_tbl`(`id`int(11) NOT NULL,`name`char(10) NOT NULL DEFAULT '',`date` datetime NOT NULL,`singin` tinyint(4) NOT NULL DEFAULT '0' COMMENT '登录次数',
  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

向表中插入数据:

 

INSERT INTO `employee_tbl` VALUES ('1','小明','2016-04-22 15:25:33','1'),('2','小王','2016-04-20 15:25:47','3'),('3','小丽','2016-04-19 15:26:02','2'),('4','小王','2016-04-07 15:26:14','4'),('5','小明','2016-04-11 15:26:40','4'),('6','小明','2016-04-04 15:26:54','2');

查询表中多少:

 

mysql> SELECT * FROM employee_tbl; ---- -------- --------------------- -------- | id | name   | date                | singin | ---- -------- --------------------- -------- |1|小明|2016-04-2215:25:33|1||2|小王|2016-04-2015:25:47|3||3|小丽|2016-04-1915:26:02|2||4|小王|2016-04-0715:26:14|4||5|小明|2016-04-1115:26:40|4||6|小明|2016-04-0415:26:54|2| ---- -------- --------------------- -------- 

 

 

接下去大家使用 GROUP BY 语句 将数据表按名字举办分组,并总计每一种人有稍许条记下:

mysql> SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name; -------- ---------- | name   | COUNT(*)| -------- ---------- |小丽|1||小明|3||小王|2| -------- ---------- 3 rows inset(0.01 sec)

使用 WITH ROLLUP

WITH ROLLUP 能够兑未来分组总计数据基础上再举办一样的总结(SUM,AVG,COUNT…)。

诸如我们将以上的数据表按名字举办分组,再计算每种人登录的次数:

mysql> SELECT name, SUM(singin)as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP; -------- -------------- | name   | singin_count | -------- -------------- |小丽|2||小明|7||小王|7|| NULL   |16| -------- -------------- 4 rows inset(0.00 sec)

借使不应用With Rollup则结果不相会世NULL字段

图片 39

在那之中记录 NULL 表示全部人的登陆遍数。

大家得以应用 coalesce 来安装三个足以取代 NUll 的名号,coalesce 语法:

select coalesce(a,b,c);

参数表达:如若a==null,则选拔b;假设b==null,则选取c;假使a!=null,则选拔a;假诺a b c 都为null ,则赶回为null(没意义)。

以下实例中一旦名为空大家利用总的数量取代:

 

mysql> SELECT coalesce(name,'总数'), SUM(singin)as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP; -------------------------- -------------- | coalesce(name,'总数')| singin_count | -------------------------- -------------- |小丽|2||小明|7||小王|7||总数|16| -------------------------- -------------- 4 rows inset(0.01 sec)

 

参照文章连接:

 

本文由星彩网app下载发布于星彩彩票app下载,转载请注明出处:MySQL的常规操作

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。