一、数据库的基本操作

    CREATE DATABASE  mybookstore;
DROP DATABASE mybookstore;

二、表的基本操作

  1、创建表

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

    CREATE TABLE student(
id INT,
`name` VARCHAR(50)
);

  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)一对一
        经典案例:夫妻

 /*一对一:夫妻*/
CREATE TABLE husband(
id INT PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL
); INSERT INTO husband VALUES(1,'张三');
INSERT INTO husband VALUES(2,'王五'); CREATE TABLE wife(
id INT PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL,
FOREIGN KEY(id) REFERENCES husband(id)
);
INSERT INTO wife VALUES(1,'李四');
INSERT INTO wife VALUES(2,'赵六');
INSERT INTO wife VALUES(1,'李静'); /*由于一对一约束,此行插入失败*/

      2)一对多[多对一]

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

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

 /*一对多:员工-部门*/
DROP TABLE dept;
CREATE TABLE dept(
id INT PRIMARY KEY AUTO_INCREMENT,
dept_name VARCHAR(10) NOT NULL UNIQUE
);
INSERT INTO dept VALUES(NULL,'开发部门'); DROP TABLE emp;
CREATE TABLE emp(
id INT PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(30) NOT NULL UNIQUE,
dept_id INT ,
FOREIGN KEY(dept_id) REFERENCES dept(id)
);
INSERT INTO emp VALUES(NULL,'张三',1);
INSERT INTO emp VALUES(NULL,'李四',1);
INSERT INTO emp VALUES(NULL,'王五',1);

      3)多对多

        经典案例:教师 学生

 /*多对多:教师-学生*/
CREATE TABLE teacher(
id INT PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL
);
INSERT INTO teacher VALUES(NULL,'李老师');
INSERT INTO teacher VALUES(NULL,'刘老师');
INSERT INTO teacher VALUES(NULL,'王老师'); CREATE TABLE student(
id INT PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL
);
INSERT INTO student VALUES(NULL,'严涛');
INSERT INTO student VALUES(NULL,'杨涛');
INSERT INTO student VALUES(NULL,'邹梦洁'); CREATE TABLE tea_stu(
tea_id INT,
stu_id INT,
FOREIGN KEY(tea_id) REFERENCES teacher(id),
FOREIGN KEY(stu_id) REFERENCES student(id)
);
INSERT INTO tea_stu VALUES(1,1);
INSERT INTO tea_stu VALUES(1,2);
INSERT INTO tea_stu VALUES(1,3);
INSERT INTO tea_stu VALUES(2,1);
INSERT INTO tea_stu VALUES(2,1);

五、连接方式

  横向连接:join on

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

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

通过sql语句对MySql数据库的基本操作的更多相关文章

  1. 如何用SQL语句实现Mysql数据库的备份与还原

    以前一直做android客户端的项目,根本没有开发asp.net mvc的开发,现阶段做了一个模块,参数设置,以及数据库的备份与还原.其需求如下: 参数设置 本项参数设置为对自动数据备份进行设置,管理 ...

  2. 使用SQL语句修改Mysql数据库字符集的方法

    使用SQL语句修改Mysql数据库字符集的方法   修改库: alter database [$database] character set [$character_set] collate [$c ...

  3. Linux centosVMware mysql用户管理、常用sql语句、mysql数据库备份恢复

    一.mysql用户管理 grant all on *.* to 'user1'@‘127.0.0.1’ identified by 'mimA123'; 创建user1用户 使用user1登录 /us ...

  4. sql语句(Mysql数据库)

    Mysql数据库的sql语句: 一.基本操作 1.连接数据库 mysql -uroot -proot -hlocalhost -P3306 (-u表示用户名,-p密码,-h主机,-P端口号) 2.选择 ...

  5. MySQL用户管理、常用sql语句、MySQL数据库备份恢复

    1.MySQL用户管理 给远程登陆用户授权:grant all on *.* to 'user1'@'127.0.0.1' identified by '123456' (这里的127.0.0.1是指 ...

  6. SQL语句对MySQL数据库的操作之对数据库层面的操作

    一.数据库内部存储结构 字段->数据表->数据库->MySQL服务器 二.登录及退出数据库 mysql -h服务器地址 -u用户名 -p密码(这样的登录形式并不安全) mysql - ...

  7. SQL语句,mysql数据库

    sql语句,把一张表里的数据,和特定数据(固定常量)新插入另一张表 ,,, from wm_jobpoint INSERT INTO wm_department(departmentcode,depa ...

  8. Python使用sql语句对mysql数据库多条件模糊查询

    1 def find_worldByName(c_name,continent): 2 print(c_name) 3 print(continent) 4 sql = " SELECT * ...

  9. SQL语句大全(mysql,sqlserver,oracle)

    SQL语句大全 --语句功能--数据操作SELECT --从数据库表中检索数据行和列-selectINSERT --向数据库表添加新数据行-insertDELETE --从数据库表中删除数据行-del ...

随机推荐

  1. MFC实现普通DLL

    库有两种:动态链接库和静态链接库. 一,使用动态链接库: 通过项目——属性——配置属性——常规——项目默认值——配置类型下,选择动态库(.dll)选项 这样会生成.lib和.dll两种文件. 只是该. ...

  2. Mex混合编程专题二:MEX Hello Word

    VS2010中写mex入门级工程代码 接着上一篇文章的工程继续,如下代码: #include "stdafx.h" #include "mextest.h" # ...

  3. poj2661 Factstone Benchmark(大数不等式同取对数)

    这道题列出不等式后明显是会溢出的大数,但是没有必要写高精度,直接两边取对数(这是很简明实用的处理技巧)得: log2(n!)=log2(n)+log2(n-1)+...+log2(1)<=log ...

  4. stl_queue.h

    stl_queue.h // Filename: stl_queue.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: http:/ ...

  5. Convolutional Neural Networks for Visual Recognition 3

    Gradient Computing 前面我们介绍过分类器模型一般包含两大部分,一部分是score function,将输入的原始数据映射到每一类的score,另外一个重要组成部分是loss func ...

  6. JavaScript RegExp 正则表达式基础详谈

    前言: 正则对于一个码农来说是最基础的了,而且在博客园中,发表关于讲解正则表达式的技术文章,更是数不胜数,各有各的优点,但是就是这种很基础的东西,如果我们不去真正仔细研究.学习.掌握,而是抱着需要的时 ...

  7. mysql绿色安装

    先下载需要的文件: MySQL5.1(绿色).rar 和 MySQL-Front_v5.3(绿色版).rar 都是绿色免安装版 1.解压MySQL Server 5.1.rar到MySQL Serve ...

  8. JavaScript-Tool-富文本:UEditor

    ylbtech-JavaScript-Tool-富文本:UEditor UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量.可定制.用户体验优秀等特点.开源基于BSD协 ...

  9. 如何在Windows平台使用VS搭建C++/Lua的开发环境

    转自:http://ju.outofmemory.cn/entry/95358 本文主要介绍如何在Windows平台利用VS搭建C++/Lua开发环境.这里的“C++/Lua开发环境”主要指的是C++ ...

  10. 发一个可伸缩线程池大小的python线程池。已通过测试。

    发一个可伸缩线程池大小的线程池. 当任务不多时候,不开那么多线程,当任务多的时候开更多线程.当长时间没任务时候,将线程数量减小到一定数量. java的Threadpoolexcutor可以这样,py的 ...