zoukankan      html  css  js  c++  java
  • mysql使用

    1.创建新的数据库

    mysqladmin -u root -p create RUNOOB

    show databases;查看数据库

    use runoob;进入runoob数据库

    遇到-> 输入;  结束一行的输入

    2,创建表

    CREATE TABLE runoob_tbl(

       -> runoob_id INT NOT NULL AUTO_INCREMENT,

       -> runoob_title VARCHAR(100) NOT NULL,

       -> runoob_author VARCHAR(40) NOT NULL,

       -> submission_date DATE,

       -> PRIMARY KEY ( runoob_id )

       -> );

    删除表 DROP TABLE runoob_tbl

     

    3插入数据

    INSERT INTO table_name ( field1, field2,...fieldN )

                           VALUES

                           ( value1, value2,...valueN );

     

    4show tables;

    Show columns from tb1;

    Show index from tb1;

    5查询数据

    SELECT column_name,column_name

    FROM table_name[WHERE Clause][OFFSET M ][LIMIT N]

    • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
    • SELECT 命令可以读取一条或者多条记录。
    • 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
    • 你可以使用 WHERE 语句来包含任何条件。
    • 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
    • 你可以使用 LIMIT 属性来设定返回的记录数。

    SELECT * from runoob_tbl

    SELECT * from runoob_tbl WHERE runoob_author='Sanjay';

    Where是不区分大小写的,如何区分大小写,加入BINARY关键字

    SELECT * from runoob_tbl

              WHERE BINARY runoob_author='sanjay';

    6 update更新表

    UPDATE table_name SET field1=new-value1, field2=new-value2[WHERE Clause]

    UPDATE runoob_tbl

        -> SET runoob_title='Learning JAVA'

        -> WHERE runoob_id=3;

    7删除表

    DELETE FROM table_name [WHERE Clause]

     

    8like子句

    SELECT field1, field2,...fieldN table_name1, table_name2...

    WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'

    • 你可以在WHERE子句中指定任何条件。
    • 你可以在WHERE子句中使用LIKE子句。
    • 你可以使用LIKE子句代替等号(=)。
    • LIKE 通常与 % 一同使用,类似于一个元字符的搜索。
    • 你可以使用AND或者OR指定一个或多个条件。
    • 你可以在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句来指定条件。

    SELECT * from runoob_tbl

        -> WHERE runoob_author LIKE '%jay';

    9 排序

    SELECT field1, field2,...fieldN table_name1, table_name2...

    ORDER BY field1, [field2...] [ASC [DESC]]

    • 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
    • 你可以添加 WHERE...LIKE 子句来设置条件。

    10group by子句

    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');

    SELECT * FROM employee_tbl;

    SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name;

     GROUP BY 语句 将数据表按名字进行分组,并统计每个人有多少条记录:

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

    WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)

    自动添加一行总的统计

     coalesce 来设置一个可以取代 NUll 的名称

    11 mysql连接join

    • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
    • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
    • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
    • SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

      等价于

      SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a, tcount_tbl b WHERE a.runoob_author = b.runoob_author;

      runoob_tbl a作为表的别名

       

       

      MySQL LEFT JOIN 会读取左边数据表的全部数据,即便右边表无对应数据。

      SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a LEFT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

       

       

      12 NULL查询使用IS NULL ,NOT NULL

      查找数据表中 runoob_count 列是否为 NULL,必须使用IS NULL和IS NOT NULL

      13MySQL中使用 REGEXP 操作符来进行正则表达式匹配

      ike % 模糊匹配

      SELECT name FROM person_tbl WHERE name REGEXP '^st'

      查找name中使用以st开头的

      name字段中以'ok'为结尾的所有数据 

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

      查找name字段中包含'mar'字符串的所有数据:

      mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

      查找name字段中以元音字符开头且以'ok'字符串结尾的所有数据:

      mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';

      *匹配0次或多次

      +匹配1次或多次

      ^m 匹配m开头的

      n$ 匹配n结尾的

  • 相关阅读:
    河北工业大学2021年高等代数考研试题, 湖南大学2021年数学分析考研试题, 湖南大学2021年高等代数考研试题
    锦哥湖南大学2021年高等代数考研试题参考解答
    锦哥湖南大学2021年数学分析考研试题参考解答
    锦哥河北工业大学2021年高等代数考研试题参考解答
    76套2021年数学分析高等代数考研试题pdf
    DevComponents.DotNetBar2 添加到工具栏方法
    在创建maven简单项目时,Description Resource Path Location Type web.xml is missing and <failOnMissingWebXml> is set to true
    jsp头部报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    windows查看8080端口并杀死进程
    Spring MVC方式搭建Dubbo监听器后台
  • 原文地址:https://www.cnblogs.com/lovely7/p/5810570.html
Copyright © 2011-2022 走看看