原 MySQL数据库的常用操作

作者: 90299fbffdea | 来源:发表于2018-08-29 17:42 被阅读39次

学习python少不了和数据库打交道,常见的数据库有:MySQL、SQLite、MongoDB、Redis等,这里主要介绍一下MySQL数据库的基本操作。

数据库听起来感觉好高大上,当你接触之后有种恍然大悟的感觉,不就是把我们的数据存到一个表格中吗。可以简单的这么理解,大家都知道表格都是由表名、表头、数据等几部分组成的,数据库跟这类似,只不过叫法不一样,这里叫数据库名、表名和字段。数据库就简单介绍这么多,说的不一定完全正确,下面就说一下怎么操作数据库。

一、MySQL字段类型

常用的有:数值(int, float)、字符串(varchar, text)、日期(date, datetime)

二、MySQL约束

主键:primary key

外键:foreign key

默认值:default

唯一:unique

非空:not null

三、物理删除和逻辑删除

在使用数据库的时候,一定会遇到删除数据库中的内容,这个时候一定要小心操作,不然就会被老板直接开除,网络上不是有个很火的命令操作叫"程序员如何执行一条命令让老板开除",所以操作数据库时一定要小心谨慎。

说一下什么是物理删除和逻辑删除,物理删除就是把一条数据从数据库中永远删除,就是再也找不到也不能恢复;逻辑删除就是给你设计的表再增加一列(比如:isDelete,设默认值为0),当你想删除数据时将这个字段的值设为1,当你再操作数据时把isDelete值为1的筛选掉就可以了,这样数据也不会丢失。对于重要的数据一定要设置这个字段,对于不重要的数据自己想怎么操作就怎么操作,大不了全部删除再重新建数据库。

四、数据库基本操作(增删改查)

1、创建数据库

create database [ if not exists] db_name [ character set utf8];

注意: [ if  not  exists]:最好加上,这样可以避免麻烦,每操作一次数据库就多一次风险

[ character  set utf8]就是设置编码格式,也可以不指定

2、查看数据

show databases;

3、查看数据库创建方式

show create database db_name;

4、修改数据库

alter database db_name [ character set xxx];

5、删除数据库

drop database [ if exists] db_name;

注意:  [ if  exists]:如果你不确定数据库是否存在最好加上,存在就删除,不存在也不会报错

6、使用数据库

use db_name;

7、查看当前使用数据库

select database();

五、数据库管理

1、通过grant命令,给test数据库,添加用户***,密码123456

grant select, insert, update, delete, create, drop on test  to '***'@ 'localhost' identified by '123456';

create table users(id int not null,

九、group by分组查询

create table product_tab( id int primary key auto_increment,

product_name varchar( 20),

price float( 6, 2),

product_date date,

class varchar( 20) );

insert into product_tab (product_name,price,product_date,class) values ( '苹果', 10, '20180812', '水果'),

( '香蕉', 20, '20180826', '水果'),

查询j开头的学生: select * from grade where name regexp '^j';

查询名字中m出现2次的学生: select * from grade where name regexp 'm{2}';

十四、多表操作

外键约束

/* 一个班级对应多个学生,一个学生只能对应一个班级 */

主表:创建班级表 create table class( id int primary key auto_increment, name varchar( 20), stu_nums int );

子表:创建学生表 create table student( id int primary key auto_increment, name varchar( 20), class_id int, foreign key(class_id) references class(id) );

注意:作为外键一定要和关联主键的数据类型保持一致

插入数据: insert into class (name,stu_nums) values ( '班级一', 10),( '班级二', 12),( '班级三', 13),( '班级四', 14),( '班级五', 15);

INNODB支持的on语句

外键约束对子表的含义:如果在父表中找不到候选键,则不允许在子表进行insert/update

    外键约束对父表的含义:在父表上进行update/delete以更新或删除在子表中的一条或多条对应数据,

父表的行为取决于:在定义子表的外键指定的on update/on delete语句

ON DELETE CASCADE 级联删除:父表记录被删除,子表对应的记录自动被删除

foreign key(class_id) references class( id) on delete cascade;

ON DELETE SET NULL 置空:父表update/delete记录时,子表设为null

foreign key(class_id) references class( id) on set null;

RESTRICT:拒绝对父表进行删除操作

多表查询

/* 创建2张表:员工表和部门表 并插入相关数据 */

create table employee( emp_id int primary key auto_increment, emp_name varchar( 20), age int, dept_id int );

create table department( dept_id int primary key auto_increment, dept_name varchar( 100) );

insert into employee(emp_name,age,dept_id) values ( 'A', 19, 200), ( 'B', 26, 201), ( 'C',

select * from employee right join department on employee.dept _id=departme nt.dept_id;

多条件查询

查询员工大于25岁的信息:

select employee.emp _name,department.dept_name

-> from employee,department

-> where employee.dept_id=department.dept_id and age>25;

以内连接方式查询employee和department表,并以age字段升序显示:

select employee.emp _id,employee.emp_name,employee.age,department.dept _name

-> from employee,department

-> where employee.dept_id=department.dept _id

-> order by age asc;

子查询:查询employee表,dept _id在department表中的所有信息

select * from employee where dept_id in (select dept _id from department);

子查询:

select * from employee where dept_id in (select dept_id from department where age>25);

使用EXISTS关键字

EXISTS关字键字表示存在。在使用EXISTS关键字时,内层查询语句不返回查询的记录。

而是返回一个真假值。Ture或False

当返回Ture时,外层查询语句将进行查询;当返回值为False时,外层查询语句不进行查询

select * from employee where EXISTS (SELECT dept_name from department where dept_id=205);

select * from employee where EXISTS (SELECT dept_name from department where dept_id=203);  

欢迎工作一到五年的Java工程师朋友们加入Java进阶高级架构:828545509

本群提供免费的学习指导 架构资料 以及免费的解答

不懂得问题都可以在本群提出来 之后还会有职业生涯规划以及面试指导

相关文章

  • Go操作MySQL

    Go语言操作MySQL MySQL是业界常用的关系型数据库,本文介绍了Go语言如何操作MySQL数据库。 Go操作...

  • Go操作MySQL

    MySQL是业界常用的关系型数据库,本文介绍了Go语言如何操作MySQL数据库。 Go操作MySQL 连接 Go语...

  • mysql 总结

    1 mysql常用术语 2 mysql安装 3 连接数据库 4 数据库的操作 (**) 5. 表的基本操作(***...

  • 数据库常用操作

    数据库常用操作 数据库 连接数据库:mysql -u root -p ---> 输入密码mysql -uroot...

  • 原 MySQL数据库的常用操作

    学习python少不了和数据库打交道,常见的数据库有:MySQL、SQLite、MongoDB、Redis等,这里...

  • MySQL基础-常用指令

    MySQL常用基本指令 1 常用数据库操作指令 创建数据库 create database 删除数据库 drop...

  • Mysql常用命令

    Mysql常用命令 数据定义语句(DDL) 数据库操作 登录数据库:mysql -uroot -proot 创建数...

  • python操作mysql数据库

    python操作mysql数据库 安装包 安装mysql驱动,连接mysql服务器,这里选择pymysql包 常用...

  • MySQL的常用数据库操作命令

    MySQL的常用数据库操作命令 登录数据库:mysql -u 用户名 -p (回车后输入密码) 显示数据库和表:S...

  • 2019-01-22_Mybatis关于mysql简单操作学习

    Mybatis关于mysql简单操作学习1.概述对mybatis常用的操作命令做一下总结,数据库基于mysql。后...

网友评论

    本文标题:原 MySQL数据库的常用操作

    本文链接:https://www.haomeiwen.com/subject/qvpkwftx.html