• mysql语句(一)


    --建表
    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;

    --插入数据
    INSERT INTO runoob_tbl (runoob_title, runoob_author, submission_date) VALUES ("学习 PHP", "菜鸟教程", NOW());

    INSERT INTO runoob_tbl (runoob_title, runoob_author, submission_date) VALUES ("学习 MySQL", "菜鸟教程", NOW());

    INSERT INTO runoob_tbl (runoob_title, runoob_author, submission_date) VALUES ("JAVA 教程", "RUNOOB.COM", '2016-05-06');

    INSERT INTO runoob_tbl (runoob_title, runoob_author, submission_date) VALUES ("学习 Python", "RUNOOB.COM", '2016-05-06');

    --查询全部
    select * from runoob_tbl

    --条件查询where

    select * from runoob_tbl where runoob_author = "菜鸟教程"


    --多重条件查询
    select * from runoob_tbl where runoob_author = "菜鸟教程" AND runoob_id = 1

    --更新数据库字段
    UPDATE runoob_tbl SET runoob_title="学习 C++" WHERE runoob_id = 3


    --更新数据库表部分字段
    UPDATE runoob_tbl SET runoob_title=REPLACE(runoob_title,'C++','Python') WHERE runoob_id = 3

    --删除数据 delete from 表名称 where 删除条件;
    DELETE FROM runoob_tbl WHERE runoob_id = 3


    --MySQL LIKE 子句
    SELECT* FROM runoob_tbl WHERE runoob_author LIKE('%COM')

    like 匹配/模糊匹配,会与 % 和 _ 结合使用。

    '%a'     //以a结尾的数据
    'a%'     //以a开头的数据
    '%a%'    //含有a的数据
    '_a_'    //三位且中间字母是a的
    '_a'     //两位且结尾字母是a的
    'a_'     //两位且开头字母是a的

    查询以 java 字段开头的信息。

    SELECT * FROM position WHERE name LIKE 'java%';

    查询包含 java 字段的信息。

    SELECT * FROM position WHERE name LIKE '%java%';

    查询以 java 字段结尾的信息。

    SELECT * FROM position WHERE name LIKE '%java';
    
    

    在 where like 的条件查询中,SQL 提供了四种匹配方式。

    1. %:表示任意 0 个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
    2. _:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。
    3. []:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
    4. [^] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
    5. 查询内容包含通配符时,由于通配符的缘故,导致我们查询特殊字符 “%”、“_”、“[” 的语句无法正常实现,而把特殊字符用 “[ ]” 括起便可正常查询。

    --MySQL 排序

    --在命令提示符中使用 ORDER BY 子句
    select * from runoob_tbl ORDER BY submission_date ASC




    select * from runoob_tbl ORDER BY submission_date DESC

    
    

    --MySQL GROUP BY 语句

    
    

    --创建新表
    DROP TABLE IF EXISTS `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');

    
    

    --GROUP BY 语法

    --接下来我们使用 GROUP BY 语句 将数据表按名字进行分组,并统计每个人有多少条记录:
    select name, count(*) from employee_tbl GROUP BY name

    --使用 WITH ROLLUP
    --WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。
    SELECT name, SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;

    SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;
     









  • 相关阅读:
    Linux 安装中文man手册
    centos6.9使用NTFS-3G挂载ntfs文件系统
    Linux基础知识之挂载详解(mount,umount及开机自动挂载)
    技术点总结
    SQL 分组后获取其中一个字段最大值的整条记录 【转载】
    线程池之ThreadPool类与辅助线程
    Task.Run使用默认线程池
    VS生成事件
    线程池之ThreadPoolExecutor使用
    Sql笔记
  • 原文地址:https://www.cnblogs.com/zxx7777777/p/11254175.html
Copyright © 2020-2023  润新知