MySQL数据库(3)——数据库的基本操作

1.MySQL数据库是关系型数据库:

主要是用来描述实体与实体之间关系。
E-R关系图:
实体:方框
属性:椭圆
关系:菱形
在这里插入图片描述

2.MySQL的SQL语句

SQL: Structure Query Language结构化查询语言
DDL:数据定义语言:定义数据库,数据表它们的结构: create(创建) drop(删除) alter(修改)
DML:数据操纵语言:主要是用来操作数据insert插入) update(修改) delete(删除)
DCL:数据控制语言:定义访问权限, 取消访问权限,安全设置 grant
DQL:数据查询语言: selec(查询) from子句where子句

3.Mysql启动失败的解决办法

在这里插入图片描述
mysql的这个报错的原因是mysql服务没有正确启动就是mysqld这个程序。

mysql要想运行需要mysql和mysqld两个都启动才行。
在这里插入图片描述
启动成功:
在这里插入图片描述

4.数据库的CRUD操作

1.CMD命令行的操作:
登陆Mysql: mysql -uroot -proot(要首先启动了mysql服务,见3的错误)
2.数据库的创建
语法1:create database 数据库名称;

create database stu;	

在这里插入图片描述
语法2:create database 数据库名称 character set 字符集;

create database stu character set utf-8;

语法3:create database 数据库名称 character set 字符集
collate 校对规则;
create database stu character set utf-8 collate utf-8bin;
3.数据库的查看:

show databases

在这里插入图片描述
information_schema
performance_schema
mysql

这三个数据库包含了安装数据的一些信息,是自带的,不要对这些数据进行操作;
show create database 数据库的名称;
查看数据库创建的语句;
在这里插入图片描述
4.修改数据库的操作
语法:alter database 数据的名称 character set 字符集;

alter database stu character set gbk;

字符编码方式已经修改:
在这里插入图片描述
5.数据库的删除
语法:drop database 数据库的名称;

drop database test;

在这里插入图片描述
6.查看当前使用的数据库
select database();
7.切换数据库
语法:use 数据库的名称;
use student;
在这里插入图片描述

5.表的CRUD操作

1.创建表
创建表的时候列不能为空,至少要有一列;
语法:
create table 表名{
列名1 列的类型(长度) 约束,
列名2 列的类型(长度) 约束
};

列的类型与java进行比较有区别的地方:

java                              sql
char/string                      char/varchar
									char:固定长度
									varchar:可变长度
									char(3): 你   你空格空格
									varchar(3):你   你
									长度代表的是字符的个数
data                                data:YYYY-MM-DD
									time:hh:mm:ss
									datatime:YYYY-MM-DD hh:mm:ss  默认是null
									timestamp:YYYY-MM-DD hh:mm:ss  默认使用当前时间
									text:存放文本 
									blob:存放二进制数
**约束:**
	主键约束:primary key
	唯一约束:unipue
	非空约束:not null

创建学生表 t_stu
1.分析实体:学生
2.学号:sid
3.姓名:sname
4.性别:sex
5.年龄:sage

create table t_stu(
	sid int primary key,
	sname varchar(20),
	sex varchar(10),
	sage int
);

使用常见错误:
在这里插入图片描述
cmd中创建过程使用的是括号,不要使用{}<>这些。
在这里插入图片描述

2.查看表
(1)查看所有的表

show tables;

在这里插入图片描述
(2).查看表的创建过程:
show create table 表名;

show create table t_stu;

在这里插入图片描述

(3).查看表的结构

desc 表名;

desc t_stu;

在这里插入图片描述
3.修改表
添加列(add),修改列(modify),修改列名(change),删除列(drop),修改表名(rename),修改表的字符集
(1)添加列add
alter table 表名 add 新增列名 列的类型 约束;

alter table t_stu add sex varchar;

在这里插入图片描述
(2)修改列modify
修改类型:
alter table 表名 modify 列名 类型();

alter table t_stu modify sex varchar(2) not null;

在这里插入图片描述
(3)修改列名change
alter table 表名 change 要修改的列名 新的列名 列的类型;

alter table t_stu change sex gender varchar(2) ;

在这里插入图片描述
在这里插入图片描述
(4)删除列drop
语法:
alter table 表名 drop 列名;

alter table t_stu drop gender;

在这里插入图片描述
(5)修改表名rename
语法:
rename table 要修改的表名 to 新的表名;

rename table t_stu to tstu1;

在这里插入图片描述
(6)修改表的字符集
alter table 表名 character set 字符集;

alter table  t_stu1 character set utf-8;

在这里插入图片描述
3.删除表
语法:
drop table 表名;

drop table t_stu;

在这里插入图片描述

6.SQL对表中数据的CRUD操作

1.插入数据
语法1:
insert into 表名 (列名1,列名2,列名3) values(值1,值2,值3);

insert into t_stu1(sid,age) values(1,23);

语法2:
insert into 表名 values(值1,值2,值3);

insert into t_stu1 values(1,23);

语法3:
批量插入:
insert into 表名 values(2,24),(3,25),(4,26);
在这里插入图片描述
批量插入:
在这里插入图片描述
2.查看表中的数据
select * from 表名;

select *from t_stu1;

查看t_stu1表中的所有的数据;
3.删除表中的数据
语法 :
delete from 表名 where 条件;
delete from 表名;删除表中的所有数据

delete from t_stu1 where sid=1;

在这里插入图片描述
delete 删除数据和truncate 删除数据有什么差别
delete: DML 一条一条删除表中的数据,
truncate: DDL 先删除表再重建表,
关于哪条执行效率高:具体要看表中的数据量
如果数据比较少,delete比较高效
如果是数据比较多, truncate比较高效
4.更新表中的数据
语法:
update 表名 set 列名=值,列名=值 where 条件;

update t_stu1 set age =66 where sid=2;

在这里插入图片描述
5.查询表中的数据
select [distinct] [*] [列名1,列名2] from 表名 [where 条件]
distinct:去除重复的数据
别名查询:as可以省略
表别名:select s.age,s.sid from t_stu1 as s;(主要用在多表查询中)
列别名:select age as 年龄,sid 编号 from t_stu1;(主要用在多表查询中)

在这里插入图片描述
在这里插入图片描述
distinct:去掉重复的值进行查询:
在这里插入图片描述
select的运算查询:
select ,age1.5 from t_stu1;
在这里插入图片描述
条件查询:
select age from t_stu1 where age>60;
在这里插入图片描述
like:模糊查询
-:代表的是一个字符
%:代表的是多个字符
select * from t_stu1 where age like ‘%6%’;
在这里插入图片描述
in:在某个范围内获取值
查询sid的(2,4)的项
select * from t_stu1 where sid in(2,4);
在这里插入图片描述
排序查询: order by关键字
asc: ascend 升序(默认的排序方式)
desc : descend 降序

select * from t_stu1 order by age asc;
在这里插入图片描述
聚合函数:
sum() :求和
avg() :求平均值
count() :统计数量
max() :最大值
min() :最小值
在这里插入图片描述
where条件后面不能接聚合函数:
在这里插入图片描述
子查询:进行where后面聚合函数的使用
在这里插入图片描述
分组查询:group by
在这里插入图片描述
having关键字可以接聚合函数,出现在分组之后
在这里插入图片描述

7命令行下插入中文乱码问题

●临时解决方案: set names gbk;,我们当前在命令行下输入的内容是GBK编码.当命令窗口关闭之后,它再输入中文就会存在问题
●永久解决办法:修改my.ini配置(在mysql|软件安装路径里)
。暂停mysq|的服务
。在mysq|安装路径中找到my.in配置文件,将编码改成gbk

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值