澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

澳门新萄京官方网站MySQL的常规操作

2019-05-25 作者:数据库网络   |   浏览(52)

1、数据库的基本概念

一、数据库的查询用法

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

MySQL的健康知识

MySQL的常规知识

壹、DROP TABLE语句:用于删除数据表

        一.一  常用的关系型数据库

                       数据库(Database)是规行矩步数据结构来集团、存储和管理数据的旅舍。

一.一数码妄图

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

style="font-size: 18px; font-family: "Microsoft YaHei"">  DROP TABLE removes one or more tables.

style="font-size: 18px; font-family: "Microsoft YaHei"">  You must have the DROP privilege for each table.

style="font-size: 18px; font-family: "Microsoft YaHei"">  All table data and the table definition are removed, style="color: #ff0000">so be careful with this statement!

        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">特点

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

 

style="font-size: 一.167rem">SQL是用来操作关周密据库的语言,具备查询、操纵、定义和调控关系型数据库的4下边机能

 

一.贰 数据查询

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列表中的值:壹、贰、三即兴三个

Like ‘张_’

Like ‘张%’

混淆查询:%表示零或随意四个字符,_意味着1个字符.

例子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中聚合 / 集中函数

        聚集函数:多个数据实行演算,运算出2个结果。比如,求和,平均值,最大值,最小值。

澳门新萄京官方网站 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: 二四px; color: #3333ff; background-color: #ffffff;">查看数据库

show databases;

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

style="font-family: SimSun; font-size: 二四px; color: #336陆ff; 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: 1捌px; color: #ffff00; background-color: #ff0000;">存在的全部表

show tables;

style="font-family: SimSun; font-size: 1捌px; 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: 2④px; color: #333三ff;">查看服务器

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

show status;

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

show variables;

 基本格式:

        1.3  sql分类

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

style="font-size: 一.1六七rem">数据定义语言 - Data Definition Language

style="font-size: 一.1陆七rem">用来定义数据库的靶子,如数据表、视图、索引等

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

 

style="font-size: 一.167rem; color: #ff0000">DML (数据操纵语言)

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

style="font-size: 一.1陆七rem">在数据库表中更新,增删记录

如 update, insert, delete 不包括查询

 

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

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

style="font-size: 一.1陆七rem">指用于安装用户权限和调节工作语句

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

 

style="font-size: 壹.1陆七rem"> > > style="color: #ff0000">DQL (数据查询语言)(★★★★★)

style="font-size: 一.1陆7rem">数据查询语言 – Data Query Language

style="font-size: 一.16七rem">数据表记录的查询。

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

2、数据备份和回复

█▓  █▓  █▓      1.备份

    

语法:mysqldump -u 用户名 -p 数据库名 > 磁盘SQL文件路径

 █▓  █▓ █▓        2.恢复

        苏醒措施1:

                一.创建数据库

                            备份的时候,没有备份成立数据库的讲话,当须要恢复生机有些具体数量的时候供给手动成立

                  贰. 导入数据

                    source D://mydb.sql

          恢复生机措施2:

                1.创办数据库

                 贰.语法:mysql -u 用户名 -p 导入库名 < 硬盘SQL文件相对路线

                

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

use

  drop table <table_name>

2、对数据库举办操作的言语

 

1.1数据库中私下认可自带有5个库:

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

    个中保存着关于MySQL服务器所保险的兼具别的数据库的新闻。如数据库名,数据库的表,表栏的数目标表,表栏的数据类型与走访权限等。

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

style="font-size: 一.1六7rem">存款和储蓄引擎:命名PEPAJEROFO瑞鹰MANCE_SCHEMA,首要用来手提式有线电话机数据库服务器品质参数。

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

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

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

style="font-size: 壹.16七rem">这一个是设置时候创立的一个测试数据库,和它的名字同样,是1个截然的空数据库,未有其他表,能够去除。

 

壹.2 查看全部数据库

style="font-size: 壹.16柒rem; background-color: #ffd700">一.一查询当前抱有的数据库

show databases;

style="font-size: 一.167rem; background-color: #ffd700">1.二查看当前数量的开创方式:查看数据库的编码表

show create database 库名;

style="font-size: 1.16七rem; background-color: #ffd700">一.叁创造数据库

澳门新萄京官方网站MySQL的常规操作。create database 数据库名: 由于创立数据库时从没点名编码表,因而会利用安装数据库时暗中同意的编码表

create database 数据库名 character set 编码表名;创制数据库会选拔钦定的编码表

style="font-size: 壹.167rem; background-color: #ffd700">一.4删除数据库

drop database 数据库名;

style="font-size: 1.1陆7rem; background-color: #ffd700">一.5修改数据库编码集

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

 

1.3数据表结构的sql语句

        1.一 数据表的创设语句

        create table 表名(         

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

style="font-size: 一.1六7rem"> 列名 数据类型,

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

style="font-size: 一.167rem"> 列名 数据类型 (最终1个列无需逗号)

        );

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

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

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

                desc emp 查看表的详细音信

                show columns from emp ;查看表的列音信

1.4 约束

        一.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.二 唯1约束

                unique 内容区别意再一次,可以为null(null不算重复)。 

一个表里能够增多四个唯1约束。

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六7rem">唯1约束和主键约束的分歧  

style="font-size: 壹.16七rem">壹、唯一约束能够是空(null)。 不过主键约束无法为空

style="font-size: 1.1陆7rem">贰、一张表中不得不有三个主键,不过唯1约束能够有三个

          壹.三 非空约束

        not null 不容许为空 表示该列的开始和结果 不相同意为空。

style="font-size: 一.167rem">约束的目标。

style="font-size: 1.1六7rem">指标:有限援助数据的准确性。

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

壹.5  数据表结构的改变

        一.更动数据表

                能够对表名、表中的列名、列的类型、列的约束举办增删改

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

         二. 修改现存列的类别,长度和自律 用modify

       

  1. 修改现有列名称

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

·        肆. 删减现成列

                    语法 alter table 表名 drop 列名;

          伍. 修改表名 

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

          陆. 修改表的字符集 

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

1.6数据表的删减

         语法 : drop table 表名:

 

三、外键约束

 

增进外键必要注意的主题素材

l  假如从表要去增添三个外键约束。要求主表被引用的字段是主键可能唯壹的。平时采取主键。

l  假设要刨除主表中的数据。需要在从表中那一个数目,要未有被引用,才足以去删除。

l  假设要向从表中去丰富多少。须要在主表中,要有照看的数码。才方可去丰硕。

l  若是要删除表。要先删除从表。然后去删除主表。

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

 

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

 

 

一.增加外键约束的语法

            成立表之后增加外键

█▓  █▓        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)

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

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

use database_name;

DROP [TEMPORARY] TABLE [IF EXISTS]
    tbl_name [, tbl_name] ...
    [RESTRICT | CASCADE]

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

    

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

多少记录存款和储蓄地点

            

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

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

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

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

                                          truncate table 表名 是删除3个表,之后在遵照你 的表结构在给您创制一张新表

 

 

 

 

 

 

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

 

 

 

 

发源为知笔记(Wiz)

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

create

TEMPORAQashqaiY:用于删除不经常表(推荐针对性选择),删除临时表不会终止方今的事务

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

style="font-family: SimSun; font-size: 贰四px; color: #336陆ff;">创制数据库

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;">二 > > > > style="color: red;">, > > > > style="color: red;">primary key() > > > > style="color: red;">是设置主键 > > > > style="color: red;">, > > > > style="color: red;">1个表可以不停三个主键。

style="font-family: SimSun; font-size: 1八px; 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: 1捌px; 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: 1捌px;">创建复制旧表的布局的新表

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;">等质量都以复制过来了。

IF EXISTS:用于在表不存在时,阻止错误消息的来得

show

desc

[RESTRICT | CASCADE]:现在怎样也不做 

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

show databases;

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

style="font-family: SimSun; font-size: 二4px; color: #336陆ff; background-color: #ff0000;"> style="font-family: SimSun; font-size: 1捌px; 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: 1八px; 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: 二四px; color: #333叁ff;">查看服务器

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

澳门新萄京官方网站MySQL的常规操作。show status;

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

show variables;

style="font-family: SimSun; font-size: 1八px; color: #336陆ff;">查看表结构

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

 

use

drop

事实上删表语法如上,照旧挺轻便的,可是当二个表被剔除时,全体注重于该表的靶子也被剔除(举例约束、索引、视图和权力等)

style="font-family: SimSun; font-size: 贰四px; color: #336陆ff;">使用数据库

use database_name;

 

为此,删除表在此以前(注意):

create

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

  1断定那个表未有人在动用,确实是一个遗弃的表

style="font-family: SimSun; font-size: 二肆px; color: #336六ff;">成立数据库

create database if not exists database_name;

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

style="font-family: SimSun; font-size: 1八px; 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;">一 > > > > style="color: red;">的值。 > > > style="color: red;">二 > > > > 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: 1捌px;">创建复制旧表的构造的新表

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: 1八px;"> > style="font-family: SimSun; font-size: 1八px;">     > style="font-size: 1八px;"> > 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: 1八px;"> > 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: 1八px;">     > style="color: #ff0000;">注:因为暗许的引擎正是InnoDB,默许的编码情势正是utf-八,所以1旦不转移引擎和编码情势可以不增加engine=InnoDB,default charset=utf-八

style="font-family: SimSun; font-size: 1八px; color: #00ffff; background-color: #ff0000;"> > style="font-family: SimSun; font-size: 1捌px;"> > style="font-family: SimSun; font-size: 1八px;"> > style="font-family: SimSun; font-size: 1八px;">创立表的时候,钦点暗许的值

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: 1八px;">    注:salary int not null default 1200,表示插入全数行中salary的暗许值都以1200。

 

  2主张确认是那些数据库的表

 

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只是删除表中的数据。

顺带提一下,怎么器重命名表:

 

 

RENAME  TABLE  tbl_name TO  new_tbl_name   
        [, tbl_name2 TO new_tbl_name2] …

 

delete

自然,能够动用ALTER TABLE语句替换该语句,如下……

desc

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

style="font-family: SimSun; font-size: 1捌px; 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: 1八px; color: #336陆ff;">插入数据

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

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

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

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

> style="font-family: SimSun; font-size: 1捌px;">注:在调节插入元组数据中的属性个数时,首要依附表中属性的完整性来支配。

style="font-family: SimSun; font-size: 1八px; color: #336陆ff;">复制表数据

style="font-family: SimSun; font-size: 1八px; color: #336陆ff;"> > style="color: #ffcc00; font-family: SimSun; font-size: 1八px; background-color: #ff0000;">复制旧表的数额到新表

insert into 新表 select * from 旧表

> style="font-size: 1八px;">注: > style="font-size: 1八px;">这里三个表的结构要求要壹律 > 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;">方法2: > > > style="color: red;">show create table > > > style="color: red;">旧表*命令获得创制表的下令,复制粘贴再退换名称最终运维,得到1个数据结构和特性一样的新表 > > > style="color: red;">( > > > style="color: red;">除名称 > > > style="color: red;">) > > > style="color: red;">,再用这里 > > > style="color: red;">insert > > > style="color: red;">命令,将数据复制过去,就能够收获完全1致的表了。

style="background-color: #ff0000; color: #ffcc00; font-family: SimSun; font-size: 1八px;">复制旧表的片段数据到新表

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

> style="font-family: SimSun; font-size: 1八px;">注: > style="font-family: SimSun; font-size: 1八px;">一,这里七个表的合营字段数据类型要平等。 > 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当插入数据时,在安装了笔录的唯1性后,若是插入重复数据,将不回来错误,只以警示格局重临。 而REPLACE INTO into倘诺存在primary 或 unique同样的笔录,则先删除掉。再插入新记录。

二、ALTER TABLE语句:增加、修改和删除列

 

select

主导格式:

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

style="font-family: SimSun; font-size: 1八px; color: #336陆ff;">查看当前几日期

select current_date;

style="font-family: SimSun; font-size: 18px;">澳门新萄京官方网站 8

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

select version();

style="font-family: SimSun; font-size: 18px;">澳门新萄京官方网站 9

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

select database();

style="font-family: SimSun; font-size: 1八px; color: #333三ff;">查看当前用户名

select user();

style="font-family: SimSun; font-size: 1八px; color: #333三ff;">查询表中多少的言辞

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: 1八px;">注: > style="color: red;">壹 > > > 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;">三 > > > style="color: red;">, > > > style="color: red;">condition > > > style="color: red;">能够用超越、小于等

style="font-size: 1八px; color: #333三ff;">查询数据之动态钦点条件语句

 举例有四个表,分别是table一和table2,在table第11中学有三个id一属性,在table第22中学有二个id二属性。如若要查询符合id第22中学的id一的数目,不需求分两句书写,能够一贯将其写到一同,举例:

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

不能够不注意:在标准语句中的得出table贰的数量只好是二个显然的数值,不能够是1个数组。

延续查询

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

select 属性 from 表1,表2 where (表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

  一.修改表名:alter table 原表名 rename to 新表名;

 

 

  2.新增列:alter table 表名 add [column] 列名 varchar(20) ;

drop database databasename;

自连接查询

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

  使用小名

  3.删除列:alter table 表名 drop [column] 列名;

 

例如:

  四.修改列名: alter table 表名 change 原列名 新列名 varchar(20) ;

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,属性贰....... from 表一 inner join 表贰 on 表1.属性 = 表二.属性

左连接: 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: 1八px; color: #ff9966;">注:这里七个表要求查询出来的特性数据要平等,否则就可以现出“E福特ExplorerRO大切诺基122二 (21000): The used SELECT statements have a different number of columns”的不当。

  五.修改列属性:alter table 表名 modify 列名 varchar(20) ;

 

update

ALTER [IGNORE]  TABLE  tbl_name 
   ADD [COLUMN] col_name  column_definition 
    [FIRST | AFTER col_name ] 
  |ADD [COLUMN] (col_name  column_definition,...)
  |MODIFY [COLUMN] col_name column_definition
    [FIRST | AFTER col_name] 
  |DROP [COLUMN] col_name 
  |CHANGE [COLUMN] old_col_name  new_col_name column_definition 
  [FIRST|AFTER col_name]

delete

style="font-family: SimSun; font-size: 1八px; color: #333叁ff;">更新部分数据

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

style="font-family: SimSun; font-size: 18px;">澳门新萄京官方网站 16

style="font-family: SimSun; font-size: 1八px; color: #333三ff;">更新整列的值

update table_name set Telephone= Telephone 1;

style="font-family: SimSun; font-size: 18px;">澳门新萄京官方网站 17

FIPAJEROST:表示表头行

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

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

delete from table_name;

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

delete from table_name where column_name > value;

alter

AFTER col_name:表示在col_name的前面,即下壹行(未有before选项)

 

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

style="font-family: SimSun; font-size: 1八px; 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: 1八px;">撤废表中的某些属性

alter table 表 drop 属性;

style="background-color: #ff0000; color: #ffff33; font-family: SimSun; font-size: 1八px;">改动表的称呼

alter table 旧表名 rename 新表名;

style="background-color: #ff0000; color: #ffff3三; 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: 1捌px;">在首先行加多属性

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: 1捌px; color: #ffff3三; 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: #ffff3三; font-family: SimSun; font-size: 1八px;">删除字段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: 1八px;">退换表的内燃机

alter table table_name engine=engineName;

> style="font-family: SimSun; font-size: 1捌px;">注:将数据表的内燃机更换为钦命的外燃机。

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

alter table table_name auto_increment=value;

> style="font-size: 1八px;">注: > 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(四) > > > style="color: red;">可感觉字符串

 

truncate

视图

##Copy一张TEAMS表用作示例

 

style="font-family: SimSun; font-size: 1捌px; color: #333三ff;">创造视图

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: 1八px;">从单个表中派生视图

如:

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: 1捌px; 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: 1八px;">视图虚字段

如:

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

> style="font-size: 1八px; color: #ff6600;">注:这里再度创制了三个视图,有多少个属性分别为StuName、oritel、retel,个中oritel属性正是Telephone,retel属性是Telephone 一的值。因为此地的oritel和retel属性在原表中是绝非的,需求经过测算而来的,全部被成为虚字段。

style="font-size: 18px;">澳门新萄京官方网站 21

style="font-family: SimSun; font-size: 1八px; color: #333三ff;">删除视图

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

drop view 视图名

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

drop view v3;

style="color: #333叁ff; font-family: SimSun; font-size: 1八px;">视图的表明

style="font-family: SimSun; font-size: 1八px;">MySQL中的视图是可更新的,任何对原表的退换都会影响到视图中,或然其余对视图的改换都会反射到原表上。

mysql> create table teams_copy

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

正则表明式

     -> as

 

style="font-family: SimSun; font-size: 18px; color: #333三ff;">查找钦赐的数码

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: 1八px; color: #ffff3叁; background-color: #ff0000;">查找name字段中以'ok'为最终的全数数据:

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

style="font-family: SimSun; font-size: 1八px; color: #ffff3叁; background-color: #ff0000;">查找name字段中蕴藏'mar'字符串的持有数据:

SELECT name FROM person_tbl WHERE name REGEXP 'mar';

style="font-family: SimSun; font-size: 1捌px; color: #ffff3叁; background-color: #ff0000;">查找name字段中以元音字符开头且以'ok'字符串结尾的具有数据:

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

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

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

     -> select * from TEAMS;

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。

 1、添加列

truncate table_name;

 

  壹新列自动产生表中的最后2个列,除非钦定了FI卡宴ST或AFTE凯雷德选项(表中已部分行在新列上活动获得NULL值或暗中认可值)

 

select * from table where column_nameis not null;

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

 

select null <=> null;

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

 

select null <=>"NotEmpty";

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

例1:添加type列给teams_copy表中

 

SQL注入

mysql> alter table teams_copy
    -> add type1 char(1);    #添加的新列归位最后一个列

mysql> alter table teams_copy
    -> add type2 char(1) default'1';    #添加列的同时设置默认值

mysql> alter table teams_copy
    -> add type3 char(1) after PLAYERNO;    #指定新列的位置

mysql> select * from teams_copy;
 -------- ---------- ------- ---------- ------- ------- 
| TEAMNO | PLAYERNO | type3 | DIVISION | type1 | type2 |
 -------- ---------- ------- ---------- ------- ------- 
|      1 |        6 | NULL  | first    | NULL  | 1     |
|      2 |       27 | NULL  | second   | NULL  | 1     |
 -------- ---------- ------- ---------- ------- ------- 

 

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

style="font-family: SimSun; font-size: 1八px;">就是因而把SQL命令插入到Web表单递交或输入域名或页面请求的询问字符串,最后落得诈骗服务器实行恶意的SQL命令。

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

style="font-family: SimSun; font-size: 1八px;">MySQL特点,推行语句的时候要是现身如此的话语将会不报错,并且继续实践,

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

style="font-family: SimSun; font-size: 1捌px;">那样回车正是八个语句,这里是会实施多少个语句的,假使在表单中查询用户的音信,那么在表单输入中的用户名1栏写入,

'jame;delete from user;'

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

  贰尽管增多新列时内定了NOT NULL约束

  注:truncate和delete的分别,对于绝大大多数据库来讲,truncate都被当成DDL管理,truncate被称作“截断”有些表-它的效用是剔除该表里的万事数目,但保留数据结构。也就是DML中的delete命令,truncate的进度要快得多,而且truncate不像delete能够去除钦命的笔录,truncate只可以删除表中的漫天笔录。MySQL对truncate的管理相比较新鲜-假如使用非InnoDB的蕴藏引擎,truncate要比delete快;要是使用InnoDB的积累引擎,在MySQL5.0.3在此以前,truncate和delete完全平等,在伍.0.三后头,truncate比delete要快,但倘使该表被外键约束所参照,truncate又形成delete操作。在伍.0.一三从此,神速truncate总是可用的,即比delete的快慢要快。在采用

 

则:

insert

事务

  字符串列自动获得空字符串;

style="font-family: SimSun; font-size: 1捌px; color: #336六ff;">插入数据

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

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

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

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

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

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

style="font-family: SimSun; font-size: 1捌px; color: #336六ff;"> > style="color: #ffcc00; font-family: SimSun; font-size: 1八px; 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;">方法1:首先用“ > > > 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;">旧表*命令获得创立表的授命,复制粘贴再变动名称最终运转,得到1个数据结商谈性格同样的新表 > > > 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: 1八px;">一,这里多少个表的非常字段数据类型要1律。 > style="color: red;">二,这里只是复制数据,旧表的 > > > 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一样的笔录,则先删除掉。再插入新记录。

诚如的话,事务是必须满意四个标准化(ACID):Atomicity(原子性)、Consistency(牢固性)、Isolation(隔开性)、Durability(可信性)

  数字列自动得到0;

select

1、事务的原子性:壹组工作,要么成功;要么撤回。

  日期类型自动获取0日期;

style="font-family: SimSun; font-size: 1捌px; color: #3366ff;">查看当前几天子

select current_date;

style="font-family: SimSun; font-size: 18px;">澳门新萄京官方网站 22

style="font-family: SimSun; font-size: 1八px; color: #336六ff;">查看服务器版本

select version();

style="font-family: SimSun; font-size: 18px;">澳门新萄京官方网站 23

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

select database();

style="font-family: SimSun; font-size: 1八px; color: #333三ff;">查看当前用户名

select user();

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

style="font-family: SimSun; font-size: 1八px; color: #ffcc00; background-color: #ff0000;">查询表中钦点字段无重复的多少

select distinct column_name from table_name wherecondition;

> style="font-family: SimSun; font-size: 1八px;">注: > style="color: red;">一 > > > style="color: red;">, > > > style="color: red;">distinct > > > style="color: red;">用于展现的数据内容不设有重复 > style="color: red;">二 > > > 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;">查询数据之动态钦点条件语句

 举个例子有多个表,分别是table一和table二,在table第11中学有贰个id一属性,在table第22中学有贰个id二属性。倘诺要询问符合id第22中学的id一的数量,不须要分两句书写,可以直接将其写到一齐,比方:

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.属性);

注:“表壹.属性 = 表贰.属性” 是很首要的,它代表三个表连接的规格。

style="font-size: 1八px; 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、稳固性 : 有违法数据(外键约束之类),事务撤回。

  时间项目自动得到00:00:00

 

叁、隔断性:事务独立运行。多个事务管理后的结果,影响了其余事情,那么其它事务会撤回。事务的百分之百割裂,需求就义速度。

mysql> alter table teams_copy
    -> add (
    ->   type4 char(1) NOT NULL,
    ->   type5 INTEGER NOT NULL,
    ->   type6 DATE NOT NULL,
    ->   tpye7 time not null );

自连接查询

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

  使用小名

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

mysql> select * from teams_copy;  #截的1有的图

例如:

 

澳门新萄京官方网站 26

澳门新萄京官方网站 27

打字与印刷这一个表中全部的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 属性壹,属性2....... from 表1 inner join 表二 on 表一.属性 = 表二.属性

左连接: 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;">澳门新萄京官方网站 28

style="background-color: #ffffff;">澳门新萄京官方网站 29

 

 

左连接

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 = "第7个名称"

union

select test_StuID,test_Name from test_table where test_StuID= 4;

style="background-color: #ffffff;">澳门新萄京官方网站 30

style="font-family: SimSun; font-size: 18px; color: #ff996陆;">注:这里多个表须要查询出来的性质数据要平等,不然就能冒出“E卡宴RO途达1222 (二一千): The used SELECT statements have a different number of columns”的荒唐。

双索引

 

update

primary key(column1,column2);

2、删除列

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

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

style="font-family: SimSun; font-size: 18px;">澳门新萄京官方网站 31

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

update table_name set Telephone= Telephone 1;

style="font-family: SimSun; font-size: 18px;">澳门新萄京官方网站 32

安装了双索引的话,那么满足多少个数据都再一次的数额不会存入,有八个数目重复则能够储存。

  列值是还是不是有多少都得以去除,注重于该列的其他数据库对象,如索引、权限也将被去除

alter

澳门新萄京官方网站 33

mysql> alter table teams_copy
    -> drop type6;

mysql> alter table teams_copy drop type2;
mysql> alter table teams_copy drop type4;
mysql> alter table teams_copy drop type5;    #只能一列一列的删

mysql> select * from teams_copy;
 -------- ---------- ------- ---------- ------- ---------- 
| TEAMNO | PLAYERNO | type3 | DIVISION | type1 | tpye7    |
 -------- ---------- ------- ---------- ------- ---------- 
|      1 |        6 | NULL  | first    | NULL  | 00:00:00 |
|      2 |       27 | NULL  | second   | NULL  | 00:00:00 |
 -------- ---------- ------- ---------- ------- ---------- 

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: 1八px;">更换表的名目

alter table 旧表名 rename 新表名;

style="background-color: #ff0000; color: #ffff3三; font-family: SimSun; font-size: 1八px;">打消和改造表的主键

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

style="background-color: #ff0000; color: #ffff3叁; font-family: SimSun; font-size: 1八px;">在第三行增多属性

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: 1八px; color: #ffff3三; 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: #ffff3叁; font-family: SimSun; font-size: 1八px;">删除字段I的暗许值

alter table table_name alter I drop default;

> style="color: red;">注:使用 ALTER命令及 > > > 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: 1八px;">注:将数据表的内燃机改变为钦命的斯特林发动机。

style="background-color: #ff0000; color: #ffff00; font-family: SimSun; font-size: 1八px;">修改表连串的初步值

alter table table_name auto_increment=value;

> style="font-size: 1八px;">注: > 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(四) > > > style="color: red;">可以为字符串

order by

 

视图

语法:

3、修改列---平常利用

style="font-family: SimSun; font-size: 1捌px; color: #333三ff;">创设视图

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: 1八px;">从单个表中派生视图

如:

create view v1 as select StuID,StuName from Student_info;

style="font-family: SimSun; font-size: 18px;">澳门新萄京官方网站 34

style="color: #ffff00; font-family: SimSun; font-size: 1八px; 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;">澳门新萄京官方网站 35

style="font-family: SimSun; font-size: 18px;">澳门新萄京官方网站 36

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

如:

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

> style="font-size: 1八px; color: #ff6600;">注:这里再度创立了二个视图,有七个天性分别为StuName、oritel、retel,在那之中oritel属性正是Telephone,retel属性是Telephone 一的值。因为这里的oritel和retel属性在原表中是尚未的,须要经过测算而来的,全部被改成虚字段。

style="font-size: 18px;">澳门新萄京官方网站 37

style="font-family: SimSun; font-size: 1八px; color: #333三ff;">删除视图

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

drop view 视图名

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

drop view v3;

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

style="font-family: SimSun; font-size: 18px;">MySQL中的视图是可更新的,任何对原表的改造都会反馈到视图中,只怕其它对视图的改造都会反应到原表上。

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

着力格式:

正则表明式

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

  alter table <表名> modify <列名> 数据类型(……) 选项;

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

style="font-family: SimSun; font-size: 1八px; 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: 1八px; color: #ffff3三; background-color: #ff0000;">查找name字段中含有'mar'字符串的兼具数据:

SELECT name FROM person_tbl WHERE name REGEXP 'mar';

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

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

style="font-family: SimSun; font-size: 1八px; color: #ffff3三; background-color: #ff0000;">查找name字段中以元音字符起始恐怕以'ok'字符串结尾的装有数据:

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

desc为降序

1)修改列的幅度:

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: 1八px;">注:将会议及展览示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: 1捌px;">注:将会显得column_name不为空的兼具数据,不可能选择select * from table where column_name != null。

 

select null <=> null;

style="font-family: SimSun; font-size: 1八px;">注:将会议及展览示一。

 

select null <=>"NotEmpty";

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

先遵照StuID进行降序排序,再遵照StuName实行升序排序。

mysql> desc student;
 ------- --------------- ------ ----- --------- ------- 
| Field | Type          | Null | Key | Default | Extra |
 ------- --------------- ------ ----- --------- ------- 
| id    | int(11)       | NO   | PRI | NULL    |       |
| name  | varchar(20)   | NO   |     | NULL    |       |
| sex   | enum('M','F') | YES  |     | NULL    |       |
 ------- --------------- ------ ----- --------- ------- 
3 rows in set (0.00 sec)

mysql> select * from student;
 ---- -------- ------ 
| id | name   | sex  |
 ---- -------- ------ 
|  1 | 张三   | M    |
|  2 | 李四   | F    |
|  5 | 王五   | NULL |
 ---- -------- ------ 
3 rows in set (0.00 sec)

mysql> alter table student
    -> modify id smallint not null;
Query OK, 3 rows affected (0.29 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> alter table student
    -> modify name int not null;
ERROR 1366 (HY000): Incorrect integer value: '张三' for column 'name' at row 1

SQL注入

 

深入分析:student表中id列值可改动为新的数据类型,不过name列的值不可能转移,所以modify退步。

style="font-family: SimSun; font-size: 1捌px; color: #333三ff;">sql注入是如何

style="font-family: SimSun; font-size: 1八px;">正是经过把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: 1八px;">那样回车就是五个语句,这里是会实践几个语句的,如若在表单中查询用户的音信,那么在表单输入中的用户名1栏写入,

'jame;delete from user;'

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

剔除有些数据库下的全部表

三)修改列名(不要加引号)

 

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

mysql> alter table student
    -> change id 学号 int;

mysql> select * from student;
 -------- -------- ------ 
| 学号   | name    | sex  |
 -------- -------- ------ 
|      1 | 张三    | M    |
|      2 | 李四    | F    |
|      5 | 王五    | NULL |
 -------- -------- ------ 

事务

FROM information_schema.tables

 

相似的话,事务是必须满足四个原则(ACID):Atomicity(原子性)、Consistency(稳定性)、Isolation(隔绝性)、Durability(可信性)

WHERE table_schema = 'mydb';

四、修改约束

1、事务的原子性:壹组工作,要么成功;要么撤回。

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

  能够加上或删除约束,不过无法修改1个已有的羁绊。

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

 

ALTER [IGNORE] TABLE tbl_name
   ADD [CONSTRAINT [symbol]] PRIMARY KEY(col_name,...)
  |ADD [CONSTRAINT [symbol]] UNIQUE (col_name,...)
  |ADD [CONSTRAINT [symbol]] FOREIGN KEY (col_name,...)
    References parent_table(col_name)
  |DROP PRIMARY KEY
  |DROP FOREIGN KEY fk_symbo
  |DROP {INDEX|KEY} index_name

三、隔开性:事务独立运营。二个事务处理后的结果,影响了此外业务,那么任何事务会撤回。事务的百分之百切断,须要捐躯速度。

binary

 

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

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

示范:定义两张表t一和t二

 

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

mysql> create table t1(
    ->   a int not null primary key,
    ->   b int not null);

mysql> create table t2(
    ->   a int not null primary key,
    ->   b int not null,
    ->   constraint c1 unique(b),
    ->   constraint fk1 foreign key(a) references t1(a)
    -> );

1)删除唯一性约束:删除对应的索引(index)即可
mysql> alter table t2
    -> drop index c1;

2)给t1添加外键约束,取名fk2
mysql> alter table t1
    -> add constraint fk2 foreign key(a) references t2(a);

3)删除外键fk2
mysql> alter table t1
    -> drop foreign key fk2;

4)删除t1表的主键
mysql> alter table t1
    -> drop primary key;

双索引

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

primary key(column1,column2);

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

安装了双索引的话,那么知足多个数据都重复的数目不会存入,有3个数量再一次则足以累积。

addcslashes() 

澳门新萄京官方网站 38

 

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实行升序排序。

开创2个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字段

澳门新萄京官方网站 39

其间记录 NULL 表示全数人的记排行数。

咱俩得以选用coalesce 来设置1个方可代替 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(没意义)。

如:

创办1个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字段

澳门新萄京官方网站 40

里头记录 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)

 

参照他事他说加以考察小说连接:

 

本文由澳门新萄京官方网站发布于数据库网络,转载请注明出处:澳门新萄京官方网站MySQL的常规操作

关键词: