zoukankan      html  css  js  c++  java
  • MySql 常用命令总结

    注意事项:

    sql 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。

    一、数据库

    1、创建数据库

    CREATE DATABASE lesson ;
    

    创建一个名字为lesson的数据库

    2、删除数据库

    drop database lesson ;
    
    

    二:表

    1、创建表

    CREATE TABLE `mydb`.`it` (
          `id` INT NOT NULL,
          `name` VARCHAR(45) NULL,
          PRIMARY KEY (`id`)
     );
    

    在名字为mydb的数据库中创建一个表,表的名字叫it.

    表中有两个字段 : id , name 。 其中主键为 id

    2、删除表

    DROP TABLE `mydb`.`it`;
    

    数据库名: mydb

    表名 : it

    3、修改表的名字

    RENAME TABLE student TO user ;
    

    把student表的名字改为user

    4、复制表

    create table table2 select * from user ;
    

    通过复制user表,来创建一个新表table2

    三:增加数据

    1、往表里插入数据

    INSERT INTO `mydb`.`user` (`id`, `name`, `age`) VALUES ('2', 'lisid', '25');
    

    mydb : 数据库名

    user : 表名

    id ,name , age :代表三个字段
    VALUES :字段对应的数据

    四:删除数据

    1、条件删除(删除一行数据)

    DELETE FROM user WHERE  id=1  ; 
    

    删除id = 1 的所有数据 (删除id =1 的这一行)

    五、更新数据

    1、更新一个字段的值

    UPDATE `mydb`.`user` SET `age`='22' WHERE `id`='1';
    

    数据名: mydb
    表名 : user
    字段 : age
    筛选条件 : id = 1 ;

    在mydb数据库,user表中,把id = 1 的这一行的 age 属性值修改为 22

    2、更新多个字段的值

    UPDATE `mydb`.`user` SET `name`='奶茶妹妹', `age`='18' WHERE `id`='2'; 
    

    在mydb数据库,user表中,把id = 2 的这一行的 name属性值修改为 奶茶妹妹 , age 属性值修改为 22

    六:查询数据

    1、查询

    SELECT * FROM mydb.user;
    

    从mydb数据库中查询user表里面的所有数据

    2、单属性查询

    SELECT name  FROM user ;
    
    

    从user表中查询所有的name属性值

    3、多属性查询

    SELECT name , age  FROM user ;
    

    从user表中查询所有的name 和 age 的属性值

    4、条件查询 where

    1、根据 id 查询

    SELECT name , age , id  FROM user where id = 2 ;
    

    从user表中查询id等于2的所有name、age、id 的属性值,注意id的类型是整型,所以2不用加单引号

    2、根据 name 查询

    SELECT name , age , id  FROM user where name = 'tom' ;
    

    从user表中查询 name 值等于‘tom’ 的所有name、age、id 的属性值,注意name的类型是字符型,‘tom’加单引号

    3、逻辑查询:大于

    SELECT * FROM `user` WHERE id > 5  ;
    

    从user表中查询 id 值 大于 5 的所有name、age、id 的属性值
    所有的逻辑运算符都支持: 大于 > 、 小于 < 、 大于等于 >= 、 小于等于 <= 、 等于 = 、 不等 != (或者 <>)

    4、逻辑查询:BETWEEN

    SELECT * FROM `user` WHERE id BETWEEN 3 AND 8  ;
    

    user : 表名

    id : 字段名

    between : 操作符 作用是选取介于两个值之间的数据范围

    从user表中查询 id值在3(包含3) 到 (包含8)之间的所有name、age、id 的属性值 。 也就是 id 大于等于3, 小于等于8之间。

    5、逻辑查询:in

    SELECT * FROM `user` WHERE age in ( 12 , 18 )  ;
    

    user : 表名

    age : 字段名

    in : 操作符 作用是为查询条件规定多个值

    从user表中查询出年龄为12岁和18岁的人所有信息。 相当于并集。

    5、模糊查询 like

    1、模糊查询:以某字符开头

    SELECT * FROM student WHERE phone LIKE '1825%'
    

    student : 表名
    phone : 字段名 代表手机号

    LIKE : 模糊查询

    % : 代表任意一个或多个字符 , 可匹配任意类型和长度的字符。

    从student表中查出以1825开头的手机号

    2、模糊查询:多个条件

    SELECT * FROM student WHERE phone LIKE '182%' AND `name` LIKE 'zhang%'   ;
    

    student : 表名

    phone : 字段名 代表手机号

    name : 字段名 代表名字
    从student表中查出以182开头的手机号并且 名字是以zhang开头的所有信息

    3、模糊查询:通配符

    SELECT * FROM student WHERE phone LIKE '1825110114_'
    

    student : 表名

    phone : 字段名 代表手机号

    LIKE : 模糊查询

    _ : 代表一个字符

    从student表中查出以1825110114开头的手机号

    5、模糊查询:包含

    SELECT * FROM student WHERE phone LIKE '%114%' ;
    

    student : 表名

    phone : 字段名 代表手机号

    LIKE : 模糊查询

    % : 代表任意一个或多个字符 , 可匹配任意类型和长度的字符。
    从student表中查出手机号包含114的所有信息

    6、模糊查询:取消通配符

    SELECT * FROM student WHERE phone LIKE '%114\%'  ;
    

    student : 表名

    phone : 字段名 代表手机号

    LIKE : 模糊查询

    % : 代表任意一个或多个字符 , 可匹配任意类型和长度的字符。

    从student表中查出以114%结尾的手机号 , 第一个 % 代表通配符 , % 代表% 字符,没有通配符的功能

    6、数量限制查询 limit

    select * from user order by id limit 3 , 5 ;
    

    从user表中查询 从3开始(包括3),数量为5 条数据。也就是3、4、5、6、7 条数据

    注意5代表的是查询的数量

    7、单字段排序查询 order by

    order by 语句用于根据指定的列对结果集进行排序,默认按照升序对。

    select * from  mydb.`user` order by age ;
    

    mydb : 数据库名

    user : 表名

    age : 排序字段

    从user表中查询所有的信息,查询结果按照 age 字段排序。(默认升序)

    select * from  mydb.`user` order by age DESC ;  
    

    从user表中查询所有的信息,查询结果按照 age 字段降序排序。

    8、多字段排序查询 order by

    select * from  mydb.`user` order by age DESC , `name` ;  
    

    mydb :数据库

    user :表名

    age :年龄

    name :名字

    从user表中查询所有的信息,查询结果按照 age 降序排序。如果年龄相同,就按照name,升序排序 。

    9、求总 count()

    SELECT COUNT( name ) FROM `user`   ;
    

    name : 字段名,代表名字

    user : 表名

    从user表中查询 name 值得数目,不计 null 值。

    SELECT COUNT( * ) FROM `user` ;
    

    查询user表中的记录数

    SELECT COUNT( DISTINCT `name` ) FROM `user` ;
    

    查询user表中name字段不同值的数目,相当于去重。

    10、求最大值 max() 和 最小值 min()

    MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。

    SELECT MAX( id ) FROM `user` ;
    

    从user表中查询 id 字段的最大值

    SELECT MIN( id ) FROM `user` ;
    

    从user表中查询 id 字段的最小值

    11、求和 sum()

    SELECT SUM( id ) FROM `user` ;
    

    id : 字段名

    user : 表名

    查询user表中 id 值的和

    12、求平均值 avg()

    SELECT AVG( id ) FROM `user` ;
    

    id : 字段名

    user : 表名

    查询user表中 id 值的平均数

    13、显示所有数据库

    SHOW DATABASES;
    

    14、显示所有的表

    SHOW TABLES;
    

    七:视图

    1、视图的基本概念

    http://www.cnblogs.com/zzwlovegfj/archive/2012/06/23/2559596.html

    2、创建一个视图

    CREATE VIEW myview as SELECT * FROM mydb.`user` ;
    

    myview :视图的名字

    mydb :数据库的名字

    user : 表的名字

    查询user表的所有数据,作为视图myview的数据

    3、删除视图

    drop view myview ;
    

    myview : 视图的名字

    八:子查询

    1、 查询 video 表里面 status 字段为0 的前5条数据,并且按照 id 降序排列

    select t.* from (select * from video where status = 0 limit 5) as t order by t.id desc ; 
    
    

    这里的 select * from video where status = 0 limit 5 相当于一个临时表,用别名t代替。


    个人微信号:zhaoyanjun125 , 欢迎关注

  • 相关阅读:
    回文串---最长回文
    回文串---Hotaru's problem
    回文串--- Girls' research
    回文串---吉哥系列故事——完美队形II
    回文串---Palindrome
    treap树---营业额统计
    treap树---Double Queue
    《程序员代码面试指南》第二章 链表问题 复制含有随机指针节点的链表
    《程序员代码面试指南》第二章 链表问题 将单链表按某值划分为左边小,中间相等,右边大的链表
    《程序员代码面试指南》第二章 链表问题 反转部分单向链表
  • 原文地址:https://www.cnblogs.com/zhaoyanjun/p/8944374.html
Copyright © 2011-2022 走看看