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、恢复

  • 相关阅读:
    关于form表单的相同name问题
    MySQL数据库视图
    Blazor
    查看Oracle正在执行的任务
    比较不错的几款开源的WPF Charts报表控件
    Raft算法
    EntityFramework 使用Linq处理内连接(inner join)、外链接(left/right outer join)、多表查询
    systemd、upstart和system V 枯木
    MRTG生成首页报错解决方法 枯木
    dd备份和恢复 枯木
  • 原文地址:https://www.cnblogs.com/luoqian/p/6375515.html
Copyright © 2011-2022 走看看