• MySQL SQL语句


    关系数据库: MySql ,Oracle, sql server , db2 ,sqlite,
    非关系数据库: redis mongodb

    SQL语句:结构化语句

    规范:
      1、不区分大小写(命令建议大写)
      2、以分号作为结束符号
      3 、注释    --    /* */

     

    ===================================day1==========================

    数据库的操作

      SHOW DATABASES; --查看所有的数据库
      CREATE DATABASE database_name --创建数据库
      SHOW CREATE DATABASE database_name--查看创建数据库信息
      DROP DATABASE database_name----删除某一个数据库

      USE database_name -----使用某个数据库

     

    数据表的操作

    ----创建一个表  create
      CREATE TABLE table_name(
      字段名 字段数据类型 [约束] ,
      字段名 字段数据类型 [约束] ,
      字段名 字段数据类型 [约束] ,
      ....

      字段名 字段数据类型 [约束]
      )

    ----约束:
      主键(primary key):非空 且 唯一
      not null: 非空约束
      unique: 唯一约束


    ----修改表  alter

      增加列(字段)
        alter table tab_name add [column] 列名 类型[完整性约束条件][first|after 字段名];
      修改一列类型
        alter table tab_name modify 列名 类型 [完整性约束条件][first|after 字段名];
      修改列名
        alter table tab_name change [column] 列名 新列名 类型 [完整性约束条件][first|after 字段名];
      删除一列
        alter table tab_name drop [column] 列名;
      修改表名
        rename table 表名 to 新表名;
      修该表所用的字符集
        alter table student character set utf8;

    ----查看表  desc
      desc table_name
      show tables
      show create table table_name

    ----删除表  drop
      drop table table_name

     


    ===================================day2==========================
    表记录的操作


    ----插入表记录  insert

      -- 插入一条数据 insert
        INSERT [INTO] table_name (字段名称,...) VALUES (值....);

      -- 插入多条数据
        INSERT [INTO] table_name (字段名称,...) VALUES (值....),
        (值....),
        ....
        (值....);

    ----修改表记录  update

      UPDATE table_name set 字段=值,字段=值... WHERE 字句

    ----删除表记录  drop

      DELETE FROM table_name WHERE 字句;

      truncate TABLE table_name;

    ----查询表记录  select

      --查询语法:

        SELECT *|field1,filed2 ... FROM tab_name
        WHERE 条件
        GROUP BY field
        HAVING 筛选
        ORDER BY field
        LIMIT 限制条数

      where子句中可以使用:

          ----比较运算符:
          > < >= <= <> !=
          between 80 and 100 值在10到20之间
          in(80,90,100) 值是10或20或30
          like 'yuan%'
          and or not

      order by子句:

        select *|field1,field2... from tab_name order by field [Asc|Desc]

        -- Asc 升序、Desc 降序,其中asc为默认值 ORDER BY 子句应位于SELECT语句的结尾。

      limit子句:

        SELECT * from ExamResult limit 1;

      REGEXP使用:

        SELECT * FROM employee WHERE emp_name REGEXP '^yu';

    ===================================day3==========================

    外键约束

    表与表的关系:

    一对多

      [ADD CONSTRAINT charger_fk_stu]  FOREIGN KEY (charger_id)  REFERENCES  ClassCharger(id)

    -----------增加外键和删除外键---------

      ALTER TABLE student ADD CONSTRAINT abc
      FOREIGN KEY(charger_id)
      REFERENCES classcharger(id);

      ALTER TABLE student DROP FOREIGN KEY abc;

    多对多:

      第三张表中创建两个外键关键

    一对一

      对外键字段加一个唯一约束


    2、多表查询

      SELECT * FROM employee INNER JOIN department ON employee.dept_id = department.dept_id;

      SELECT * FROM employee LEFT JOIN department ON employee.dept_id = department.dept_id;

     

      -- 子查询

      SELECT * FROM employee WHERE dept_id IN (SELECT dept_id FROM department);

    ========================================================

    一对多,有外键的那张表是多,建立关系只需要一和多两张表就可以了
    有外键的是子表,另一个是主表

    多对多需要第三张表建立关系,两个外键

    外键是可以设置成递增的

    =========================================================

  • 相关阅读:
    subString源码分析
    我的three.js学习记录(三)
    我的three.js学习记录(二)
    2017-10-15
    我的three.js学习记录(一)
    我的Spring学习记录(三)
    我的Spring学习记录(二)
    我的Hibernate学习记录(二)
    我的Hibernate学习记录(一)
    Tomcat学习笔记
  • 原文地址:https://www.cnblogs.com/lucaq/p/7237034.html
Copyright © 2020-2023  润新知