码迷,mamicode.com
首页 > 数据库 > 详细

通过sql语句对MySql数据库的基本操作

时间:2017-11-17 00:18:14      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:sql语句   顺序   int   distinct   1.5   not   creat   varchar   人事部门   

一、数据库的基本操作

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

 

通过sql语句对MySql数据库的基本操作

标签:sql语句   顺序   int   distinct   1.5   not   creat   varchar   人事部门   

原文地址:http://www.cnblogs.com/java-zmj/p/7843669.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!