数据库增删改查_数据库的增删改查 数据表的增删改查 数据的增删改查 - CSDN
精华内容
参与话题
  • MySQL(4) 数据库增删改查SQL语句(整理集合大全)

    万次阅读 多人点赞 2020-01-21 15:11:20
    查看数据库 show databases; 使用数据库 use 数据库名; 创建数据库 CREATE DATABASE 数据库名; 删除数据库 DROP DATABASE 数据库名; 创建表 create table 表名( 列名1 类型(长度) [约束], 列名2 ...

    查看数据库

    show databases; 

    使用数据库

    use 数据库名;

    创建数据库

    CREATE DATABASE 数据库名;

    删除数据库

    DROP DATABASE 数据库名;

    创建表

    create table 表名(
        列名1 类型(长度) [约束],
        列名2 类型(长度) [约束],
        ……
    );

    长度区别
    int类型带长度:不影响存取值,即使设定的值超出了长度的范畴,也能存,如果没有达到设定的长度,则使用空格自动填充到设定的长度
    char类型:不可变字符,设定的长度就是规定当前字段能存的数据的最大长度,若超出长度,则会报错,若没有达到长度,使用空格填充到设定的长度
    varchar:可变字符,设定的长度同样是规定当前字段能存的数据的最大长度,若超出长度,则会报错,若没有达到长度,不会使用空格填充,实际多长就是多长

    删除表

    DROP TABLE 表名;

    表约束

    1.非空约束    NOT NULL
    2.默认值约束  DEFAULT '男'
    3.唯一约束    UNIQUE
    4.主键约束    PRIMARY KEY

    查看表结构

    DESC 表名

    修改表
    修改列名

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

    修改列类型

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

    修改列类型

    Alter table 表名  modify  列名  新类型;

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

    查询表中全部信息

    select * from 表名;

    查询表中指定列的信息

    select 列1,列2 from 表名;

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

    数据去重

    select distinct 列…. From 表名;

    拼接结果

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

    运算符优先级:
    1.乘法和除法的优先级高于加法和减法
    2.同级运算的顺序是从左到右
    3.表达式中使用"括号"可强行改变优先级的运算顺序

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

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

    select 列 as 别名 from 表名;   
    select 列 别名 from 表名;      

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

    条件查询

    select 列… from 表名 where 条件;  

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

    where 列  比较运算符  值;

    注意:字符串、日期需使用单引号括起来
    语句的执行顺序:from—>where—>select

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

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

    范围查询

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

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

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

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

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

    模糊查询
    %:表示0到多个字符,示例:

    where 列 like '%0';   //表示以0结尾
    where 列 like  '0%';   //表示以0开头
    where 列 like  '%0%';   //表示数据中包含0

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

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

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

    where 条件 order by 列 [asc/desc]

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

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

    where [条件] limit beginIndex,pageSize;

    ex:每页显示3条数据
    第一页: SELECT * FROM 表名 LIMIT 0,3    --0,1,2
    第二页: SELECT * FROM 表名 LIMIT 3,3    --3,4,5
    第三页: SELECT * FROM 表名 LIMIT 6,3    --6,7,8
    第四页: SELECT * FROM 表名 LIMIT 9,3    --9,10,11 
      ……
    第七页: SELECT * FROM 表名 LIMIT 18,3   --18,19,20

    beginIndex公式:(当前页数-1)*pageSize
     
    聚集函数( 作用于一组数据,并对一组数据返回一个值 )

    COUNT:统计结果记录数,若统计的是列,列中为Null,那么count将不会计算值
    MAX:  统计计算最大值
    MIN:  统计计算最小值
    SUM:  统计计算求和
    AVG:  统计计算平均值

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

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

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


    Where和having的区别:
    Where: 先过滤已有的数据(数据是已经存在的),在进行分组,在聚集计算
    Having:先分组,在对每组进行计算,根据得到结果在过滤(分组把数据算出之后,在过滤)
    注意:使用having的时候,它是可以使用别名的

     

    ===============================数据查询-多表===============================
    交叉连接:又名笛卡尔积,使用交叉连接会产生笛卡尔积
    假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

    select *  from 表1,表2

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

    select * from 表1,表2  where 表1.字段=表2.字段;  //隐式内连接,使用where条件消除笛卡尔积
    select * from 表1 [inner] join 表2 on 表1.字段=表2.字段;  //显式内连接,如果是多张表,则一直在join..on后依次添加join..on即可,inner关键字可被省略

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

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

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

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

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

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

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

    select * from (select * from 表名) as 别名
    select * from where 条件->条件中包含查询语句

    注意:1.查询结果的虚拟表必须取别名
               2.字段与关键字一样,冲突时,需要给字段名加``,(Esc键下面、1的左边)
               3.如果给虚拟结果表中的字段取了别名,则对虚拟结果表查询时,应该用 表别名.虚拟表字段别名

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

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

    注意: 1.如果插入的表中的主键是自增类型的,可以不用插入值
                2.如果主键是非自增 ,插入的数据则是填补主键字段值空余的值
                3.如果主键设置了自动递增,会从主键字段最大值开始插入数据

    其他插入方式:

    insert into 表名(字段1,字段2) values(值1,值2),(值1,值2);     //插入多条数据【MYSQL】
    insert into 表名 values(值1,值2);                    //针对全表所有字段进行插入操作
    insert into 表名(字段) select 字段 from 表2;         //查询结果插入
    insert into 表名 select 字段 from 表2;               //查询结果,全表插入

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

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

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

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

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

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

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

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

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

    ex:         mysql -uroot -proot jdbcdemo< C:/shop_bak.sql
    使用可视化导入导出:
    Navicat工具的导入和导出/Navicat工具的备份和还原


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

    什么列适合建索引??
    1.表的主键、外键必须有索引;
    2.数据量超过30000的表应该有索引;
    3.经常与其他表进行连接的表,在连接字段上应该建立索引;
    4.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
    5.索引应该建在选择性高的字段上;
    6.索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 

    sql语句创建和删除索引:
    创建索引: 

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

    删除索引:
    方式一:

    DROP INDEX 索引名 ON 表名 

    方式二:  

    ALTER TABLE 表名 DROP INDEX 索引名

     

    展开全文
  • 数据库、表基本操作增删改查

    千次阅读 2017-11-28 15:38:26
    @data 2017/11/21(一)、数据库的基本操作基本操作: MySql数据库介绍: 1、建库: 语法格式: craete database 数据库名字;2、库语法格式: show databases ; 1、修改数据库的编码方式...
    @author StormWangxhu
    @data 2017/11/21

    (一)、数据库的基本操作

    基本操作: 增 、删、 改 、查

    MySql数据库介绍


    增:
    1、建库:

    语法格式:
    craete database 数据库名字;

    2、查库

    语法格式:
    show databases ;


    1、修改数据库的编码方式

    alter database 数据库名称 default character set 编码方式  collate 编码方式_bin ;

    编码方式指的是修改后的数据库编码方式!



    1、删除数据库

    drop database 数据库名称  ;

    一般情况下,在删除数据库前后使用show databases ; 进行数据库的查询,以保证要删除数据库的存在和删除成功,否则会删除失败!


    查询数据库列表

    show databases ;

    查询某一个数据库的信息:

    show create database 数据库名称;

    实战演练:
    1、建库、查库信息
    这里写图片描述
    2、修改数据库编码方式
    这里写图片描述
    删数据库
    这里写图片描述
    删除成功!

    (二)数据表的基本操作

    数据表的基本操作:
    增、删、改、查

    基本会使用到的SQL语句:
    (1) alter table 表名 …
    该语句主要用于增加、修改、删除表字段、数据类型的一系列操作:
    字段: change (修改的意思)
    数据类型: modify (修改的意思)
    (2)show tables; //列出数据表列单
    (3)desc 表名; // 列出数据表信息
    (4)show create table 表名; // 列出数据表信息
    - 建表

    create table 表名称(
    字段名1   数据类型[完整型约束条件],
    字段名2   数据类型[完整型约束条件],
    ...
    字段名n   数据类型[完整型约束条件]
    );

    其中,表名: 指的是要创建的数据表的名称
    字段名: 指的是数据表的列名。
    “完整型约束条件”: 指的是某些特殊的约束条件。
    这里写图片描述

    • 查询数据表列单(查)
    show tables ;
    • 查询数据表内的信息
      有两种方法:
      方法一:
    show create table 数据表名;

    方法二

    describe 数据表名;

    或简写为

    desc 数据表名;
    • 改:(数据表名、字段名、数据类型) —- alter table 语句
      (1)修改数据表名
    alter table 旧表名  rename [to]  新表名  ;

    (2)修改字段名

    alter table 表名 change 旧字段名 新字段名 新数据类型 ;

    说明:
    旧字段名: 指的是修改前的名。
    新字段名: 指的是修改后的名。
    新数据类型: 指的是修改后的数据类型。
    注意:
    新数据类型不能为空,即使新字段与旧字段的数据类型相同,也必须将数据类型设置为与原来一样的数据类型。

    (3)修改字段的数据类型

    alter table 表名 modify 字段名   数据类型 ;

    说明:
    表名: 指的是要修改的字段所在的表名
    字段名: 指的是要修改的字段。
    数据类型: 指的是 修改后的字段的数据类型。
    这里写图片描述

    • 添加字段
    alter table 表名 add   新字段名   数据类型
        [约束条件][first|after  已存在的字段名] 

    说明:
    新字段名: 为要添加的字段名
    “first”为可选参数,将新添加的字段设置为表的第一个子段。
    “after”为可选参数,将新添加的字段添加到指定的“已存在的字段名”后面。

    • 修改字段的排列位置
    alter table 表名 modify 字段名1  数据类型 first|after 字段名2

    说明:
    “字段名1”指的是修改位置的字段
    “数据类型”指的是字段1的数据类型。
    “first”:是将字段1修改为第一个字段。
    “after”是将字段1 插入到字段2 的后面。
    这里写图片描述

    • 删除字段
    alter table 表名 drop 字段名 ;

    说明: 字段名指的是要删除的字段名。
    一般情况下,应该先查询表信息,即desc 表名;以判断字段是否存在。

    • 删除数据表
    drop table 表名;

    一般先查询是否存在该数据表,即show tables ; ,以检查要删除的数据表是否存在。

    这里写图片描述


    这里写图片描述

    展开全文
  • 数据库增删改查(SELECT、DELETE、UPDATE、INSERT)

    万次阅读 多人点赞 2018-03-02 09:54:03
    数据库增删改查我使用的是Northwind数据库来进行说明和显示一、查询---select一、简单查询 select 的语法:select 列名称 from 表名称 (其中 * 代表选择显示全部的列) 例如:select * from Region 结果...

                                                       数据库的增删改查

    我使用的是Northwind数据库来进行说明和显示

    一、查询---select

    一、简单查询
      select 的语法:select  列名称  from  表名称  (其中  * 代表选择显示全部的列)
     例如:
    select * 
    from Region
     结果:

    select RegionID
    from Region
    结果:

    Distinct (防止重复输出数据)

    语法  SELECT DISTINCT 列名称 FROM 表名称


    二、带有条件的查询 where
     语法 :  select 列名称 from 表名称  where 列 运算符 值
    (运算符有=、<=、!=、>=、<、>、<>、like、between)
    例如:=
    select EmployeeID,LastName,FirstName
    from Employees
    where EmployeeID=1 /*查询EmployeeID等于1的数据

    结果:

    <=
    select EmployeeID,LastName,FirstName /*查询EmployeeID 小于4的数据*/
    from Employees
    where EmployeeID<=4
    结果:

    like
    select EmployeeID,LastName,FirstName /*查询LastName首字母为F的数据*/
    from Employees
    where LastName like 'F%'
    结果:
      
    between
    select EmployeeID,LastName,FirstName /*查询EmployeeID 在1到9之间的数据(包含1和9)*/
    from Employees
    where EmployeeID between 1 and 9
    结果:    

    AND(前后两个条件需要全部成立)
    select EmployeeID,LastName,FirstName /*查询TitleOfCourtesy='Mr.' 并且 LastName='Buchanan'*/
    from Employees
    where TitleOfCourtesy='Mr.' and LastName='Buchanan'
    结果:

     OR(前后任意一个条件成立即可)
    select EmployeeID,LastName,FirstName /*查询TitleOfCourtesy='Mr.' 或者 LastName='Buchanan'*/
    from Employees
    where TitleOfCourtesy='Mr.' or LastName='Buchanan'
    结果:

    ORDER BY(根据 相应的列来进行排序 )默认升序(asc),同样的可以设置降序(desc)
    例如:
    select EmployeeID,LastName,FirstName /*查询TitleOfCourtesy='Mr.' 或者 LastName='Buchanan'*/
    from Employees
    where TitleOfCourtesy='Mr.' or LastName='Buchanan'

    结果:

    同样的查询时可以配合表的连接来实现更多效果,在此就不列出了。

    二、INSERT 插入数据

    语法:   INSERT INTO 表的名称 values(值1,值2,值3...)
    或者可以指定特定的列来进行插入数据操作
             INSERT INTO table_name (列1,列2,......) VALUES (值1,值2,.....)
            INSERT INTO table_name (列1,列2,......) VALUES (值1,值2,.....),(值3,值4),(值5,值6)
    例如:  
    插入特定的列/*插入单条数据*/
    insert into Employees (FirstName,LastName)/*给特定的两列添加数据,此表的主键已经设置为自增,所以不需要添加值*/
    values('Tom','Jim')
    实现结果:

     插入多条数据
    insert into Employees (FirstName,LastName)/*给特定的两列添加数据,此表的主键已经设置为自增,所以不需要添加值*/
    values('zhangyang','haha'),('nike','benci')/*添加多条数据*
    实现结果:

    插入特定的数据(通过select 选择出来的)
    insert into Employees (FirstName,LastName)/*给特定的两列添加数据,此表的主键已经设置为自增,所以不需要添加值*/
    select FirstName,LastName /*插入数据可以通过特定的查询来进行添加*/
    from Employees
    where EmployeeID=1 /*这里添加的就是EmployeeID=1的数据*/
    实现结果:

    三、UPDATE(更改数据)

              语法: update  表的名称 set  列名称=新值  where 列名称=某值

     例如:更新单个列

    update Employees
    set LastName='hello world'
    where EmployeeID=30 /*将EmployeeID=30的数据的LastName更改为hello world
    实现结果:

      
      更新多个列
    update Employees
    where EmployeeID=30 /*将EmployeeID=30的数据的LastName更改为hello world1,FirstName更新为ECJTU*/
    set LastName='hello world1',FirstName='ECJTU'
    实现结果:

      
    同样的UPDATE可以配合select 更新特定的数据
    update Employees
    where EmployeeID in(
    from EmployeeTerritories
    where TerritoryID=02116)
    select EmployeeID
    set LastName='你好'
    效果略

    四、DELETE (数据的删除)

     一、简单删除

       语法:DELETE  FROM 表的名称 WHERE 条

      例如:

     删除单条数据
    delete 
    where EmployeeID=32 /*删除EmployeeID=32的数据*/
    from Employees
      删除所有行数据
    delete 
    from Employees




    展开全文
  • 数据库增删改查操作

    万次阅读 2019-05-18 18:17:11
    数据库操作 数据库类型 创建和删除数据表 表操作 高级操作 SQL 约束 SQL 日期 SQL 函数 总结 参考 数据库操作 登陆数据库: mysql -h xxx -uroot -p pass 数据库名称 创建数据库: CREATE DATABASE 数据库...

    目录

    数据库操作

    数据库类型

    创建和删除数据表

    表操作

    高级操作

    SQL 约束

    SQL 日期

    SQL 函数

    总结

    参考


    数据库操作

    登陆数据库: mysql -h xxx -uroot -p pass 数据库名称
    创建数据库: CREATE DATABASE 数据库名;
    删除数据库: drop database <数据库名>;
    显示数据库: show databases;
    使用数据库: use 数据库名;

    数据库类型

    Extra信息
    数值类型: INT UNSIGNED、int(10) unsigned、float、
             int(size)  tinyint(size)
             tinyint(1、4) NOT NULL DEFAULT '1' COMMENT 'k8sservice端口标识'
             float NOT NULL DEFAULT '0' COMMENT 'cpu_quota',
    日期和时间类型: `create_time` datetime NOT NULL DEFAULT '1970-01-01 00:00:01' COMMENT '触发时间',
                  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最近修改时间',
    字符串类型: `instance_type` varchar(128) NOT NULL DEFAULT '' COMMENT 'instance 类型',   varchar(256)\text类型 

    创建和删除数据表

    创建数据表: 
        CREATE TABLE IF NOT EXISTS `runoob_tbl`(
       `runoob_id` INT UNSIGNED AUTO_INCREMENT,
       `runoob_title` VARCHAR(100) NOT NULL,
       `runoob_author` VARCHAR(40) NOT NULL,
       `submission_date` DATE,
       PRIMARY KEY ( `runoob_id` )
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    ​
        CREATE TABLE IF NOT EXISTS `person` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'key',
      `name` varchar(65) NOT NULL DEFAULT '' COMMENT '名字',
      `city` varchar(1024) NOT NULL DEFAULT '' COMMENT '居住城市',
      `address` varchar(1024) NOT NULL DEFAULT '' COMMENT '居住地址',
      `create_time` datetime NOT NULL DEFAULT '1970-01-01 00:00:01' COMMENT '触发时间',
      PRIMARY KEY ( `id` )
    )ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='person';
    ​
    AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
    PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
    ENGINE 设置存储引擎,CHARSET 设置编码。
    ​
    删除表:
       DROP TABLE table_name;
       TRUNCATE TABLE 表名称;
    查看创建表: show create table xxx;
    查看表结构: desc xxx;   
    修改表操作: ALTER TABLE 语句 用于在已有的表中添加、修改或删除列。
       表中添加列: ALTER TABLE table_name ADD column_name datatype
       表中删除列: ALTER TABLE table_name DROP COLUMN column_name
       修改列: ALTER TABLE table_name ALTER COLUMN column_name datatype

    表操作

    插入数据: INSERT INTO 表名称 VALUES (值1, 值2,....)             // 必须全部指定
             INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) 指定列插入数据
             insert table_name set xxx='',xxx='',xxx='';
    insert user set name="evanlixin",role="admin",token="0848a0cbcdde9a24e27a2e5f2918fd8b";
    查询数据: SELECT 列名称 FROM 表名称   
             SELECT * FROM 表名称
    distinct: SELECT DISTINCT 列名称 FROM 表名称 关键词 DISTINCT 用于返回唯一不同的值。
    where 子句: SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
    操作符 描述
    =    等于
    !=   不等于
    >    大于
    <    小于
    >=   大于等于
    <=   小于等于
    BETWEEN   在某个范围内
    LIKE      搜索某种模式
    ​
    and 和 or运算符
    SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter'
    AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
    如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
    如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
    ​
    ORDER BY 语句用于根据指定的列对结果集进行排序。
    ORDER BY 语句默认按照升序对记录进行排序。如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
    SELECT Company, OrderNumber FROM Orders ORDER BY Company
    SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber  按照Company升序排,相同时按照OrderNumber排
    SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC 逆序排
    SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
    注意:在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中有相同的值时,第二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。
    ​
    修改表中数据: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
    UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'
    删除表中行: DELETE FROM 表名称 WHERE 列名称 = 值
              DELETE FROM table_name

    高级操作

    limit语句: 
         LIMIT可以实现top N查询,也可以实现M至N(某一段)的记录查询
         SELECT * FROM MYTABLE ORDER BY AFIELD LIMIT offset, recnum
         其中offset为从第几条(M+1)记录开始,recnum为返回的记录条数。
         select * from person order by name limit 2;
         select * from person where id >= 1 and id <=3;
         
    LIKE操作符: 用于在 WHERE 子句中搜索列中的指定模式  "%" 可用于定义通配符(模式中缺少的字母)
         SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
         SELECT * FROM Persons WHERE City LIKE 'N%'\'%g'\'%lon%'\ NOT LIKE '%lon%'
    ​
    SQL 通配符:  必须与 LIKE 运算符一起使用。
                % 替代一个或多个字符
                _ 仅替代一个字符
                [charlist]  字符列中的任何单一字符   LIKE '[ALN]%'
                [^charlist]  [!charlist]   不在字符列中的任何单一字符
    ​
    IN 操作符: 在 WHERE 子句中规定多个值
              SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)
    ​
    SQL 别名:  可以为列名称和表名称指定别名(Alias)  别名使查询程序更易阅读和书写
              SELECT column_name(s) FROM table_name AS alias_name
              SELECT column_name AS alias_name FROM table_name
              
              
    SQL INNER JOIN 关键字: 两种写法 在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
          SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 
          ON table_name1.column_name=table_name2.column_name
          
    我们希望列出所有人的定购      
    SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders
    ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName      
    ​
    内联合的两种写法:
    SELECT podvm.id, podvm.group_id, podvm.task_id, podvm.name, podvm.hostname, podvm.gpu,podvm.cpu, podvm.memory, podvm.image_address, podvm.vm_index,
      podvm.pod_ip, podvm.binding_status, podvm.binding_target, podvm.status, podvm.op_user, podvm.region, podvm.create_time, podvm.tor, podvm.offline from
      podvm INNER JOIN podvmgroup ON podvm.group_id = podvmgroup.id
      where podvmgroup.service_ns = ?`
    ​
    SELECT podvm.id, podvm.group_id, podvm.task_id, podvm.name, podvm.hostname, podvm.gpu,podvm.cpu, podvm.memory, podvm.image_address, podvm.vm_index, podvm.pod_ip, podvm.binding_status, podvm.binding_target, podvm.status, podvm.op_user, podvm.region, podvm.create_time, podvm.tor, podvm.offline from podvm,podvmgroup where podvm.group_id = podvmgroup.id and podvmgroup.service_ns="evan-test.didicloud.op.didi.com"\G
    ​
    ​
    SELECT podvm.id, podvm.group_id, podvm.task_id, podvm.name, podvm.hostname, podvm.gpu, podvm.cpu, podvm.memory, podvm.image_address, podvm.vm_index,
      podvm.pod_ip, podvm.binding_status, podvm.binding_target, podvm.status, podvm.op_user,podvm.host_ip, podvm.region, podvm.create_time, podvm.tor, podvm.offline from
      podvm INNER JOIN podvmgroup ON podvm.group_id = podvmgroup.id
      where podvmgroup.service_ns = ? and podvmgroup.region = ? and podvmgroup.name =? `
      
    LEFT JOIN 关键字
    LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
    SELECT column_name(s) FROM table_name1  LEFT JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name
    ​
    现在,我们希望列出所有的人,以及他们的定购 - 如果有的话。
    SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons LEFT JOIN Orders
    ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName
    ​
    RIGHT JOIN 关键字
    RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
    SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name
    ​
    我们希望列出所有的定单,以及定购它们的人 - 如果有的话。
    SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons
    RIGHT JOIN Orders  ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName
    ​
    FULL JOIN 关键字
    只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
    SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name
    

    SQL 约束

    约束用于限制加入表的数据的类型。

    可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。

    我们将主要探讨以下几种约束:

    • NOT NULL

    • UNIQUE

    • PRIMARY KEY

    • FOREIGN KEY

    • DEFAULT

    NOT NULL 约束
        NOT NULL 约束强制列不接受 NULL 值。
        NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
    DEFAULT 约束
    DEFAULT 约束用于向列中插入默认值。如果没有规定其他的值,那么会将默认值添加到所有的新记录。    
    PRIMARY KEY 约束
    PRIMARY KEY 约束唯一标识数据库表中的每条记录。
       主键必须包含唯一的值。
       主键列不能包含 NULL 值。
       每个表都应该有一个主键,并且每个表只能有一个主键。
       创建表时通过 PRIMARY KEY ( `runoob_id` ) 进行主键约束。
    UNIQUE 约束
       UNIQUE 约束唯一标识数据库表中的每条记录。
       UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
       PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
       请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
       UNIQUE KEY `uniq_token` (`token`)
    FOREIGN KEY 约束
       一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。   
       FOREIGN KEY 约束用于预防破坏表之间连接的动作。
       FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。   

    SQL 日期

    当我们处理日期时,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。

    只要数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间,情况就有点复杂了。

    MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:

    • DATE - 格式 YYYY-MM-DD

    • DATETIME - 格式: YYYY-MM-DD HH:MM:SS

    • TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS

    • YEAR - 格式 YYYY 或 YY

    `create_time` datetime NOT NULL DEFAULT '1970-01-01 00:00:01' COMMENT '触发时间',
    `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最近修改时间',
    CURRENT_TIMESTAMP 表示当前的时间戳
    
    
    
    SELECT NOW(),CURDATE(),CURTIME()  返回当前的日期和时间
    DATE() 函数返回日期或日期/时间表达式的日期部分。 DATE(date)
    EXTRACT() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
         EXTRACT(unit FROM date)
    DATE_ADD() 函数向日期添加指定的时间间隔。DATE_ADD(date,INTERVAL expr type)
         date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
    DATE_SUB() 函数从日期减去指定的时间间隔。 DATE_SUB(date,INTERVAL expr type)
    DATEDIFF() 函数返回两个日期之间的天数。 DATEDIFF(date1,date2)
    ​
    数据库表统计七天之内的数据:
    select count(*) from task where category_type="xxx" and task_type="xxx" and date_sub(NOW(),INTERVAL 7 DAY) <= last_update_time

    SQL 函数

    拥有很多可用于计数和计算的内建函数。   SELECT function(列) FROM 表
    ​
    AVG 函数返回数值列的平均值。NULL 值不包括在计算中。 SELECT AVG(column_name) FROM table_name
    COUNT() 函数返回匹配指定条件的行数. 
        SELECT COUNT(column_name) FROM table_name
        SELECT COUNT(*) FROM table_name
        SELECT COUNT(DISTINCT column_name) FROM table_name
    MAX 函数返回一列中的最大值。NULL 值不包括在计算中。 SELECT MAX(column_name) FROM table_name
    MIN 函数返回一列中的最小值。NULL 值不包括在计算中。 SELECT MIN(column_name) FROM table_name
    SUM 函数返回数值列的总数(总额)。 SELECT SUM(column_name) FROM table_name
    ​
    GROUP BY 语句
        GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
    SELECT column_name, aggregate_function(column_name) FROM table_name
    WHERE column_name operator value  GROUP BY column_name
    区别:
    SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name;
    SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer
    SELECT Customer,SUM(OrderPrice) FROM Orders
    解释如下:上面的 SELECT 语句指定了两列(Customer 和 SUM(OrderPrice))。"SUM(OrderPrice)" 返回一个单独的值("OrderPrice" 列的总计),而 "Customer" 返回 6 个值(每个值对应 "Orders" 表中的每一行)。因此,我们得不到正确的结果。不过,您已经看到了,GROUP BY 语句解决了这个问题。
    ​
    HAVING 子句
        在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。主要是对合计结果做过滤
        SELECT column_name, aggregate_function(column_name)
    FROM table_name
    WHERE column_name operator value
    GROUP BY column_name
    HAVING aggregate_function(column_name) operator value
    ​
    LEN 函数返回文本字段中值的长度。 SELECT LEN(column_name) FROM table_name
    ROUND 函数用于把数值字段舍入为指定的小数位数。  SELECT ROUND(column_name,decimals) FROM table_name
    NOW 函数返回当前的日期和时间。 SELECT NOW() FROM table_name
    

    总结

    都是些基本操作,也算是回顾复习了吧!!!

    参考

    http://www.w3school.com.cn/sql/sql_quiz.asp

    展开全文
  • MySQL基本增删改查语句练习

    万次阅读 2019-11-08 15:41:23
    MySQL基本增删改查语句练习 #创建数据库: create database zhangsan character set gbk; # 为了便于在命令提示符下显示中文, 在创建时通过 character set gbk 将数据库字符编码指定为 gbk #要对一个数据库进行...
  • 网页实现数据库增删改查

    万次阅读 2018-05-01 20:41:40
    最近在做项目web后台数据增删查改的时候,看到一篇较为详细的经典文章,所以转载了下来,文章出处在:https://blog.csdn.net/qq_32539825/article/details/70657340如果作者认为侵权的告诉我,我立马删。首先jsp 和...
  • JavaWeb连接数据库增删改查(含登录验证、分页)

    万次阅读 多人点赞 2018-10-29 17:15:38
    简单的页面对数据库增删改查——新手入门推举 一、准备工作 eclipse(无版本要求)或myeclipse都行,本人用的是eclipse Apache Tomcat,我用的是7.0版本 数据库 MySQL 需要掌握到的知识点:项目的基本框架...
  • 数据库常用增删改查命令

    千次阅读 2019-04-24 21:59:30
    1、查询命令 SELECT 列名称 FROM 表名称 SELECT * FROM 表名称 WHERE 列名称 LIKE % 2、删除命令 DELETE FROM 表名称 WHERE 列名称 = 值 注意:删除某条语句要用where语句,不然会删除整个表格 ...
  • 数据库、表、基本增删改查

    千次阅读 2018-07-17 10:04:40
    一、对数据库的操作 1.创建一个库 create database 库名 create database 库名 character set 编码 创建带有编码的 查看编码: 2.删除一个库 drop database 库名 3.使用库 use 库名 4.查看当前...
  • 数据库的基础增删改查SQL语句

    万次阅读 多人点赞 2017-02-17 23:45:14
    数据库的基础增删改查SQL语句
  • 数据库增删改查例子

    千次阅读 2017-05-18 16:36:34
    1 1.1【插入单行】 insert [into] (列名) values (列值) 例:insert into Strdents (姓名,性别,出生日期) values ('开心朋朋','男','1980/6/15') 1.2【将现有表数据添加到一个已有表】 insert ...
  • 参考地址为:通过Java代码实现对数据库的数据进行操作:增删改查(JDBC)
  • Django的抽象模型Models可以直接对数据库进行增删改查,不需要你自己写SQL语言来进行相关数据库操作。今天我们就以博客blog为例,看下Django是如何对数据库进行增删改查的。我们将会用到如下这个简单的Article模型:...
  • 基于JSP的数据库增删改查实现

    千次阅读 2017-10-21 22:25:25
    基于JSP的数据库增删改查实现 一、JAVA包的设计 包 类 方法 entity PM25 Set,get dao BaseDao getConnection,close PM25Dao findAll, findById,insert,
  • MySQL增删改查常用语句命令

    万次阅读 多人点赞 2018-06-19 10:27:36
    2017/11/01 | 未分类 |songjian| 1 条评论 | 1818 viewsMySQL关系型数据库RDS中的老大哥,增删改查是MySQL入门的基础,数据库吧来说说MySQL数据库增删改查常用语句。增删改查语句增删改查的语句命令为增:...
  • MySql之增删改查

    万次阅读 2018-08-17 18:39:18
    数据库的层次: 库-----------&gt;表------------------&gt;字段;   对于数据库:   创建数据库: #create database 数据库名 (字符集设置 default character set uft8);   删除数据库:  ...
  • 数据库常用的增删改查sql语句

    千次阅读 2019-04-28 10:37:37
    数据库常用的增删改查sql语句 新增 新增一条数据 insert into 表名 values(全部列的值,用”,“分割); insert into 表名 (字段1, 字段2) values (值1, 值2); 新增多行数据 insert into 表名 values(全部列的值),...
  • GridControl增删改查

    千次阅读 2013-06-26 20:39:36
    说明:  1、我用的DEVEXPRESS是12.1.6 2、附加附件的数据库(或者直接执行SQL脚本)后,只需要修改App.config里面的连接字符串信息即可 ...1、运用 LINQTOSQL 增删改查数据 2、对姓名、数学、语文、英文进行数据验证
  • sqlserver之常见数据库指令(增删改查)

    万次阅读 多人点赞 2018-03-16 13:32:11
    使用sqlserver数据库的基础便是增删改查,下面记录这些常见的数据库指令:首先我的前置条件是创建了一个数据库test,并创建了一个Student表,表中字段为Id,stuName,stuSex,stuAge代码如下:create database test --...
  • C#winform基础增删改查(附数据库

    万次阅读 2018-05-30 20:50:59
    环境:mysql SqlServer工具:Visual Studio 2017安装Sql Server过程中出现了一点小问题,总是报错,经排除发现是之前安装了Visual Studio 的原因,安装Visual Studio 的时候已经安装了一个数据库插件,现在又进行...
1 2 3 4 5 ... 20
收藏数 199,774
精华内容 79,909
关键字:

数据库增删改查