zoukankan      html  css  js  c++  java
  • 通过sql语句对MySql数据库的基本操作

    一、数据库的基本操作

    1    CREATE DATABASE  mybookstore;
    2      DROP DATABASE  mybookstore;

    二、表的基本操作

      1、创建表

          insert into 表名(字段名1,字段名2) values(值1,值2);

    1    CREATE TABLE student(
    2          id INT,
    3          `name` VARCHAR(50)
    4     );

      2、删除表

          delete from 表名 where语句;

        DROP TABLE student;

      3、修改表

          update 表名 set 字段名1=字段值,字段名2=字段值 where语句

        update dept set dept_name='人事部门' where id=4

      4、查询表

          select 字段名1,字段名2 from 表名 where语句

        SELECT * FROM stu WHERE id=3;

    三、表查询关键字

      1、关键字使用及SQL语句顺序

          select 列名1,列名2...

          from 表1

          join 表2

          on 连接条件

          where 过滤条件

          group by 分组条件1,分组条件2

          having 聚合函数过滤

          order by 排序列1,排序列2

          limit 分页

      2、执行顺序:from—>on—>join—>where—>group by—>with—>having—>select—>distinct—>order by —>limit

    四、约束

      1、主键[primary key ]:可以唯一的表示一行数据,可以快捷的检索到一条数据!(唯一、非空、可以被引用

      2、自增:auto_increment:自增仅仅适用于数值类型的值!

      3、非空:not null :表示当前字段值不能为null

      4、唯一:unique:表示当前字段值必须是唯一的

      5、注意一点:约束必须放在列名类型后面,至于多个约束的顺序无所谓!

      6、外键:

        外键关联指的是将一个表中的列和另一个表的主键进行关联!    

          1)一对一
            经典案例:夫妻

     1 /*一对一:夫妻*/
     2 CREATE TABLE husband(
     3     id INT PRIMARY KEY AUTO_INCREMENT,
     4     `name` VARCHAR(20) NOT NULL
     5 );
     6 
     7 INSERT INTO husband VALUES(1,'张三');
     8 INSERT INTO husband VALUES(2,'王五');
     9 
    10 CREATE TABLE wife(
    11     id INT PRIMARY KEY AUTO_INCREMENT,
    12     `name` VARCHAR(20) NOT NULL,
    13     FOREIGN KEY(id) REFERENCES husband(id)
    14 );
    15 INSERT INTO wife VALUES(1,'李四');
    16 INSERT INTO wife VALUES(2,'赵六');
    17 INSERT INTO wife VALUES(1,'李静');   /*由于一对一约束,此行插入失败*/

           2)一对多[多对一]

            通常是在多的一端关联一的主键!通常将外键建在多的一端!

            经典案例:部门表与员工表 dept& emp

     1 /*一对多:员工-部门*/
     2 DROP TABLE dept;
     3 CREATE TABLE dept(
     4     id INT PRIMARY KEY AUTO_INCREMENT,
     5     dept_name VARCHAR(10) NOT NULL UNIQUE
     6 );
     7 INSERT INTO dept VALUES(NULL,'开发部门');
     8 
     9 DROP TABLE emp;
    10 CREATE TABLE emp(
    11     id INT PRIMARY KEY AUTO_INCREMENT,
    12     `name` VARCHAR(30) NOT NULL UNIQUE,
    13     dept_id INT ,
    14     FOREIGN KEY(dept_id) REFERENCES dept(id)
    15 );
    16 INSERT INTO emp VALUES(NULL,'张三',1);
    17 INSERT INTO emp VALUES(NULL,'李四',1);
    18 INSERT INTO emp VALUES(NULL,'王五',1);

           3)多对多 

            经典案例:教师 学生

     1 /*多对多:教师-学生*/
     2  CREATE TABLE teacher(
     3     id INT PRIMARY KEY AUTO_INCREMENT,
     4     `name` VARCHAR(20) NOT NULL
     5  );
     6 INSERT INTO teacher VALUES(NULL,'李老师');
     7 INSERT INTO teacher VALUES(NULL,'刘老师');
     8 INSERT INTO teacher VALUES(NULL,'王老师');
     9  
    10  CREATE TABLE student(
    11     id INT PRIMARY KEY AUTO_INCREMENT,
    12     `name` VARCHAR(20) NOT NULL
    13  );
    14 INSERT INTO student VALUES(NULL,'严涛');
    15 INSERT INTO student VALUES(NULL,'杨涛');
    16 INSERT INTO student VALUES(NULL,'邹梦洁');
    17  
    18  CREATE TABLE tea_stu(
    19     tea_id INT,
    20     stu_id INT,
    21     FOREIGN KEY(tea_id) REFERENCES teacher(id),
    22     FOREIGN KEY(stu_id) REFERENCES student(id)
    23  );
    24 INSERT INTO tea_stu VALUES(1,1);
    25 INSERT INTO tea_stu VALUES(1,2);
    26 INSERT INTO tea_stu VALUES(1,3);
    27 INSERT INTO tea_stu VALUES(2,1);
    28 INSERT INTO tea_stu VALUES(2,1);

     五、连接方式

      横向连接:join on

      纵向连接:union、union all,对应的字段列数、类型必须一致

            union all不包含去重功能,而union会自动去重

  • 相关阅读:
    在mac系统上安装Eclipse,编写java程序
    显示和隐藏Mac隐藏文件的终端命令
    iOS中UIKit——UIDataDetectors(数据检测器)它将电话、邮件、网址等变为链接
    C语言中的关键字
    IOS基础——静态方法(类方法)和实例方法
    IOS基础——alloc、init和new方法
    IOS基础——实例变量四种范围类型
    iOS中UIKit——UIFont得到iOS设备上的系统字体
    iOS中UIKit——UIButton设置边框
    IOS中获取屏幕尺寸
  • 原文地址:https://www.cnblogs.com/java-zmj/p/7843669.html
Copyright © 2011-2022 走看看