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);

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

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

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

外键是可以设置成递增的

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

原文地址:https://www.cnblogs.com/lucaq/p/7237034.html