mySql简单应用

-->用navicate软件操作数据库无需在电脑中配置安装数据库

备注:关于数据库术语

- 安装的mysql数据库软件,称为  数据库管理系统 (DBMS)

- 安装的navicate数据库界面软件,称为 操作软件

- 存储和管理具体数据的数据库对象,称为 数据库(DB),如下图中的mysql/sys/...

- mysql数据库默认超级管理员账号只有一个:root

- phpstudy中mysql数据库的root账号的默认密码:root

一、数据库管理

1、创建数据库

 打开的数据库连接上,点击鼠标右键,选择新建数据库

 填写创建数据库的名称和字符信息,完成创建

备注:字符的选择

- utf8:表示标准的utf-8编码

- utf8mb4:mysql数据库最新支持的兼容性最好的utf-8编码

utf-8 most 4 bytes:以1~4个字节的形式存储字符

 

 2、删除数据库

在指定的数据库名称上,点击鼠标右键,选择删除数据库即可

3、用命令操作数据库

打开输入命令的查询窗口

执行命令,创建指定字符编码的数据库

 -- 注释,创建一个名称为ushop,编码为utf8的数据库

create database ushop default charset "utf8";

执行命令,删除指定名称的数据库

 -- 删除uclass数据库

drop database ucalss;

二、数据表操作 

1、创建数据表

打开数据库,选择数据库中的图标,右键点击~选择新建表

 编辑表中的列名称、列存储数据的类型,存储数据的格式,最后点击保存~创建表

 2、删除表

数据表上鼠标右键点击,选择删除表就可以完成表的删除

3、编辑表

 如果创建的数据表,包含的列名称、列的数量都不符合要求时,可以选择直接编辑已经创建好的数据表,选择某张数据表之后,可以点击设计表

4、查看表中数据

 双击要查看的表格名称,就可以在navicate界面中查看数据表中的数据

 备注;关于创建数据表时,列的数据类型:和数据的具体类型相关,常见的类型如下:

- 字符串类型:varchar 变长字符串,常用

  char     定长字符串

              text     长字符串

- 整数类型: int

- 浮点数类型:double

- 日期类型: date、time、datetime、timestemp

- 布尔类型:bool,底层就是整数0/1

三、命令行操作数据表 

1、创建表

-- 创建数据表

create table goodstype(

id int primary key auto_increment comment '类型编号',

name varchar(20) not null comment '类型名称',

intro text comment '类型描述'

)

2、删除表

 -- 删除名称为goodstype的数据表

drop table goodstype;

3,编辑表

 -- 编辑表

-- 添加列

alter table goodstype

add column cover varchar(200) comment '类型封面';

-- 修改列

alter table goodstype

change column cover gscover varchar(150);

-- 删除列

alter table goodstype

drop column gscover;

四、数据CRUD 

1、命令操作---表修改ctrl+s可保存

-- 注册一个用户

--添加一条数据,给指定的列添加值,其他列就会出现空白数据

insert into user(username, password)

value("jerry", "123");

-- 给所有列添加数据,没有添加id列;id自动增长,自动计算并添加数据

insert into user(username, password, phone, email, address)

value("shuke", "123", "16866668888", "shuke@offcn.com", "南京");

-- 没有指定任何列名称,values后面必须给每一列指定要添加的数据

insert into user

value(4, "beita", "123", "15678900987", "beita@offcn.com", "武汉");

-- 批量添加数据

insert into user(username, password)

value("xiaowang", "123"), ("xiaoli", "321"), ("oldzhao", "456");

2、修改数据

可以对已经存在的数据进行编辑,双击要修改数据的数据表,查看数据表中数据的同时可以编辑数据,最后Ctrl+S保存 ,命令操作:

-- 修改数据表中的数据

UPDATE 数据表名称

SET 列=值, 列2=值2,....

     WHERE 条件;    -- 修改数据库中满足条件的数据

-- 修改用户密码

update user set password = "!@#$%123"

where username = "xiaoli";

-- 完善用户资料

update user set phone="15634342233",

email="xiaoli@offcn.com",

address="成都"

where username="xiaoli";

3、删除数据

 SQL语句中提供了:DELETE用于删除数据表中的数据

注意:DELETE语句删除数据时,一定要确认、再次确认、再次确认删除条件

-- 删除数据

-- 注销用户

delete from user where username = "xiaoli";

5、查询数据

-->数据准备

 

-- 创建数据库

create database uclass default charset "UTF8";

-- 指定数据库

use uclass;

-- 创建数据表

create table user(

id int primary key auto_increment comment '用户编号',

username varchar(50) not null comment '账号',

password varchar(50) not null comment '密码',

nickname varchar(100) comment '昵称',

age int default 18 comment '年龄',

gender char(5) default '男' comment '性别'

);

create table courseType(

id int primary key auto_increment comment '课程编号',

name varchar(50) not null comment '类型名称',

intro text comment '课程类型描述'

);

create table course(

id int primary key auto_increment comment '课程编号',

name varchar(50) comment '课程名称',

price double comment '课程售价',

sales int comment '销售量',

ctypes int comment '所属类型'

);

-- 测试数据

insert into user(username, password, nickname)

values('tom', '123', '汤姆'),

('jerry', '123', '杰瑞'),

('shuke', '123', '舒克'),

('beita', '123', '贝塔'),

('peiqi', '123', '佩奇'),

('qiaozhi', '123', '乔治');

insert into courseType(name)

values('前端'),('JAVA WEB'),('人工智能');

insert into course(name, price, sales, ctypes)

values('HTML/css', 1000, 20000, 1),

('JavaScript', 1400, 20000, 1),

('NodeJS', 2000, 10000, 1),

('Express', 2200, 20000, 1),

('VueJS', 4000, 20000, 1),

('React', 3000, 20000, 1),

('小程序', 800, 20000, 1),

('Java SE', 1000, 20000, 2),

('Java EE', 1000, 20000, 2),

('JSP/Servlet', 1200, 20000, 2),

('Mybatis', 3000, 20000, 2),

('Spring', 4000, 20000, 2),

('SpringMVC', 3000, 20000, 2),

('Hibernate', 1200, 20000, 2),

('Struts2.x', 500, 20000, 2),

('SpringBoot', 4500, 20000, 2),

('SpringCloud', 8000, 20000, 2),

('Nacos', 6000, 20000, 2),

('Zookeeper', 600, 20000, 2),

('Dubbo', 1600, 20000, 2),

('Python', 1000, 20000, 3),

('Django', 1200, 20000, 3),

('Flask', 1000, 20000, 3),

('数据分析', 1500, 20000, 3),

('数据爬虫', 1500, 20000, 3),

('深度学习', 6000, 20000, 3),

('机器学习', 6000, 20000, 3);

-->实际操作

 -- 全表查询:查询一张表中的所有数据

select * from user;

-- 用户注册:判断某个账号是否已经被使用

select * from user where username = 'tom';

-- 用户登录:判断账号密码是否正确

select * from user where username = "tom" and password = "123";

-- 查询前端的所有课程

select * from courseType where name = "前端";

select * from course where ctypes = 1;

-- 改造,关联查询

select * from courseType ct, course c

where ct.id = c.ctypes and ct.name = "前端";

-- 改造,连接查询

-- 左连接

select * from courseType ct left join course c

on ct.id = c.ctypes where ct.name = "前端";

-- 右连接

select * from courseType ct right join course c

on ct.id = c.ctypes where ct.name = "前端";

-- 查询课程售价小于1000 的所有课程

select * from course where price < 1000;

-- 查询课程售价大于1500 小于4000的课程

select * from course where price > 1500 and price < 4000;

-- 查询课程售价在2000~4000之间的java课程

select * from courseType where name = "JAVA WEB"

select * from course where ctypes = 2 and price > 2000 and price < 4000;

-- 改造:关联查询

select * from courseType, course

where courseType.id = course.ctypes

and courseType.name = "JAVA WEB"

and course.price > 2000

and course.price < 4000;

-- 不知道具体课程名称,查询智能相关的课程

-- 模糊查询:%匹配0~n个任意字符,_匹配单个字符

select * from courseType where name like '%智能%';

-- 查询部分课程信息

select * from course where name = "NodeJS" or name = "Express";

-- 改造:in查询

select * from course where name in ('NodeJS', 'Express');

-- 查询课程销售量在10000~20000的课程

select * from course where sales >= 10000 and sales <= 20000;

-- 改造:between..and

select * from course where sales between 10000 and 20000;

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值