MYSQL数据库底子-01.数据库的根本操作

打印 上一主题 下一主题

主题 985|帖子 985|积分 2955

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
数据库的语法是大小写不敏感的,可以使用大写,也可以使用小写。
每条语句要以;结尾,可以多行输入。
名称不能是关键字,若想用关键字命名,要用反引号 `` 引起来。



目录

一.数据库的根本操作
1.创建数据库:
2.查看数据库:
3.选中数据库:
4.删除数据库:
二、对表的根本操作
1.常见的数据类型
数值类型:
字符串类型:
日期类型:
1.创建表:
2.查看所有表
3.查看表布局
三、对表内容的增删查改
1.新增
2.查找
全列查询:
指定列查询:
表达式查询:
带别名的查询:
去重
排序
条件查询
分页查询 limit
3.修改
4.删除


一.数据库的根本操作



1.创建数据库:

create datadase 数据库名;

注意:1.单词之间用 空格隔开,每条语句以分号结尾。 
           2.不能创建已经存在的数据库(同名数据库)。
当数据库量很大时,为防止创建的数据库名子不重名,可以这样创建:
create database if not exists 数据库名;
(当出行同名的数据库时,会创建数据库失败,但不会报错)


此时java109数据库已经存在,再次创建,仅有一个警告,不会报错,也不会再次创建。
创建数据库的时候,可以手动指定一下字符集:
character set 字符集名字/charset 字符集名字
create database 数据库名 charset 字符集名;



后来又有了utf8mb4,是完全的utf8.
什么是字符集:
在盘算机中,一个汉字,占几个字节?
这个问题,不同的字符集,在不同的编码下,答案是不同的。
VS默认的字符集和系统自带的编码都是gbk,对应的一个汉字占两个字节。

utf8编码下,一个汉字占3个字节。
还有一种编码:unicode编码:是对字符进行编码,但无法对字符串进行编码,


2.查看数据库:

列出当前mysql服务器中有哪些数据库。
show databases;

3.选中数据库:

use  数据库名;

选中数据库后,就可以在这个数据库中创建表了,并对表进行操作(对数据库进行操作,最主要的就是对表进行操作了)。
4.删除数据库:

drop database 数据库名;

注意:删除数据库是一个非常危险的操作,特别是处理相干业务的时候,删除数据库,删除的不光仅是这个数据库,数据库中的表及相干的数据都被删除了,且是不可再恢复的,因此一定要谨慎删库。

1.设置权限

2.提前把数据做好备份

3.当要进行类似的危险的,重要的操作时,可以找一个人,对上述操作一起进行,可以尽量防止误操作。
二、对表的根本操作

对表操作的前提是 先选中数据库。
1.常见的数据类型

数值类型:

整形:

浮点型:

float(M,D) :括号中的 M表示小数的长度,D表示小数点后保存几位。

decimal(M,D): 更加精确的保存浮点数。decimal(M,D)虽能更加精确的保存浮点数,但运算速度会变慢,还会浪费更多的空间,因此要在特定的场所使用。
数值类型可以指定为无符号:unsigned ,表示不取负数。

字符串类型:


varchar(size) :size表示最多存储字符的个数。

text ,mediumtext 都是用来存储文本数据的。
blob 用来存储二进制数据。

日期类型:


timespace 就是一个时间戳,用1970年0时0分0秒为一个基定时间,盘算 如今时间与基定时间的秒/毫秒/微妙之差.
以后使用时间类型,一样平常用datatime,timespace的大小为4字节,表示的范围是到2038年,很快就到了,到时就没法再用了,

1.创建表:

一个表可以有很多行,每一行代表一条记录;也可以有很多列,每一列称为一个字段,代表的是一种具体的数据类型。
create table 表名(列名 类型,列明 类型,....);
类型:整形 int long
        浮点型 float decimal
        字符串 varchar
        日期 datatime
2.查看所有表

show tables;

3.查看表布局

desc 表名;

desc :describe描述
field:字段,列名
type:类型
NULL :表示是否允许为空,YES表示可以为空,
KEY:表示是否为关键字
default:表示默认值,没有指定是默认为NULL
Extra:表示其他的
4.删除表
drop table 表名;

删除表操作也是一个非常危险的操作,删除表不光把表格删除,表中的数据也全被删除了。

三、对表内容的增删查改

1.新增

insert into 表名 values (值,值,...);

这里插入的值的类型,个数 要和创建表时的布局 相匹配。
插入指定列:
inset into 表名 (列名,列名...) values (值,值...);
对某些指定的列进行插入.

一次插入多条记录:
insert into 表名 values (值,值...),(值,值...)...;

2.查找

全列查询:

select * from 表名;

在真正使用的时候,select *查询操作是很危险的操作,mysql查询都是在硬盘上进行的,当要查询的表中有大量数据时,可能会是硬盘损坏,是数据丢失,这造成的结果是非常严重的,因此一定要谨慎使用.

指定列查询:

select (列名,列名,...) from 表名;

表达式查询:

select 表达式 from 表名;

表达式指的是针对每列进行加减乘除类似的运算,把当前表的每一行对应的列进行运算.
这里的运算仅是针对从数据库中查询出的数据,进行盘算,是一份临时的数据,不会修改数据库中本来保存的数据。
带别名的查询:

select  列名 as 别名 from 表名;

as 别名: as可以针对列名/表名/库名,as是可以省略的,但不建议省略.
去重

distinct
用于修饰某一列/多列,当值雷同时,仅保存一条记录.
select distince 列名,列名... from 表名;


排序

针对列进行排序,把每一行的数据进行排序。
order by 列名  asc/desc
asc为升序分列(升序为默认排序规则,可以不写),desc为降序排序.
select 列名 from 表名 order by 列名 asc/desc;


当没有使用order by 时,对数据库查询出的结果是无序的,随机的.
按指定列进行查询,若查询结果未对排序列进行查询,也是可以的,不影响查询结果.
对多列进行排序:
select 列名 from 表名 order by 列名 asc/desc,列名asc/desc...;
 以指定列次序为优先级,对指定列按指定排序次序先进行排序,再按照下一个列的指定列排序.
条件查询

where
指定具体的条件,对条件进行查询.
select 列名 from 表名 where 条件;
遍历表的每一条记录,把每一条数据带入条件,条件建立,就表现在结果表中;不建立就不会表现.
比较运算符:

逻辑运算符:

注意:where条件可以使用表达式,但不能使用别名.
创建学生结果表exam_result,保存chinese,math,english三门结果.
查询总结果大于200的同学:

查询语文结果为90的同学:

注意:mysql中的=表示判断的意思,和java中的寄义不一样.
and / or
查询语文结果大于80分,且英语结果大于80分的同学:

查询语文结果大于80分,或英语结果大于80分的同学:

注意:and的优先级大于or,使用时,可以通过()来设置执行次序.
between and:通常用来查询区间段的数据,闭区间.
查询语文结果在 [80, 90] 分的同学及语文结果

in:通常用来查询离散的数据
查询数学结果是 58 大概 59 大概 98 大概 99 分的同学及数学结果

模糊查询:% 匹配任意多个(包括 0 个)字符,_匹配任意一个字符
查询姓张的同学结果:



未知NULL:
查询语文结果未知的人:

分页查询 limit

select 列名 from 表名 limit n (offset m);
从m行开始,最多筛选n条记录.(offset m 不写,默认从第0行记录开始)
使用select * 查询表是比较危险的,可以使用分页查询,限制查询数据的个数


从第3行开始,筛选3条记录:

从第4行开始,筛选3行记录:

只剩下两行记录,就表现两行.
3.修改

update  表名 set 列名=值,列名=值,... where 条件;
对订定条件下的某行的值进行修改,若为设置条件,则会对所有行都修改.

 将张张同学的数学结果变更为 80 分,语文结果变更为 60 分

将总结果倒数前三的 3 位同学的数学结果加上 30 分

 这里有一个报错ut of range value for column math:数学这个字段超出范围.
结果的类型为double(3,1),加上30后,结果大于100,超出范围.修改为将数学结果减30:

注意:mysql中没有+=  -=  *=  /= 类似语法
将所有同学的语文结果更新为原来的 1/2 

4.删除

delete from 表名 where 条件;
删除满足条件的行,若条件没写,则会将表中的数据都删除.


将表中的数据删空 delete from ,和删除表drop table 这两个操作,表中的数据都将不存在,但第一个操作,表还存在,只是表中的数据不存在了;第二个数据会将表和表中的数据都给删除.

注意:
修改(update),和删除(delete)都是对数据库进行的操作,都是永久性的,这两个操作也是危险操作,操作时,要谨慎使用.
数据库的很多操作都是危险操作,可以进行备份,应对误操作:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万万哇

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表