zoukankan      html  css  js  c++  java
  • 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);

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

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

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

    外键是可以设置成递增的

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

  • 相关阅读:
    第36课 经典问题解析三
    第35课 函数对象分析
    67. Add Binary
    66. Plus One
    58. Length of Last Word
    53. Maximum Subarray
    38. Count and Say
    35. Search Insert Position
    28. Implement strStr()
    27. Remove Element
  • 原文地址:https://www.cnblogs.com/lucaq/p/7237034.html
Copyright © 2011-2022 走看看