zoukankan      html  css  js  c++  java
  • Mysql(1)

    数据库:

    SQL语句分类:

    1.DDL:数据定义语言,用来定义数据库对象,库,表,列等;>创建、删除、修改,库,表结构。

    2.DML:数据操作语言,用来定义数据库记录(数据),>增,删,改。

    3.DCL:数据控制语言,用来定义访问权限和安全级别。

    4.DQL:数据查询语言,用来查询记录(数据)。

     DDL

    1.数据库

    • 查看所有数据库:SHOW DATABASES
    • 切换(选择要操作的数据库) 数据库: USE 数据库名
    • 创建数据库:CREATE DATABASE [ IF NOT EXISTS]  mydb [CHARSET=utf8]
    • 删除数据库: DROP DATABASE  E [ IF EXISTS]  mydb
    • 修改数据库编码: ALTER DATABASE mydb CHARACTER SET utf8

    2.表

    • 创建表

    IF NOT EXISTS(SELECT * FROM DBO.SYSOBJECTS WHERE ID=OBJECT_ID(N'[DBO].[EMPLOYEES]') AND
    OBJECTPROPERTY (ID,N'ISUSERTABLE')=1 )

    CREATE  TABLE     tablename(

     nubmber  char(11),

     name  varchar(10),

     age   int,

    gender varchar(10),

    );

    • 查看当前数据库所有表名称: SHOW TABLES;
    • 查看表结构:DESC 表名;
    • 删除表: DROP TABLE 表名 ;
    • 修改表: ALTER TABLE 表名

    添加列

    alert  table 表名 add(

    列名  类型,

    列名  类型,

    );

    修改列类型

    alert  table 表名 modify  列名 类型名;

    修改列名

    alert  table 表名 change 原列名  新列名  类型名;

    删除列

    alert  table 表名 drop  列名  ;

    修改表名称

    alert  table 原表名 rename to 新表名;  

     DML

    DQL: SELECT * FROM 表名

    1.插入数据

    insert into 表名(列名1,列名2,. ..)values(列值1,列值2,...);

    2.修改数据

    update  表名 set 列名1=列值1,列名2=列值2,列名3=列值3,

    3.删除数据

     delete  from 表名[where 条件] 

    DQL

    一、基本查询

    1)查询所有列

    select  * from 表名

    2)查询指定列

    select  列1 ,列2 ,...... from  表名

    3) 完全重复的记录只查询一次

    select  distinct  列1, 列2 ......

    4)列运算

    a. 数量类型的列可以做加、减、乘、除运算

    b.字符串类型可以做连续预算

    select  concat (‘$’,sal)

    c.转换NULL值

    select ifnull(comm,0)

    d.给列起别名

    select  uid id ,name ......

    2.条件控制

    1)条件查询

    select   *  from  表名  where   .....

    2)模糊查询

    select  * from   表名  where   like  

    % 匹配任意个数字符

    _ 匹配一个字符

    二、排序

     order  by  emo asc (升序)  默认

    order  by   comm desc (降序)

    使用多列作为排序条件

    select  * from  where  emo order by  sal   asc , comm desc ,empno asc

    三、聚合函数

    1)count

    2)max

    3)min

    4)sum

    5)avg

    四、分组查询

    select   deptno conut(*) group by emo

    五、limit 字句(方言)

    limit 用来限制查询结果的起始行,及查询记录数

     mysql备份与恢复数据

    备份:mysqldump -u用户名 -p密码 数据库名 > 生成的脚本文件路径

    恢复: 1) mysqldump -u用户名 -p密码 数据库名 <生成的脚本文件路径

                2)  source : 生成的脚本文件路径

     约束

    1.主键约束:(唯一约束)[ 非空,唯一,被引用]    auto_increment (自增长)

    2.非空约束: not null

    3.唯一约束:unique

    表与表之间的关系:

    一、一对一关系

    1)表结构设计(建物理表)

    法1:分开两个独立的表
    create table wife(
      id int primary key,
      name varchar(10),
      sex char(1)
    );

    create table husband(
      id int primary key,
      name varchar(10),
      sex char(1),
      wid int unique,
      constraint husband_fk foreign key(wid) references wife(id)
    ); //通过constraint约束体现一对一


    法2:合并在一个独立表
    create table person(
      id int primary key,
      name varchar(10),
      sex char(1),
      wife int,
      husband int
    );

    二、多对多关系

    在表中建立多对多关系,需要三张表,在中间表使用两个外键,分别引用其他两个表的主键。

    create table student(
      sid int primary key,

    }

    create table teachert(
     tid int primary key,

    }

    create table stu_tea(
      sid int,

      tid int,

    constraint fk_student foreign key(sid) references student(sid),

    constraint fk_teacher foreign key(tid) references teacher(tid),

    }

    多表查询:

    1)分类:

    合并结果集查询

     UNION 作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。

    SELECT expression1, expression2, ... expression_n
    FROM tables
    [WHERE conditions]
    UNION [ALL | DISTINCT]
    SELECT expression1, expression2, ... expression_n
    FROM tables
    [WHERE conditions];

    tables: 要检索的数据表。
    WHERE conditions: 可选, 检索条件。
    DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
    ALL: 可选,返回所有结果集,包含重复数据。

     关联查询

    内连接:

    左外连接:

    右外连接:

     左连接:

     

     右连接:

     

    全连接:可以使用union来完成全连接

    子查询

     子查询是一个嵌套在select 、insert、update或delete语句或其它子查询中的查询。任何允许使用表达式的地方都可以使用子查询。

     子查询语法:

     select [all | distinct ] <select item list> from <table list> [ where <search condition>] [group by <group item list>] [having <group by search conditon>]

      嵌套查询

    嵌套查询是指将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询。

     

  • 相关阅读:
    Python利用Remove.bg接口自动消除图片背景
    解决ajxa跨域问题
    CentOS7 修改静态IP
    CentOS下 安装composer 与tp5.1
    centon 安装php-fpm+Nginx
    win10 安装selenium和使用
    Scrapy 爬虫框架入门
    Python 异常处理
    selenium和phantomjs的介绍
    MongoDB入门
  • 原文地址:https://www.cnblogs.com/ming-long/p/11577745.html
Copyright © 2011-2022 走看看