MySQL学习

创建数据库

表示,这个数据库是否存在,如果已经存在就不创建,不存在就创建,如果没有这句,如果存在就会直接报错

需要哪步骤语句就选中哪条,然后点击类似播放机的按钮,可执行,再右击root@localhost选择刷新,就可以看见相应效果

查看,删除数据库

、当我们创建得数据库或者其他的名字为关键字时,需要用单引号。

备份数据库

现用管理员身份运行终端,然后输入mysqldump -u root -p -B 要备份的数据库名 >备份到的目录及备份文件名。如-》mysqldump -u root -p -B study >d:\\bask.sql

然后再在软件使用语句DROP DATABASE 刚备份的软件名,将其删除。

紧接着再需要恢复数据的话在管理员身份运行终端输入mysql -u root -p

再输入source 备份到的目录及备份文件名,例如source d:\\bask.sql

此时再去看我们得数据库,就可以看到,恢复的那个了

老师演示:

创建表

CREATA TABLE 表明(属性名 属性类型,

属性名 属性类型,

。。。。)CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;

常用数据类型

标红的为常用的·

数值型的基本使用

定义一个无符号的整数方式

create table t10 (id tinyint);//默认是有符号的
create table t11 (id tinyint unsigned);无符号的

倘若都为-1则会报错,因为,无符号的取值范围是0开始

数值型bit的使用


1.基本使用
mysql> create table t02 (num bit(8));
mysql> insert into t02 (1, 3);
mysql> insert into t02 values(2, 65);

2. 细节说明 bit.sql

  • · bit 字段显示时,按照 位的方式显示.
  • · 查询的时候仍然可以用使用 添加的数值
  • · 如果一个值只有0,1可以编辑使用bit(1),可以节约空间
  • · 位类型。M指定位数,默认值1,范围1-64
  • · 使用不多.

放进来的值会转变成二进制形式存放

数值型(小数)的基本使用

  1.  FLOAT/DOUBLE [UNSIGNED]-》Float 单精度精度,Double双精度.
  2. DECIMAL[M,D] [UNSIGNED]
  • · 可以支持更加精确的小数位。M是小数位数(精度)的总数,D是小数点(标度)后面的位数。
  • ·如果D是0,则值没有小数点或分数部分。M最大65。D最大是30。如果D被省略,默认是0。如果M被省略,默认是10。
  • 建议:如果希望小数的精度高,推荐使用decimal
  • 演示

数据类型字符串基本使用

当使用的是utf8时,则需要减去三个字节并将减去的字节除以3之后的大小才是真正可存放的字节大小,如果是gbk编码,则需要减3除以2,得到的才是真正需要存放的大小

字符串使用细节

细节1:

  • char(4)//这个4表示字符数(最大255),不是字节数,不管是中文还是字母都是放四个,按字符计算.
  • varchar(4)//这个4表示字符数,不管是字母还是中文都以定义好的表的编码来存放数据.
  • 不管是 中文还是英文字母,都是最多存放4个,是按照字符来存放的.

细节2:

  • char(4)是定长(固定的大小),就是说,即使你插入'aa',也会占用 分配的:4个字符的空间.
  • varchar(4)是变长(变化的大小),就是说,如果你插入了‘aa',实际占用空间大小并不是4个字符,而是按照实际占用空间来分配(老韩说明:varchar本身还需要占用1-3个字节来记录存放内容长度)

细节3:什么时候使用char,什么时候使用varchar

  • 如果数据是定长,推荐使用char,比如md5的密码,邮编,手机号,身份证号码等.char(32)
  • 如果一个字段的长度是不确定,我们使用varchar,比如留言,文章

查询速度:char>varchar

细节4

  • 在存放文本时,也可以使用Text数据类型.可以将TEXT列视为VARCHAR列,注意Text不能有默认值.大小0-2^16字节
  • 如果希望存放更多字符,可以选择MEDIUMTEXT 0-2^24 或者 LONGTEXT 0~2^32

 日期类型的基本使用

CREATE TABLE birthday6
( t1 DATE, t2 DATETIME,
t3 TIMESTAMP NOT NULL DEFAULT
CURRENT TIMESTAMP ON UPDATE
CURRENT TIMESTAMP ) ; timestampllJjaat

mysql> INSERT INTO birthday (t1,t2)
VALUES('2022-11-11','2022-11-11 10:10:10');

● 日期类型的细节说明
TimeStamp在Insert和update时,自动更新

黄色字体表示,如果你没有加入日期,就会用当前日期加入其中。或者你在更新字段时,他会用当前时间更新这个字段

DATE为年月日,DATETIME为年月日时分秒

例如下:

longin_time 后的类型是TIMESRAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,那么longin_time的值就会填入当前的时间

修改表

Insert语句

细节说明

  1. 插入的数据应与字段的数据类型相同。比如 把'abc'添加到int 类型会错误
  2. 数据的长度应在列的规定范围内,例如:不能将一个长度为80的字符串加到长度为40的列中。
  3. 在values中列出的数据位置必须与被加入的列的排列位置相对应。
  4. 字符和日期型数据应包含在单引号中。
  5. 列可以插入空值[前提是该字段允许为空],insert into table value(null)
  6. insert into tab_name(列名 .. )values (),(),()形式添加多条记录
  7. 如果是给表中的所有字段添加数据,可以不写前面的字段名称
  8. 默认值的使用,当不给某个字段值时,如果有默认值就会添加,否则报错

注意,当我们想给予默认值时,需要在插入数据时,谢明要插入的数据是哪几个,也就是这个括号内要写明插入的,这样才可以执行成功,未插入的也会自动补默认的值

updata语句

 使用细节:

  1. UPDATE语法可以用新值更新原有表行中的各列。
  2. SET子句指示要修改哪些列和要给予哪些值。
  3. WHERE子句指定应更新哪些行。如没有WHERE子句,则更新所有的行!
  4. 如果需要修改多个字段,可以通过 set字段1=值1,字段2=值2 ....

delete语句

 使用细节

  1. 如果不使用where子句,将删除表中所有数据。
  2. Delete语句不能删除某一列的值(可使用update设为 null或者 ‘ ’)
  3. 使用delete语句仅删除记录,不删除表本身。如要删除表,使用drop table语句。drop table 表名;

select语句

where子句中经常使用的运算符

加括号代表两边条件都要为真,既要成绩符合,id也要在范围内,而不加的代表,可取,成绩符号id不符合的和id和成绩都符合的

使用order by子句排序查询结果

不可用中文字符串在by后面进行排序,否则排序会出错

合计/统计函数 

count 返回行的总数

合计函数 - sum

合计函数 - avg


合计函数 - Max/min

使用group by子句对列进行分组,Having子句对分组后的结果进行过滤

字符串相关函数

数学相关函数

16

时间日期相关函数

当前的年月加时间

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值