MySQL数据库(一)

沙海
沙海
沙海
165
文章
2
评论
2017年8月1日16:43:23 评论 91 4628字阅读15分25秒

数据库概述

存放数据的方式

  • 1.存在内存中
  • 2.保存在普通文件中
  • 3.保存在数据库中

什么是数据库

存储数据的仓库,用户可以对数据库中的数据进行增加,修改,删除及查询操作(sql语言)。

数据库的优点

数据库是按照特定的格式将数据存储在文件中,通过SQL语句可以方便的对大量数据进行增、删、改、查操作,数据库是对大量的信息进行管理的高效的解决方案。

数据库管理系统(DBMS)

数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于创建、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系 统访问数据库中表内的数据

数据库管理系统、数据库和表的关系

数据库管理系统可以管理多个数据库,每个数据库中可以有多张数据库表。

常见数据库

  • MYSQL:开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。
  • Oracle:收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。
  • DB2:IBM公司的数据库产品,收费的。常应用在银行系统中.
  • SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。
  • SyBase:已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。
  • SQLite: 嵌入式的小型数据库,应用在手机端。

安装MySql

卸载: 使用软件管理工具,手动删除

细节:不止要删除数据库,还要将保存数据的文件给手动删除了,如果不删除无法正常安装新的数据库

启动和关闭mysql

细节注意:mysql的服务必须是启动状态下才是使用

  • 启动和关闭mysql:
    • 方式1:操作windows服务
    • 方式2:dos命令中操作mysql
      • net start mysql 开启mysql服务
      • net stop mysql 停止mysql服务

登录退出mysql数据库

第一种:

  • mysql -u用户名 -p密码 例如:mysql -uroot -proot

第二种

  • mysql -u用户名 -p
  • 密码

退出

  • exit
  • quit
  • ctrl + c

Sql语句

简介

概述

结构化查询语言(Structured Query Language)简称SQL,SQL语句就是对数据库进行操作的一种语言。

数据库是不认识JAVA语言的,但是我们同样要与数据库交互,这时就需要使用到数据库认识的语言—SQL语言

作用:

通过Sql语言可以对数据库管理系统中的数据库,表,表中的数据进行增删改查(crud)。

Sql分类和语法

分类:(工作题)

1.DDL(Data Definition Language)数据定义语言

用来操作数据库和表

关键字:create,drop,alter等

2.DML(Data Manipulation Language)数据操作语言

用来对数据库中表的数据进行增删改

关键字:insert,delete, update等

3.DQL(Data Query Language)数据查询语言

用来对数据库中表的数据进行查询

关键字:select,from,where等

4.DCL(Data Control Language)数据控制语言(了解)

用来定义数据库的访问权限和安全级别,及创建用户。

关键字:grant, revoke等

5.TCL(Transaction Control Language) 事务控制语言

用于控制数据库的事务操作

关键字: commit,rollback等

sql语法

1 SQL语句可以单行或多行书写,以分号结尾
2 可使用空格和缩进来增强语句的可读性
3 MySQL数据库的SQL语句不区分大小写
4 可以使用-- # 或/**/的方式完成注释

DDL(数据定义语言)

操作数据库

1-创建数据库

创建数据库 (掌握)

create database 数据库名;

默认字符集是安装mysql时选择的字符集 (utf8)

判断是否存在并创建数据库(了解)

create database if not exists 数据库名;

创建数据库并指定字符集(了解)

create database 数据库名 character set 字符集;

2-查询数据库

查询所有数据库

show databases;

查看某个数据库的定义信息

show create database 数据库名称;

3-修改数据库(了解)

修改数据库字符集格式

alter database 数据库名 character set 字符集;

4-删除数据库

drop database 数据库名;

5-数据库的其他操作

查看当前使用的数据库

select database();

切换数据库

use 数据库;

操作表

条件:首先要进入到指定的数据库中

创建表

create table 表名(
            字段名1 字段类型1[长度],
            字段名2 字段类型2[长度]   
            .....
        )
ps:只有字符串类型需要手动加长度,其它类型都不需要加长度(默认有)

-- 需求: 创建一个学生表(id name sex)

数据类型:
java的数据类型      mysql数据库的数据类型
int                     int
float                   float
double                  double

char/string             varchar
date                    date      yyyy-MM-dd
                        time      HH:MM:SS
                        datetime  YYYY-MM-DD HH:MM:SS         

MySQL数据库(一)

查看表

查看某个数据库中的所有表: show tables;

查看表结构: desc 表名称;

查询建表语句: show create table 表名;

快速创建表结构: create table 新表名 like 旧表名;

修改表结构

添加表列 : alter table 表名 add 列名 类型;

删除表列 : alter table 表名 drop 列名;

修改列名 : alter table 表名 change 旧名称 新名称 类型;

修改列类型 : alter table 表名 modify 列名 新类型

修改表名称 : rename table 旧表名 to 新表名;

删除表

直接删除表: drop table 表名;

判断表是否存在并删除表(了解): drop table if exists 表名;

DML(数据操作语言)

插入记录

添加全部字段

方式一:insert into 表名 (字段名1, 字段名2, 字段名3…) values (值1, 值2, 值3);

方式二:insert into 表名 values (值1, 值2, 值3);

添加部分字段

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

注意事项

值与字段必须对应,个数相同,类型相同

值的数据大小必须在字段的长度范围内

除了数值类型外,其它的字段类型的值必须使用引号引起。

如果要插入空值,可以不写字段,或者插入null

DOS命令窗口操作数据乱码问题的解决(了解)

  • 错误说明: 当我们使用DOS命令行进行SQL语句操作如有有中文会出现乱码,导致SQL执行失败
  • 错误原因: 因为MySQL的设置编码是utf8,而系统的DOS命令行编码是gbk,编码不一致导致的乱码
  • 解决方案:设置mysql编码方式
    • 快捷设置(临时) set names gbk;
    • 修改配置文件(永久)1 my.ini文件,在[mysql]设置字符集:GBK2 重启mysql服务

蠕虫复制

在已有的数据基础之上,将原来的数据进行复制,插入到对应的表中

前提:表结构得一致

语法格式: insert into 新表 select * from 旧表;

修改记录

不带条件修改数据 : update 表名 set 字段名 = 值,字段名 = 值 ; 全改

根据条件修改数据 : update 表名 set 字段名 = 值,字段名 = 值 where 字段名=值; 按条件改

删除记录

不带条件删除数据: delete from 表名; 全删

根据条件删除数据: delete from 表名 where 字段名=值; 按条件删

truncate删除表记录: truncate 【table】 表名; 全删

truncate和delete的区别:(工作题)

  • delete是将表中的数据一条一条删除
  • truncate是将整个表摧毁,重新创建一个新的表,新的表结构和原来表结构一模一样
  • delete删除的数据可以还原 truncate的数据无法还原

DQL(数据查询语言)

简单查询:

查询所有列: select * from 表名;

查询指定列: select 字段名1,字段名2… from 表名;

别名查询: select 字段名1 as 别名, 字段名2 as 别名… from 表名 as 表别名;

清除重复值: select distinct 字段名 from 表名;

查询结果参与运算: select 列名1 + 固定值 from 表名;(参数运算的字段必须为数值型)

1 查询所有的商品
2 查询商品名称和商品价格
3 使用别名查询商品:as  as可以省略
4 去重查询 查询去重之后的价格 distinct
5 运算查询 查询价格,将价格的增加100     
#delete和truncate的区别
#1 delete是在表中一条一条删除数据而truncate是删除整个表然后创建一个结构一样的新表
#2 delete删除的数据还能还原而truncate删除的数据找不回来了
# 创建一张商品表,做dql语句的各种查询(pid pname marketprice shopprice)
CREATE TABLE product(
    pid INT,
    pname VARCHAR(20),
    marketprice DOUBLE,
    shopprice DOUBLE
)
INSERT INTO product VALUE(1,"小米",500,300,"为发骚而生");
INSERT INTO product VALUE(1,"华为",500,300,"为国产而生");
INSERT INTO product VALUE(1,"苹果",500,300,"为装X而生");
# 查询商品表的所有信息 *:所有字段
SELECT * FROM product;
# 查询商品表的商品名称和描述
SELECT pname,pdesc FROM product;
# 别名查询 as 可以省略
SELECT pname AS "商品名称",pdesc "商品描述" FROM product; -- 列别名
SELECT pname,pdesc FROM product p; -- 表别名(多表查询)
# 去重查询 distinct 
#查询商品商城价格的区间
SELECT  DISTINCT marketprice,shopprice FROM product;
#查询市场价格,将查询出来的结果加500元
#条件:该字段必须是数值类型
SELECT marketprice+500 AS "价格" FROM product;
#条件:算出市场价和商城价格的总和
SELECT marketprice+shopprice AS "总价格" FROM product;
# 数值和null做计算 结果都是null 
# 如果为null转成0  ifnull(字段,给的值)
SELECT marketprice+IFNULL(shopprice,0) AS "总价格" FROM product;

总结

1 数据库的概念 
       用来存储数据的仓库,仓库需要DBMS系统创建,在硬盘上,所有数据也在硬盘上
       要想操作仓库中的数据,必须得使用sql语句
2 DBMS系统的安装
        mysql    见参考大纲  细节:卸载
        oracle
        db2
        sqlserver
3 sql语句操作数据库
         1 使用sql语句告诉sbms系统做数据库的crud      ddl分类
         2 使用sql语句告诉sbms系统做数据库表的crud    ddl分类
         3 使用sql语句告诉sbms系统做数据库表上数据的增删改 dml分类
         4 使用sql语句告诉sbms系统做数据库表上数据的简单查询  dql分类
继续阅读
weinxin
资源分享QQ群
本站是一个IT技术分享社区, 会经常分享资源和教程; 分享的时代, 请别再沉默!
沙海
  • 版权声明:本站是一个IT技术分享社区,沙海技术团队的技术分享社区,我们会经常分享资源和教程。
  • 转载请注明:MySQL数据库(一) - Java秀 ☜(ˆ▽ˆ)
0012-基于Java的班级信息管理系统的设计与实现源码
C语言项目源码打包分享
(新版)华师版七年级数学下册课件
0006-基于Java的网上书店的设计与实现
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: