MySQL学习笔记(2)

MySQL基本操作

数据库基本操作

创建数据库

使用 Create database + 库名 来创建

Create database T1 ; #创建一个名为"T1"的数据库

创建成功会显示这个:

使用参数 if not exists 可以在创建数据库时,出现相同数据库的时候不报错(一般情况下创建相同名称数据库会报错)。

Create database if not exists T1 ; #创建一个名为"T1"的数据库

当然也是可以设置数据库字符集。

创建字符集为gb2312的数据库

Create database if not exists T1 default character set gb2312 ; #创建名为“T1”的数据库,字符集设定为gb2312

排序规则(校对规则): 是指对指定字符集下不同字符的比较规则。

查看可用的排序规则

show collsation ; #查看可用的排序规则

创建数据库T1,修改字符集为 utf8,更改排序规则为utf8_unicode_ci

Create database T1 default character set utf8 default collate utf8_unicode_ci ; #创建数据库T1,修改字符集为 utf8,更改排序规则为utf8_unicode_ci

查看数据库

查看数据库定义(字符集和排序规则)

show create database + 空格+库名

show create database T1 ; #查询T1数据库定义

使用数据库

use +库名

use T1 ; #使用T1数据库

修改数据库

alter database + 库名 default character set +新字符集 default collate + 新排序规则

alter database T1 default character set gbk ;#将T1数据库的字符集改为gbk

删除数据库

drop database +库名来删除数据库(此命令不可以用来删除数据库中的表)

drop database T1 ; #删除T1数据库

数据库的一些其他指令

MySQL默认结束符为分号 (” ; “)

修改结束符:

delimiter + 空格 + 新结束符

修改结束符只能单次使用,重启后将转为默认
delimiter ! #将结束符换为 "!"

可以用指令验证

show databases + 新结束符:展示数据库

show databases ! #展示数据库

退出MySQL:

quit #退出数据库

exit

查看服务器信息:

Status + 空格 +结束符

Status ; #显示服务器信息

数据表基本操作

数据类型

整型

int 占用四个字节

bigint 占用八个字节

Tinyint 占用一个字节

smallint 占用两个字节

mediumint 占用三个字节

整型类型占用字节
int 4
bigint 8
Tinyint 1
smallint2
mediumint 3
整型类型

适用于 :有数值,有大小比较的。

浮点型

有小数点的数值

Float (m,d)

double(m,d)

其中:

m表示该数值有几位整数,

d表示小数点后面有几位

float (3,2) ; -9.99 — +9.99

字符串

字母,汉字,数字符号,特殊符号构成的数据对象

适用于:身份证号,编号,电话号码。联系地址,名称等

char:定长字符串,长度为 0 – 255。保存char时,在右边填充空格来达到指定长度

varchar :可变字符串, 长度为 0 – 65535。只保存需要的字符数,另外再加一个字节来记录

如果超出规定长度,char 和 varchar 会对值裁剪以适应,如果裁剪的字符不是空格,会发出警告。

如果超出规定长度,char 和 varchar 会对值裁剪以适应,如果裁剪的字符不是空格,会发出警告。
blob 和text类型

(非二进制字符串)

存储声音,视频,头像等设置

时间和日期类型

date , time 和 datatime

固定的格式数据,存储的是日期和时间

date类型

存储格式 : yyyy – mm – dd

支持范围 : 1000 – 01 – 01 ~~9999 – 12 – 31

time类型

存储格式 : hh : mm : ss

支持范围 ; -838 : 59 : 59 ~~ 838 : 59 : 59

datetime类型

表示日期时间

存储格式 : yyyy – mm – dd hh : mm : ss

支持范围 :1000 – 01 – 01 00 : 00 : 00 ~~ 9999 – 12 -31 23 : 59 :59

timestamp类型

客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回

创建数据表

在数据库中新建数据表

create table t1 ; #创建名为 t1 数据表 

创建数据表,规定长度

创建前记得使用数据库

use t1 ;  //使用t1数据库
create table t0 
(name char(10),
logintime date,
mail varchar(20),
score float(5,2),
list int(5),
photo text comment"头像");

 #创建名为 t0 数据表

comment : 解释。一般放在数据类型后面,表示对于字段名的解释,可以理解成为注释。

comment "解释内容"  #comment使用方法

创建临时表

create temporary table (N1) ;

create temporary table () ; //创建临时数据表

N1包含两个字段:id 和 name

查看数据表

查找数据表

XX为需要查找名

show table like "XX%" ; 

//可以查找多个字符,只要指定包含查找字段就会被查找到
//如果查找 "X%",则会出现 XXX,XYX,XXYXY,XXYXYX
show table like"XX_" ;
//只能查找单个字符
//如果查找"X_",则会出现XX,
查看数据表的列
//desc + 表名 +列名 ;
//查看teacher表中的teachearID列
desc teacher teacherID ;
查看数据表状况
show table status ;  //查看数据表

但是如果数据表太多会难以查找,需要在末尾加个\G,变为横向排列

show table status \G
如果加了 \G ,就不需要结束符了,否则会报错

查看存在数据表的名称

show table + 表名 ; #查看存在数据表的名称

查看数据表结构

desc/describe + 表名 ; #查看数据表结构
查看表的定义语句

查看表里有什么

//show create table + 表名 ;

show create table score ;

查看表的结构

使用describe可查看字段定义,键的信息,默认值等

 //desc / describe + 表名 ;
describe score ;
根据指定条配件来查询

消除结果集中的重复行

使用 Distinct 关键字

SELECT DISTINCT [字段名1,字段名2] FROM 表名 ;
多个字段名的话,只有两个字段完全相同。DISTINCT关键字才会同时消除

实现有条件筛选

运算符

运算符名称 说明
=等于
<> !=不等于
< <= > >=小于,小于等于,大于,大于等于
Between在…..之间
is null空值

between

select

多条件查询

Where条件说明
And两个或者多个条件同时满足
Or两个或者多个条件满足一个
In多个条件中的一个
Like搭配%通配符或者_通配符来模糊搜索

修改数据表

alter table + 表名

 alter table + 表名 ;

[warning]注意,以下修改数据表所有操作都要加alter table + 表名。[/warning]

添加新字段
alter table 表名 add  字段名 + 字段名定义 ;

可以在末尾加first 或者 aftear 来在指定字段前新增字段

添加默认值和删除默认值
alter table 表名 alter  字段名 set default + 默认值 ; //修改默认值
alter table 表名 alter  字段名 drop default ; // 删除默认值 
修改字段名
alter table 表名 change  旧字段名 + 新字段名 + 字段 ;
修改字段定义
alter table 表名 modify  + 字段名 + 字段的新定义  ;
alter table student modify  studentmark text ;
删除字段
alter table 表名 drop + 字段名 ;

删除多个字段

alter table 表名 drop 字段1 drop 字段2 ;
为表重命名
alter table 表名 rename to + 新表名 ;

实例

为表添加备注字段,字段名为studentremark,数据类型为varcgar(100),放置在stuname字段之后

alter table score add studentremark varchar(100) after stuname ;

为score添加一个字段,字段名为classid 数据类型为varchar(10),默认值为10

alter table score add classid varchar(10) set default 10 after studentremark ;

验证

#desc + 表名 ;
desc score ;
为字段增加内容
insert into 表名 values(内容1,内容2);

分字段批量增加内容

insert into 表名(字段名1,字段名2)values(内容1,内容2) ;

添加多组内容

insert into 表名 values(内容1,内容2)(内容3,内容4) ;

将指定字段导入到新表中

//insert into 目标表(字段1,字段2) select (字段1,字段2) from 来源表
insert into student(Name,StudentID) select (Name,StudentID) from StuentClass
update修改表的数据
//update 表名 set 字段名1 = 值1,字段名2 = 值2 where 条件

[warning]update修改的是表中数据,不是字段[/warning]

多表数据修改

update 表名列表 set 表名.字段名1 =  值1, 表名.字段名2 = 值2 where 表名.条件 ;

表名.字段名 表示表中的某个字段

按条件删除数据

delete , truncate来删除

使用delete 删除

删除表中++所有数据:

//delete from 表名 ;

删除表中的部分数据

delete from 表名 where 条件 ;

复制数据表

create [if not exists]新表名

[like 参照表名]

[al {selsct 语句}]

like 像:创建一个和草诏表名结果相同的新表,不复制内容,其他的都复制

as 完全复制表的内容,单索引和完整性拘束不会复制,selsct语句是一个表达式,可以是一个selsc语句

use bookstore;
create table book like book_copy1;
create table book_copy2 as(select * from book);

删除数据表

dorp table [if not exists] + 表名

dorp table if not exists student ;

其他

存储引擎:对不同表类型的处理器

默认:innoDB

Engine = innoDB

create table (字段名 数据类型)engine = innoDB ;

让其识别中文字符

set names gbk ;

timestamp

如果没有给定日期型

作者: Xenolies
文章标题 :MySQL学习笔记(2)
文章链接 : https://xenolies.xyz/2022/03/10/957/
文章URL : https://xenolies.xyz/2022/03/10/957/
本文采用 CC BY-NC-SA 4.0 协议
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇