zoukankan      html  css  js  c++  java
  • mysql初识

    结构化查询语言structured query language
    一、认识数据库
    1、检查是否按照mysql
    `sudo service mysql start`
    2、查看数据库
    `show database`
    3、连接数据库
    `use databasename`
    4、查看表
    `show tables;`
    5、退出
    quit或exit

    二、创建并插入
    1、新建数据库
    `create database 数据库名字;`创建成功可以用`show database;`进行查看
    2、连接数据库
    `use mysql_shiyan`
    3、新建数据表
    ```create table 表名
    (
    列名a 数据类型(数据长度),
    列名b 数据类型(数据长度),
    列名c 数据类型(数据长度)
    )
    ```
    4、数据类型
    enum 单选,比如性别
    set 多选
    char与varchar的区别:char的长度是固定的,不管你的输入是多少,存入内存中的字符都占定义的字节数。而varchar是按照实际长度存储。
    5、插入数据
    `insert into 表名(列名1,列名2,列名3) values(01,02,03)`
    6、查询语句
    `select * from employee;`

    三、sql的约束
    约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。
    1、约束的分类
    约束类型:主键、默认值、唯一、外键、非空
    复合主键
    `CONSTRAINT proj_pk PRIMARY KEY (proj_num,proj_name)`
    proj_pk是主键名字自定义

    四、select语句详解
    1、基本用法
    SELECT 要查询的列名 FROM 表名 WHERE 限制条件

    `select name,age from employee;`

    查找employee表中年龄大于25岁的 并且显示出来name和age列
    `SELECT name,age FROM employee WHERE age>25`

    查找一个名字为Mary的员工
    SELECT name,age,phone FROM employee WHERE name="Mary";

    2、"AND"与“OR"
    WHERE 后面可以有不止一条限制,而根据条件之间的逻辑关系,可以用OR和AND连接。
    ```
    #筛选出age大于25,且age小于30
    SELECT name,age,phone FROM employee WHERE age>25 AND age<30;
    #如果需要包含25和30,可以替换为age BETWEEN 25 AND 30;
    ```
    3、IN 和 NOT IN 在或者不在

    4、通配符
    LIKE在SQL语句中和通配符一起使用,通配符代表未知字符。SQL中的通配符是_和%。其中_代表一个未指定字符,%代表不定个未指定字符。
    找出前3位是110,后两位忘记的数字
    `SELECT name,age FROM employ WHERE LIKE '110__'`

    5、对结果排序
    ORDER BY ,设置升序或者降序

    6、内置函数和计算
    count计数、sum求和、avg求平均值、max最大值、min最小值
    ```
    #计算出salary的最大、最小值
    SELECT MAX(salary) AS max_salary,MIN(salary) FROM employee;
    ```
    7、子查询
    当要在多个表中处理才能得出结果时,就要用到子查询。
    ```
    #想要知道”tom“员工所在部门做了几个工程。就要先找到tom员工是在哪个部门,然后再计算这个部门总共的工程数。
    SELECT of_dpt,COUNT(proj_name) AS count_project FROM project WHERE of_dpt IN
    (SELECT in_dpt FROM employee WHERE nama="Tom");
    ```

    8、连接查询
    在处理多个表时,子查询只能在结果来自一个表时才有用。但如果需要显示两个表或多个表中的数据,就要用join。思想是把两个或多个表当作一个新的表操作。

    五、数据库及表的修改和删除
    1、删除数据库
    `DROP DATABASE test_01;`
    2、对一张表进行修改
    重命名一张表
    RENAME TABLE 原名 TO 新名字;
    3、对一列的修改
    - 增加一列:alter table 表名 add 列名 数据类型 约束
    并且可以对插入的列进行位置控制可以用after和first关键词,默认情况下在最后一列。
    - 删除一列
    alter table employee drop 列名
    - 重命名一列
    alter table 表名 change 原列名 新列名 数据类型 约束
    注意数据类型是必须的。
    - 改变数据类型
    alter table 表名 modify 列名字 数据类型
    4、对表的内容修改
    - 修改表中某个值
    update 表名字 set 列1=值1 where 条件
    一定要有条件值。
    - 删除一行记录
    delete from 表名 where 条件

    六、其他基本操作
    1、索引
    索引是一种与表有关的结构,它的作用相当于书的目录,可以根据目录中的页码快速找到所需的内容。
    当表中有大量记录,若对表进行查询,没有索引的情况是全表搜索,将所有记录-取出,和查询条件进行-对比,然后返回满足条件的记录。这样做会消耗大量数据库系统时间,并造成大量磁盘i/o。
    - 对某列创建索引
    create index 索引名 on 表名 (列名)

    2、视图
    视图是从一个或多个表中导出来的表,是一种虚拟存在的表。
    它就像一个窗口,通过这个窗口可以看到系统专门提供的数据,这样用户可以不用看整个数据库,而只关心对自己有用的数据。
    - 创建视图
    create view 视图名(列a,列b,列c) as select 列1, 列2, 列3 from 表名字;

    3、导入
    可以把文件里的数据保存进一张表。
    load data infile '文件路径' into table 表名字;

    4、导出
    5、备份
    6、恢复

  • 相关阅读:
    《ASP.NET Core跨平台开发从入门到实战》Web API自定义格式化protobuf
    .NET Core中文分词组件jieba.NET Core
    .NET Core 2.0及.NET Standard 2.0
    Visual Studio 2017 通过SSH 调试Linux 上.NET Core
    Visual Studio 2017 ASP.NET Core开发
    Visual Studio 2017正式版离线安装及介绍
    在.NET Core 上运行的 WordPress
    IT人员如何开好站立会议
    puppeteer(二)操作实例——新Web自动化工具更轻巧更简单
    puppeteer(一)环境搭建——新Web自动化工具(同selenium)
  • 原文地址:https://www.cnblogs.com/luoqian/p/6375515.html
Copyright © 2011-2022 走看看