一、数据库的创建

  create database database_name  DEFAULT CHARACTER SET utf8;  //创建一个数据库  

  drop database database_name;  //删除数据库

  1.1 DOS常用命令

    1.1.1 数据库命令

      mysqld install      // 安装MySQL数据库服务

  net start mysql 或 net stop mysql     // 启动或停止MySQL服务

      mysql -u username -p  // 登录MySQL管理系统  

      use database_name;  // 引用数据库

      show databases;    // 显示所有数据库

      source path(.sql文件路径)  //导入数据库文件,生成数据库,即根据sql脚本生成数据库;例如:source F:\mysql.sql

    1.1.2 数据表操作命令

      show tables;         // 显示某数据库中所有表

      desc table _name;   //显示表的字段信息

      show create table table_name;  //显示表的创建信息

  1.2 查询关系运算符

  • =、 !=、 <>、<、<=、>、>=;
  • between   ·····  and ········;
  • in(set) ; //set是集合
  • is null;is not null
  • and ;
  • or;
  • not;
  • like  '%三';          //%表示任意多个字符,_表示任意单个字符

  1.3 内连接和外连接

    >内连接:

        select  t1.id,t1.name,t1.age,t2.score  from table1_name t1  join table2_name t2 on t1.id=t2.id

        或:

        select  t1.name,t1.age,t2.score  from table1_name t1 , table2_name t2 where t1.id=t2.id

    >外连接:

        select  t1.id,t1.name,t1.age,t2.score  from table1_name t1  left join table2_name t2 on t1.id=t2.id    //左连接

        或:

        select  t1.id,t1.name,t1.age,t2.score  from table1_name t1 right join table2_name t2 on t1.id=t2.id    //右连接

        select  t1.id,t1.name,t1.age,t2.score  from table1_name t1 full join table2_name t2 on t1.id=t2.id    //全连接,MySQL不支持!

  1.4 数据库备份和恢复

    a. 备份  

      mysqldump -u root -p123 database_name>d:\myDB\demo.sql

    b. 恢复

      mysql -u root -p123 database_name<d:\myDB\demo.sql

      或:

      进入需要还原到的目的数据库;

      source d:\myDB\demo.sql

二、基本表的创建

  2.1 创建表

   数据类型:int,char,varchar,text(字符串类型),blob(字节类型);double(5,2)表示最多5位,其中2位小数。

    create table 表名

    (

      字段名1 数据类型 [not null] [默认值],

      字段名2 数据类型,

      字段名3 数据类型

    );

  例如:

    create table student

    (

      stu_num int auto_increment,  //自增量

      stu_name char(10) not null,

      stu_gender char(2),

      stu_score int,

      primary key(stu_num),  //主键

      foreign key(stu_name) references anotherTable_name(stu_name)  //外键

    );

  2.2 常用约束

     主键约束: primary key(字段名);  //或在定义字段时直接在后面追加 primary key

    外键约束: foreign key(字段名) references 表名(字段名);

    非空约束: 字段名 数据类型 not null

    唯一性约束: 字段名 数据类型 unique

    默认约束: 字段名 数据类型 default 默认值

    自增量: 字段名 数据类型 auto_increment  //默认初始值为1,增量为1;如需从100开始,可以设置为auto_increment=100

  2.3 修改表

    alter table 旧表名 rename 新表名  //修改表名

    alter table 表名 modify 字段名 数据类型;  //修改字段数据类型

    alter table 表名 change 旧字段名 新字段名 新数据类型  //修改字段名

    alter table 表名 add 新字段名 数据类型  //添加字段

    alter table 表名 drop 字段名  //删除字段

    alter table 表名 AUTO_INCREMENT=100  //设置自增量初始值为100

   2.4 删除表

    drop table [if exist] 表名;

三、CRUD增删改查操作

3.1 数据插入-Insert

  1. 插入单条记录

    insert into 表名(字段名,字段名,字段名)  //当插入所有字段时,字段名可以省略

    values('值1','值2','值3');

  2. 插入多条记录

    insert into 表名(字段名,字段名,字段名)

    values('值1','值2','值3'),

      ('值1','值2','值3'),

      ('值1','值2','值3');

  3. 插入一个查询结果

    insert into 表名()

    select xxx  //返回值个数应和需插入字段个数相同

    from xxx

3.2 数据删除-Delete

  delete from student(表名)

  where name='zs'; 

3.3 数据修改-Update

  update student(表名)

  set score=90

  where name='zs';

3.4 数据查询-select

  1. 模式

    select number,name,score

    from student

    where age>20

    group by 字段名[字段名,字段名,字段名]  //一个或多个字段名

      having <条件表达式>    //分组后的条件

    order by 字段名 [ASC|DESC],字段名[ASC|DESC];  //默认升序

  2. 常用聚合函数

    count(*)     //计算记录个数

    count(字段名)  //对一列中的值计算个数

    sum(字段名)   //求一列值得总和(数值型数)

    avg(字段名)    //求一列值得平均值(数值型数)

    max(字段名)    //求一列值得最大值

    min(字段名)    //求一列值得最小值

四、视图的创建

    create view view_name(字段名,字段名,字段名)

    as <select查询语句>

  例如:

    create view stu_sub(stu_num,stu_name)  //创建视图

    as select stu_num,stu_name

      from student;

    drop view stu_sub;  //删除视图

五、触发器

    create trigger trigger_name  //创建触发器

    on table(表名)

    for insert|delete|update

    as <sql_statement>(sql语句)

  例如:

    create trigger student_backup  //学生备份表随学生表的改变而改变

    on student        

    for insert,delete,update

    as

    begin

      if((select count(*) from deleted) > 0)

      begin

        delete from student_backup

        where stu_name in(select stu_name from deleted)

      end

      if((select count(*) from inserted) > 0)

      begin

        insert into student_backup

        select *

        from inserted

      end

    end

       

六、事务

  6.1 事务四大特性

    原子性;

    一致性;

    隔离性;

    持久性。

  6.2 事务隔离级别

    赃读:一个事务A读取另一个事务B未提交的数据;

    不可重复读:一个事务A读取另一个事务B提交后的数据(update);

    虚读(幻读):一个事务A读取另一个事务B插入的数据(insert),前后不一致。

    以上情况均为事务A已开启,但未提交时发生!

    四个级别:

    1* read uncommitted :赃读,不可重复读,虚读都有可能发生;

    2* read commited :避免赃读。不可重复读,虚读都有可能发生;

    4* repeatable read :避免赃读,不可重复读。虚读有可能发生;

    8* serializable :避免赃读,不可重复读、虚读;

    级别越高,安全性越高,性能越差!

  6.3 查看和设置事务级别

    查看当前事务隔离级别:select @@tx_isolation;  //dos命令

    设置事务隔离级别:set transaction isolation level 四个级别之一;  //dos命令

    设置隔离级别,必须在开启事务之前!

    

    

【Mysql数据库】学习笔记的更多相关文章

  1. MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  2. MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. Mysql数据库学习笔记之数据库索引(index)

    什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...

  5. MYSQL数据库学习笔记1

      MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 ...

  6. MySQL数据库学习笔记<一>

    MySQL基本概念以及简单操作   一.MySQL   MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系 ...

  7. MySQL数据库学习笔记(四)----MySQL聚合函数、控制流程函数(含navicat软件的介绍)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  8. MySQL数据库学习笔记(三)----基本的SQL语句

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  9. mysql 数据库学习笔记一

    一.navicat的引入: (第三方可视化的客户端,方便MySQL数据库的管理和维护)安装网址:https://www.navicat.com.cn/ NavicatTM是一套快速.可靠并价格相宜的数 ...

  10. MySql数据库学习笔记(1)

    MySql数据库 下载地址 https://dev.mysql.com/downloads/mysql/5.1.html#downloads 连接到本机上的MYSQL mysql -u root -p ...

随机推荐

  1. SELinux的启动和关闭

    1.SELinux简介 SELinux是Security Enhanced Linux的缩写,字面上的意思就是安全强化的Linux,它是由美国国家安全局 (NSA) 开发的,整合到Linux核心的一个 ...

  2. 第四篇(那些JAVA程序BUG中的常见单词)

    xxx cannot be resolved to a variable xxx无法解析为变量 resolve 解析

  3. 手机端实现6位短信验证码input输入框效果(样式及代码方法)

    微信移动端4位.6位.多位验证码密码输入框功能的实现代码,实现思路: 方案1: 写一个简单的input框. 评估:样式不好看,待定. 方案2: 就是用6个input框,每输入一个数字之后,切换到下一个 ...

  4. POJ2482 Stars in Your Window(扫描线+区间最大+区间更新)

    Fleeting time does not blur my memory of you. Can it really be 4 years since I first saw you? I stil ...

  5. Qt事件系统之三:键盘事件

    QKeyEvent类用来描述一个键盘事件.当键盘按键被按下或者被释放时,键盘事件便会被发送给拥有键盘输人焦点的部件. QKeyEvent的key()函数可以获取具体的按键,对于Qt中给定的所有按键,可 ...

  6. 环境变量解释以及在Linux下的环境变量设置

    一.环境变量解释 环境变量是什么? 引用百度百科里面的解释:环境变量是操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息.例如Windows系统中的path环境变量,当要求 ...

  7. how-to-fix-fs-re-evaluating-native-module-sources-is-not-supported-graceful

    http://stackoverflow.com/questions/37346512/how-to-fix-fs-re-evaluating-native-module-sources-is-not ...

  8. win10系统下使用EDGE浏览器找不到Report Builder 启动图标

    Win10系统下如果要使用Report Builder,可能存在EDGE浏览器或者Chrome找不到ReportBuilder的启动图标的情况,此时,应以管理员权限运行IE浏览器,即可看到图标.

  9. glassfish的启动

    一.Glassfish v3 的安装  1. chmod 775/+x glassfish-v3.zip 改权限  2.unzip glassfish-v3.zip  3../asadmin star ...

  10. 转 PHP编程过程中需要了解的this,self,parent的区别

    {一}PHP中this,self,parent的区别之一this篇 面向对象编程(OOP,Object Oriented Programming)现已经成为编程人员的一项基本技能.利用OOP的思想进行 ...