MySql01

课程介绍

数据库简介

之前通过流操作文件的方式存储数据弊端: 1. 效率低 2. 不管是存还是取都比较麻烦 3. 一般只能存储小量数据 4. 只能存储文本数据

什么是DB

DataBase:数据库 数据库是一个文件集

什么是DBMS

DataBaseManagementSystem:数据库管理系统 是管理数据库文件的软件

数据库分类

  1. 关系型数据库 经过数学理论验证可以存储现实生活中各种关系的数据库,如果存储的数据之间有关系会在数据库中以表的形式把相关数据封装起来
  2. 非关系型数据库 有多种存储数据的方式如Redis(非关系型数据库的一种) redis是通过Key-Value

主流关系型数据库介绍

-MySql

系统:windows Linux
背景故事:08年被Sun 09年被Oracle收购 Oracle 开源 卖服务
发展:MySql5.5 使用了Oracle数据库的核心技术 性能提高30%,但因为影响了Oracle导致mysql面临闭源,MySql面临闭源后 一些大牛程序员从Orecle出来 创建了MariaDB数据库

-Oracle

windows Linux Oracle公司 拉里艾莉森32 执行效率最高 性能最好 最贵 闭源

-DB2

IBM 大型数据库 Linux和unix操作系统 闭源 收费软件

-SQL Server

微软公司 windows系统 市场排名第三  主要被.net(C#)开发的网站所使用

-Sqlite

轻量级数据库 ios android 或一些嵌入式设备上,很小只有几十k

开源和闭源

-开源:免费 公开源代码 大牛程序员会无偿的去维护和升级

-闭源:收费 不公开源代码 大牛程序员会攻击

安装MySql数据库

windows安装具体步骤参见安装文档 注意端口号为3306 编码utf8

SQL

什么是SQL

Structured Query Language:结构化查询语言

Sql是执行在客户端(windows在命令行下执行,linux在终端执行)下或者通过java代码执行在JDBC

打开客户端并登陆mysql

linux下在任何位置直接打开终端即可
windows下使用各种客户端打开

登陆mysql命令 直接在终端下执行以下代码 然后输入密码

mysql -uroot -p 

退出:

exit;

SQL语句规范

  1. 以;(分号)结尾
  2. 关键字之间有空格 通常一个空格 但是有多个也没问题
  3. sql语句中可以添加换行
  4. SQL 不区分大小写

数据库相关SQL

  1. 查看所有数据库命令:

    show databases;
  2. 创建数据库 通常一个项目只对应1个数据库 格式:create database 数据库名称;

    create database db1;

    指定字符集的创建格式 :create database 数据库名称 CHARACTER SET utf8;

    create database db2 character set gbk;
  3. 查看数据库详情 -格式:show create database 数据库名称;

    show create database db1;
  4. 删除数据库 -格式:drop database 数据库名称;

    drop database db2;
  5. 选中数据库

    use db2;

表相关SQL

什么是表

-表是数据库中的数据组成单位 类似于Java中的对象 表中的字段 对应对象中的属性

创建表

格式: create table 表名 (字段1名 字段类型,字段2名 字段类型);
),age int);

创建表的原理:

-在客户端中写完创建表的sql语句后客户端会把sql语句交给DBMS(MySql)DBMS解析后 会在数据库中创建语句中的表 和表中的字段 

查看所有表

show tables;

查看表结构

-格式:show create table 表名;
show create table person;

-格式: desc 表名
desc person
 

表的引擎

  1. InnoDB:支持数据库的高级处理包括 事物 外键等 默认是innodb

  2. Myisam:只支持数据的基本存储

创建表时指定表的字符集 和 引擎

-格式
)) engine=myisam charset=utf8;

练习:创建5个数据库 在每个数据库里面创建1个表 然后删除数据库

练习 创建学生表

create table student (
    id int,
    name ),
    chinese int,
    math int,
    english int
);

对已经创建好的表进行修改

  1. 修改表名称 -格式: rename table 原名 to 新名;

    rename table student to t_student;
  2. 修改表的属性 -格式: alter table 表名 engine=myisam charset=gbk;

    alter table t_student engine=myisam charset=gbk;
  3. 添加表的字段 -在最后添加 -格式:alter table 表名 add age int;

    alter table student add age int;

    -在最前面添加 -格式:alter table 表名 add fatherAge int first;

    alter table student add fatherAge int first;

    -在某个字段之后添加 -格式:alter table 表名 add fatherName varchar(10) after fatherAge;

    ) after fatherAge;
  4. 删除表字段 -格式: alter table 表名 drop 字段名;

    alter table student drop fatherAge;
  5. 修改字段名和类型 -格式: alter table 表名 change 原字段名 新字段名 新字段类型;

    );
  6. 修改类型和顺序 -格式1: alter table 表名 modify 字段名称 新字段类型 after 字段名 -格式2: alter table 表名 modify 字段名称 新字段类型 first

    alter table student modify fatherAge int first;
    alter table student modify fatherAge int after id; 

删除表

-格式: drop table 表名
drop table student;

练习:

1.创建一个hero表 有 id name type 三个字段

),type ));

2.修改hero表的属性 引擎为myisam 编码属性为utf8

  alter table hero engine=myisam charset=utf8;

3.给hero表添加一个money int 字段 添加在name字段的后面

alter table hero add money int after name;

4.修改type字段 名称修改为 hero_type varchar(30)

);

5.修改hero表名为heros

 rename table hero to heros;

6.修改name字段到最后面

 ) after hero_type;

7.把money字段删除

 alter table heros drop money;

8.删除hero表

drop table heros;

数据相关SQL

create table student(
        id int,
        name ),
        chinese int,
        math int,
        english int
    );
  1. 插入语句 -全表插入格式:insert into 表名 values(值1,值2,值3....); 全表插入values后面的值的数量和顺序必须和表中字段的数量和顺序一致

    ,,,);

    -指定字段插入格式:insert into 表名 (字段名1,字段名2)values(值1,值2);

    );

    -批量插入

    -全表批量 insert into student values(10,'刘备',10,20,30),(11,'关羽',12,34,22),(12,'张飞',3,4,2); -指定字段批量

    ,),(,),(,);
  2. 查询语句 -格式: select 字段1, 字段2,字段3... from 表名 -如果字段位置写* 代表查询所有的字段

    select * from student;
    select id,name,math from student;
  3. 更新(修改)语句 -修改全表格式:update 表名 set math=100;

    ; 

    -添加条件修改格式: update 表名 set math=50 where id=10;

     ;
  4. 删除语句 -删除指定条件的数据格式:delete from 表名 where id=10;

    ;
    delete from student where chinese is null;

    -删除表中所有数据

    delete from student;

练习操作数据语句:

1.创建hero表 id 名字 类型 money create table hero (id int, name varchar(10), type varchar(10),money int); 2.插入以下5条数据 insert into hero values( 1,'诸葛亮','法师',18888), (2,'孙悟空','打野',18888), (3,'小乔','法师',13888), (4,'黄忠','射手',8888), (5,'刘备','战士',6888); 3.修改所有18888的价格为28888 update hero set money=28888 where money=18888; 4.修改所有法师为 战士 update hero set type='战士' where type='法师'; 5.删除价格为6888 delete from hero where money=6888; 6.修改孙悟空为猪八戒 update hero set name='八戒' where name='孙悟空'; 7.删除所有数据 delete from hero;

练习1:

  1. 创建员工表emp
  2. 创建部门表dept;

练习2:

  1. 给dept表插入4条数据

    10,'ACCOUNTING','NEW YORK' --财务部 纽约 20,'RESEARCH','DALLAS' --研究部 达拉斯市 30,'SALES','CHICAGO' --销售部 芝加哥 40,'OPERATIONS','BOSTON' --运营部 波士顿

练习3:

  1. 创建 mydb 数据库,使用 utf8 编码
  2. 创建 t_item 商品表
  3. 在 t_item 表插入商品数据
  4. 修改 id 是7的商品,修改库存量为20
  5. 删除商品 7

eclipse SQL客户端

1.先准备mysql-connector-java-5.1.6.jar 2.打开eclipse 打开window-》showView->Other找到DataSource Explorer 和 SQLResults 显示出来 3.在DataSourceExplorer里面的DatabaseConnections 上右键 点击 New 4.在弹出窗口中找到MySql 5.点击下拉选项旁边的加号 6.在弹出页面中选中5.1 然后点击第二个选项卡(JarList) 点击clear All 7.点击AddJar 找到第一步下载的jar包 8.点击ok

9.在新页面中把URL:jdbc:mysql://localhost:3306/db1 最后的值修改为自己已存在数据库的名称 10.finish 11.在New MySQL(MySQL v.5.50)上右键点击 OpenSQLScrapbook 12.在type中选择 mysql5.1 在name 选择唯一的值 在database中选择 唯一的值

在此工具中不能操作数据库

乱码问题

1.数据库编码保证是utf8 2.表保证是utf8 3.windows的命令行默认编码为gbk 需要在命令行中先进入mysql执行 set names gbk;

4.修改mysql默认数据库的编码格式 windows: 在开始菜单中找到所有程序找到mariaDB里面的my.ini 在里面添加 character-set-server=utf8 即可

MySql学习笔记01的更多相关文章

  1. MySql学习笔记(一)之DQL常用查询

    MySql学习笔记(一)之DQL常用查询 前言:mysql是中小型的数据库软件,SQL语言分为DDL,DCL,DML,DQL四种,在这里重点讲解DQL的单表查询. 正文:在学习mysql单表查询之前, ...

  2. 软件测试之loadrunner学习笔记-01事务

    loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...

  3. Mysql学习笔记(三)对表数据的增删改查。

    正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...

  4. MySQL学习笔记一

    MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...

  5. Mysql学习笔记(二)数据类型 补充

    原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...

  6. Mysql学习笔记(一)数据类型

    原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型     Mysql数据类型             含义(有符号)     tinyint(m ...

  7. 初识mysql学习笔记

    使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...

  8. MySQL学习笔记-锁相关话题

    在事务相关话题中,已经提到事务隔离性依靠锁机制实现的.在本篇中围绕着InnoDB与MyISAM锁机制的不同展开,进而描述锁的实现方式,多种锁的概念,以及死锁产生的原因.   Mysql常用存储引擎的锁 ...

  9. MySQL学习笔记-事务相关话题

    事务机制 事务(Transaction)是数据库区别于文件系统的重要特性之一.事务会把数据库从一种一致状态转换为另一个种一致状态.在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都 ...

随机推荐

  1. 牛客假日团队赛1 J.分组

    链接: https://ac.nowcoder.com/acm/contest/918/J 题意: 在Farmer John最喜欢的节日里,他想要给他的朋友们赠送一些礼物.由于他并不擅长包装礼物,他想 ...

  2. BZOJ4552(二分+线段树)

    要点 序列是n个不同的数,则新学到的一种策略就是二分这个位置的答案,然后可以上下调. 神奇地只关注大于还是小于mid并赋值0.1,这样m个操作的排序就能用线段树维护了! #include <cs ...

  3. sql 时间函数用法

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  4. SpringBoot | 第十一章:Redis的集成和简单使用

    前言 上几节讲了利用Mybatis-Plus这个第三方的ORM框架进行数据库访问,在实际工作中,在存储一些非结构化或者缓存一些临时数据及热点数据时,一般上都会用上mongodb和redis进行这方面的 ...

  5. Crash日志分析

    从Crash文件出发解决bug的一般步骤,分三步: a, 获取设备上的崩溃日志. b, 分析崩溃日志,找到报错位置(定位到函数和代码行数). c, 打开代码,改bug. 1, 获取设备日志 1. 在可 ...

  6. GitHub上易于高效开发的Android开源项目TOP20--适合新手

    1. android-async-http android-async-http是Android上的一个异步.基于回调的HTTP客户端开发包,建立在Apache的HttpClient库上. 2. an ...

  7. hibernate课程 初探单表映射1-4 hibernate开发前准备

    开发前准备: 1 eclipse 2 hibernate tools的安装(需要相关的jar包)(可以简化orm框架) hibernate tools的安装步骤: 1 到官网下载 https://so ...

  8. 使用create react app教程

    This project was bootstrapped with Create React App. Below you will find some information on how to ...

  9. new Date(str)返回的时间结果在移动端比PC端快了8小时

    最近开发过程中,后端传过来一个“2018-03-15T17:53:19.6307928”字符串,需要将字符串转换成“2018-03-15  17:53”的格式展示出来.首先我使用了var time=n ...

  10. 零基础逆向工程28_Win32_02_事件_消息_消息处理函数

    1 第一个图形界面程序 步骤1:创建Windows应用程序 选择空项目 步骤2:在新建项窗口中选C++代码文件 创建一个新的cpp文件 步骤3:在新的cpp文件中添加:#include <Win ...