美文网首页
MySQL基础

MySQL基础

作者: c4a1d989518e | 来源:发表于2017-05-26 17:26 被阅读10次
    • 打开MySQL
    # 启动 MySQL 服务
    sudo service mysql start             
    
    # 使用 root 用户登录,实验楼环境的密码为空,直接回车就可以登录
    mysql -u root
    
    • 查看数据库
    show databases;
    
    • 连接数据库
    use <数据库名>
    
    • 查看表
    show tables;
    
    • 退出
    quit 或者 exit
    
    • 新建数据库
    CREATE DATABASE <数据库名字>;
    
    • 新建数据表
    CREATE TABLE 表的名字
    (
    列名a 数据类型(数据长度),
    列名b 数据类型(数据长度),
    列名c 数据类型(数据长度)
    );
    example:
    CREATE TABLE employee (id int(10),name char(20),phone int(12));
    
    • 插入数据
      查看表中的数据
    SELECT * FROM employee;
    

    我们尝试向 employee 中加入 Tom、Jack 和 Rose:

    INSERT INTO employee(id,name,phone) VALUES(01,'Tom',110110110);
    
    INSERT INTO employee VALUES(02,'Jack',119119119);
    
    INSERT INTO employee(id,name) VALUES(03,'Rose');
    
    • SELECT查询
    SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;
    
    SELECT name,age FROM employee WHERE age>25;
    

    查找一个名字为 Mary 的员工的 name,age 和 phone:

    SELECT name,age,phone FROM employee WHERE name='Mary';
    

    “AND”与“OR”

    SELECT name,age FROM employee WHERE age<25 OR age>30;
    

    IN 和 NOT IN
    用于筛选“在”或“不在”某个范围内的结果,比如说我们要查询在dpt3或dpt4的人:

    SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt IN ('dpt3','dpt4');
    

    通配符
    关键字 LIKE 在SQL语句中和通配符一起使用,通配符代表未知字符。SQL中的通配符是 _ 和 % 。其中 _ 代表一个未指定字符,% 代表不定个未指定字符。

    SELECT name,age,phone FROM employee WHERE phone LIKE '1101__';
    
    SELECT name,age,phone FROM employee WHERE name LIKE 'J%';
    
    • 对结果排序
      为了使查询结果看起来更顺眼,我们可能需要对结果按某一列来排序,这就要用到 ORDER BY 排序关键词。默认情况下,ORDER BY的结果是升序排列,而使用关键词ASC和DESC可指定升序或降序排序。
    SELECT name,age,salary,phone FROM employee ORDER BY salary DESC;
    
    • SQL 内置函数和计算
      SQL 有 5 个内置函数,COUNT、SUM、AVG、MAX、MIN。其中 COUNT 函数可用于任何数据类型(因为它只是计数),而 SUM 、AVG 函数都只能对数字类数据类型做计算,MAX 和 MIN 可用于数值、字符串或是日期时间数据类型。
    SELECT MAX(salary) AS max_salary,MIN(salary) FROM employee;
    
    • 子查询
      想要知道名为 "Tom" 的员工所在部门做了几个工程。员工信息储存在 employee 表中,但工程信息储存在project 表中。
    SELECT of_dpt,COUNT(proj_name) AS count_project FROM project
    WHERE of_dpt IN
    (SELECT in_dpt FROM employee WHERE name='Tom');
    
    • 连接查询
      子查询只有在结果来自一个表时才有用。但如果需要显示两个表或多个表中的数据,这时就必须使用连接 (join) 操作。连接的基本思想是把两个或多个表当作一个新的表来操作
    SELECT id,name,people_num
    FROM employee,department
    WHERE employee.in_dpt = department.dpt_name
    ORDER BY id;
    

    参考文章:
    Mysql

    相关文章

      网友评论

          本文标题:MySQL基础

          本文链接:https://www.haomeiwen.com/subject/wzsxfxtx.html