Java-MySql(1)

MySql基础-课堂笔记

一、数据库的介绍

  1. 什么是数据库
  • 数据库:存储数据的仓库,本质是一个文件系统。可以结构化的存储数据,方便的进行数据的增、删、改、查。
  1. 常见的数据库
  • Oracle:Oracle公司的收费的、高性能的、大型数据库软件
  • MySql:Oracle公司的免费的、小型数据库软件。被Oracle收购之后,6.x版本开始收费
  • SQLServer:Microsoft公司的收费的、中型数据库软件。.net
  • DB2:IBM公司的收费的、稳定的、大型数据库软件。银行、金融等行业
  • Sybase:已经很少使用了,但是它提供了一个专业的数据库建模工具:PowerDesigner

二、MySql的安装和使用

  1. MySql卸载
  1. 停止MySql服务
    • windows+r,输入services.msc回车,打开 服务管理窗口
    • 找到MySQL,右键停止
  2. 卸载MySql软件
    • 打开控制面板,找到程序和功能 窗口
    • 找到MySql软件,双击卸载掉
  3. 清理MySql残留
    • 删除安装目录:安装在哪,就把哪个文件夹删除掉
    • 删除数据目录:默认在C:\programData\删除MySql文件夹
  1. MySql安装
  • 参考课件里的安装过程
  1. MySql使用

3.1 MySql服务管理

使用管理员模式运行cmd,在cmd里输入命令:

  • 启动MySql服务:net start mysql
  • 关闭MySql服务:net stop mysql

3.2 登录MySql

3.2.1 在dos窗口里通过命令登录

  • 登录:mysql -u用户名 -p密码
    注意:-u后边没有空格, -p后边没有空格
  • 退出:exit 或者 quit

3.2.2 使用客户端软件SQLyog登录

  • 安装过程,略

三、SQL语句操作MySql

  1. 什么是SQL
  • SQL:结构化查询语言,用来操作数据库的
  • SQL分类:
    • DDL:数据定义语言。用来定义数据库结构,比如:库、表等等
    • DML:数据操作语言。用来增、删、改数据的
    • DQL:数据查询语言。用来查询数据的
    • DCL:数据控制语言。DBA使用的,进行权限管理
    • TCL:事务管制语言。进行事务管理的
  1. SQL操作MySql

2.1 DDL

2.1.1 操作库database

重点:

  1. 创建库:create database 库名称
    1. 删除库:drop database 库名称
  • 创建库

– 1. 创建一个库,名称为:heima。字符集默认
CREATE DATABASE heima

– 2. 如果库heima不存在,就创建。
CREATE DATABASE IF NOT EXISTS heima

– 3. 创建一个库,名称为heima63,字符集gbk
CREATE DATABASE heima63 CHARACTER SET gbk

– 4. 如果库heima63不存在,就创建,并且指定字符集为gbk
CREATE DATABASE IF NOT EXISTS heima63 CHARACTER SET gbk

  • 查看库

– 5. 查询有哪些库
SHOW DATABASES;

– 6. 查看heima库的创建信息
SHOW CREATE DATABASE heima;

  • 修改库
  • ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;

– 7. 把heima63库的字符集修改为utf8(不建议使用)
ALTER DATABASE heima63 DEFAULT CHARACTER SET utf8;
– 或者:
ALTER DATABASE heima63 CHARACTER SET utf8;

  • 删除库

– 8. 删除库heima63
DROP DATABASE heima63;

  • 使用库

– 9. 使用/切换库heima
USE heima;

– 10. 查询现在使用的是哪个库
SELECT DATABASE();

2.1.2 操作表table

  1. MySql的数据类型

数据类型 说明 对应Java类型
int 整数类型,占4字节 int, Integer

double(m,n) 浮点型。<br />m:数字总长度最大值<br />n:小数位的长度<br />比如:double(5,2) double, Double

varchar(n)

可变长度字符串<br />n:字符串最大长度<br />比如:varchar(3),最多存3个字符。                	字符多大,就占多大空间 	String 

char(n)

固定长度字符串<br />n:字符串最大长度<br />比如:char(3), 最多存3个字符。无论字符多大,都占3个字符的空间	String   

date 日期类型。格式:yyyy-MM-dd Date
datetime 日期时间类型。格式:yyyy-MM-dd HH:mm:ss Date

  1. 操作表table
  • 创建表

         -- 1. 在heima库里,创建一张表:student。要求有字段:学号、姓名、年龄、性别、生日、地址
    CREATE TABLE student (
    	id INT,
    	NAME VARCHAR(10),
    	age INT,
    	sex CHAR(1),
    	birthday DATE,
    	address VARCHAR(100)
    )
    
  • 查看表

1.查看某个数据库中的所有表 SHOW TABLES;
1. 查看表结构 DESC 表名;
2. 查看创建表的SQL语句 SHOW CREATE TABLE 表名;
– 2. 查询当前库里有哪些表
SHOW TABLES;

– 3. 查看表student的创建信息
SHOW CREATE TABLE student;

– 4. 查看表student的结构
DESC student;

  • 删除表
  1. 直接删除表 DROP TABLE 表名;
    2. 判断表是否存在并删除表 DROP TABLE IF EXISTS 表名;
    – 5. 删除表user
    DROP TABLE USER;
  • 修改表
    1. 添加表列 ALTER TABLE 表名 ADD 列名 类型;
    2. 修改列类型 ALTER TABLE 表名 MODIFY列名 新的类型;
    3. 修改列名 ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
    4. . 删除列 ALTER TABLE 表名 DROP 列名;
    5. 修改表名 RENAME TABLE 表名 TO 新表名;
    6. 修改字符集 ALTER TABLE 表名 character set 字符集;

– 6. 给student表添加列:英语成绩 english int, 工资 salary double
ALTER TABLE student ADD english INT;
ALTER TABLE student ADD salary DOUBLE(9,2);

– 7. 修改student表:把salary的类型改为int 类型
ALTER TABLE student MODIFY salary INT;

– 8. 修改student表:把english重命名为math 列名
ALTER TABLE student CHANGE english math INT;

– 9. 修改student表:删除address列 删除列
ALTER TABLE student DROP address;

– 10. 把student表重命名为:students 修改表名
RENAME TABLE student TO students;

– 11. 修改student表的字符集:gbk(不建议使用)
ALTER TABLE students CHARACTER SET gbk;

2.2 DML

添加数据

INSERT INTO 表名 (字段名1, 字段名2, …) VALUES (值1, 值2, …);

– 1. 向students表里添加数据:给表所有字段都设置值
INSERT INTO students VALUES (1, ‘大郎’, 40, ‘男’, ‘1039-12-21’, 0, 200);
INSERT INTO students VALUES (2, ‘二郎’, 30, ‘男’, ‘1049-12-21’, NULL, 200);

– 2. 向students表里添加数据:
INSERT INTO students (id,NAME,age,sex,birthday,math,salary) VALUES (3,‘金莲’,28, ‘女’, ‘1048-02-03’, 20, 20);
INSERT INTO students (id,NAME,age) VALUES (4, ‘公明’, 45);

修改数据

  1. 不带条件修改数据 UPDATE 表名 SET 字段名=值;
  2. 带条件修改数据 UPDATE 表名 SET 字段名=值 WHERE 字段名=值;

– 3. 修改students表里id为4的数据:修改salary为20000 UPDATE students SET salary
= 20000 WHERE id = 4
– 4. 修改students表里id为4的数据:修改性别为男,修改math为100 UPDATE students SET sex = ‘男’, math = 100 WHERE id = 4

删除数据

  1. 不带条件删除数据 DELETE FROM 表名;
  2. 带条件删除数据 DELETE FROM 表名 WHERE 字段名=值;
  3. truncate删除表记录 TRUNCATE TABLE 表名;

– 5. 删除students表里id为3的数据
DELETE FROM students WHERE id = 3;

– 6. 删除students表里所有数据
DELETE FROM students; – 一条一条删
TRUNCATE TABLE students; – 摧毁重建表

2.3 DQL

注意:查询操作不会影响库里保存的数据

2.3.1 简单查询

使用*表示所有列 SELECT * FROM 表名;

– 0. 准备表和数据:增加一个字段english int。设置条记录里的英语成绩
ALTER TABLE students ADD english INT;

– 1. 查询students表里所有数据
SELECT * FROM students;

– 2. 查询students里所有的姓名和年龄
SELECT NAME, age FROM students;

– 3. 查询并处理null值:查询students里,每个学生的姓名 和 成绩(英语和数学成绩,如果成绩为null,认为是0) ifnull(字段名,默认值)
SELECT NAME, IFNULL(english, 0), IFNULL(math, 0) FROM students;

– 4. 查询students里每个学生的总成绩(如果成绩为null,认为是0)
SELECT NAME, IFNULL(english, 0) + IFNULL(math, 0) FROM students;

– 5. 查询并起别名
SELECT NAME AS ‘姓名’, IFNULL(english, 0) + IFNULL(math, 0) AS ‘总成绩’ FROM students;
SELECT NAME ‘姓名’, IFNULL(english, 0) + IFNULL(math, 0) ‘总成绩’ FROM students;

– 6. 查询students表里所有的性别
SELECT DISTINCT sex FROM students;

四、dos窗口里中文乱码的处理

  1. 临时方案
  • 在执行SQL语句之前,先执行一条命令:set names gbk;
  • 再执行SQL语句,中文就不乱码了
  1. 永久方案
  • 找到MySql安装目录里的my.ini,打开并修改
  • 找到[mysql]下边的default-character-set=utf8,改成:default-character-set=gbk
  • 然后,重启MySql服务

内容回顾

  1. 了解SQL语句的分类:
    • DDL:数据定义语言。定义database、table等等
    • DML:数据操作语言。增、删、改数据的
    • DQL:数据查询语言。查询数据的
    • DCL:数据控制语言。DBA使用的,管理MySql的权限,创建用户、授权管理
    • TCL:事务管制语言。管理事务的
  2. DDL操作database
    1. 创建database: create database 库名称
    2. 删除database:drop database 库名称
  3. DDL操作table
    1. MySql的数据类型:
      1. int:整型,对应Java的int, Integer
      2. double(m,n):小数,对应Java的double,Double
      3. varchar(n):可变长度字符串,对应Java的String
      4. char(n):固定长度字符串,对应Java的String
      5. date:日期类型,对应Java的Date
      6. datetime:日期时间类型,对应Java的Date
    2. 创建表: create table 表名称(字段1 类型, 字段2 类型, …)
    3. 修改表
    4. 查看表
    5. 删除表
  4. DML操作数据:增删改
    1. 插入数据:insert into 表名(字段1, 字段2,…) values (值1, 值2,…)
    2. 修改数据:update 表名 set 字段1=值1, 字段2=值2,… where 条件
    3. 删除数据:delete from 表名 where 条件
  5. DQL查询数据:
    1. 查询所有:select * from 表名
    2. 查询指定列:select 字段1,字段2,… from 表名
    3. 查询处理null值:select ifnull(字段,默认值) from 表名
    4. 查询并计算:select 字段1+字段2,… from 表名
    5. 查询并起别名:select 字段1 as 别名1, 字段2 别名2,… from 表名

练习:

  1. 创建一张商品表product。里边有字段:
    • 商品编号
    • 商品名称
    • 商品价格
    • 库存数量
    • 商品分类
    • 上架日期
  2. 向product表里添加数据:添加5条以上
  3. 查询:
    1. 查询所有商品所有数据
    2. 查询商品名称和价格
    3. 查询商品的所有分类(去重)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值