入门数据库days1

目录

数据库的三层结构

1.数据库

SQL语句分类

创建数据库

删除数据库

查看数据库

显示数据库创建语句

删除数据库

备份恢复数据库

备份数据库

恢复数据库

备份数据库的表

2.表

创建表

列类型

列类型之整型

列类型之bit

列类型之小数型 

 列类型之字符串

 日期类型

 修改表


数据库的三层结构

  • 所谓安装Mysql数据库,就是在主机安装一个数据库管理系统(DBMS),这个管理程序可以管理多个数据库.DBMS(database manage system)
  • 一个数据库可以创建多个表,以保存数据(信息)
  • 数据库管理系统(DBMS),数据库和表的关系

1.数据库

数据库-表的本质仍然是文件

SQL语句分类

  •  DDL:数据定义语句
  •  DML:数据操作语句[增加,修改,删除]
  •  DQL:   数据查询语句[select]
  •  DCL:    数据控制语句[管理数据库]

创建数据库

CREATE    {DATABASE|SCHEMA}     [IF NOT EXISTS] 数据库名

[

        [DEFAULT] CHARACTER SET[=] 字符集  |

        [DEFAULT] COLLATE [=] 校队规则名称

];

  1.  “{}”表示选项;“[]”表示选项;“|”表示分隔符两侧的内容为"或"的关系。
  2. {DATABASE|SCHEMA} 中要么使用DATABASE,要么使用SCHEMA,不能全不使用     
  3. CHARACTER SET:指定数据库采用的字符集,如果不指定,默认为utf8
  4. COLLATE:指定数据库字符集的校队规则(常用的 utf8_bin[区分大小写],utf8_general_ci 注意默认是utf8_general_ci)[举例说明 database.sql 文件]

例:

1.创建一个使用utf8字符集的hsp_db01数据库

CREATE DATABASE hsp_db01 CHARACTER SET utf8

2.创建一个使用utf8字符集,并带校队规则的hsp_db02数据库

CREATE DATABASE hsp_db02 CHARACTER SET utf8 COLLATE utf8_bin

删除数据库

DROP DATABASE 数据库名

查看数据库

SHOW DATABASES

显示数据库创建语句

SHOW CREATE DATABASE 数据库名

  •  在创建数据库,表时,为了规避关键字,可以使用反引号解决(也可以用关键字做数据库名,用反引号即可)

删除数据库

DROP  DATABASE [IF EXISTS] 数据库名        

备份恢复数据库

备份数据库

在DOS执行命令行

:mysqldump -u 用户名 -p -B 数据库1 数据库2 数据库n  > 文件名.sql

恢复数据库

Source 文件名.sql(在DOS执行命令)

备份数据库的表

mysqldump  -u 用户名  -p 密码  数据库 表1  表2 表n > d:\\文件名.sql

笔记: 

  • 表设置时没有设置字符集和校队规则,其字符集和校对规则会是数据库设置的相对应的字符集和校队规则

2.表

创建表

CREATE TABLE 数据表名

(

         field1 datatype,

         field2 datatype,

         field3 datatype

character set字符集 collate 校对规则 engine 引擎

filed:指定列名 datatype :指定列类型(字段类型)

character set:如不指定则为所在数据库字符集

collate:如不指定则为所在数据库校对规则

engine:引擎 

例:

 CREATE TABLE `use` (
 id INT,
 `name` VARCHAR(255),
 `password` VARCHAR(255),
 `birthday` DATE)
 CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;

 

注意:创建表时,要根据需保存的数据创建相应的列,并根据数据的类型定义相应的列类型。

列类型

列类型之整型

类型字节最小值最大值
(带符号的/无符号的)(带符号的/无符号的)
TINYINT1-128127
0255
SMALLINT2-3276832767
065535
MEDIUMINT3-83886088388607
016777215
INT4-21474836482147483647
04294967295
BIGINT8-92233720368547758089223372036854775807
018446744073709551615

使用规范:在满足需求的情况下,尽量选择占用空间小的类型

列类型之bit

  1. bit(m) m 在1-64
  2. 添加数据的范围按照你给定的位数决定,比如m=8 表示一个字节 0~255
  3. 显示按照bit
  4. 查询时,仍然可以按照数来查询
CREATE TABLE t5 (num BIT(8));
 INSERT INTO t5 VALUES(255);

列类型之小数型 

1.FLOAT/DOUBLE [UNSIGNED]

float 单精度,double 双精度

2.DECIMAL[M,D] [UNSIGNED]

  • 可以支持更加精确的小数位。M是小数位数(精度)的总数,D是小数点(标度)后面的位数
  • 如果D是0,则值没有小数点或分数部分。M最大65。D最大是30。如果D被省略,默认是0。如果M被省略,默认是10。
  • 建议:如果希望小数点精度高,推荐使用decimal
  • 存放很大的数,使用decimal

代码如下

#创建表
 CREATE TABLE t6(
	num1 FLOAT,
	num2 DOUBLE,
	num3 DECIMAL(30,20));
#添加数据
INSERT INTO t6 VALUES(11.123456789123456789,11.1234567891011121314151617,11.1234567891011121314151617181920);
SELECT * FROM t6;

 列类型之字符串

基本使用:

CHAR(size):固定长度字符串 最大255字符

VARCHAR(size) 0~65535:可变长度字符串

最大65532字节 【utf8编码最大21844字符 1-3个字节用于记录大小】

字符串使用细节

char(4)这个4表示字符数(最大255),不是字节数,不管中文还是字母都放4个。

char(4)是定长,即使插入'aa',也会占用分配的4个字符

verchar(4)这个4表示字符数,同上

verchar(4)是变长,如果插入'aa',实际占用空间大小并不是4个字符,而是按照实际占用空间来分配(verchar本身还需要占用1-3个字节来记录存放内容长度)

 如果数据是定长用char,(手机号,身份证号)变长用verchar(留言),

        查询速度,char>verchar

如果verchar不够用,可以考虑使用mediumtext,或者longtext

如果想简单点,可以直接使用text(无默认值)

 日期类型

CREATE TABLE t8(
	birthday DATE,
	job_time DATETIME ,-- 可以记录分秒
	login_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON 
	UPDATE CURRENT_TIMESTAMP);-- login_time自动更新
	SELECT * FROM t8;
	INSERT INTO t8(birthday ,job_time)
	 VALUES('2022-7-17','2022-7-17 9:58:10');
	 

 如果我们更新 t8 表的某条记录,login_time就会以当前的时间自动更新

创建表的练习

CREATE TABLE t9(
	id INT,
	`name` VARCHAR(32),
	sex CHAR(1),
	birthday DATE,
	entrydate DATETIME,
	job VARCHAR(32),
	salary DOUBLE,
	re  TEXT) CHARSET utf8 COLLATE utf8_bin ENGINE INNODB;
	INSERT INTO t9 VALUES (100,'小妖怪','男','2022-7-17','2022-7-17 11:11:11','巡山的',3000,'大王叫我来巡山');
	SELECT * FROM t9;
	

 修改表

         使用 ALTER TABLE 语句追加,修改,或删除列的语法。

添加列:ALTER TABLE 表名

ADD ( column datatype [DEFAULT expr]  [,column datatype ]...);

修改列: ALTER TABLE 表名

MODIFY  ( column datatype [DEFAULT expr]  [,column datatype ]...);

删除列:ALTER TABLE 表名

DORP (column);

查看表的结构: desc 表名;-- 可以查看表的列

修改表名:Rename table 表名 to 新表名 

修改表字符集: alter table 表名 character set 字符集;

修改表演示:

-- 在表t9上增加一个image列,varchar类型(要求在re后面)
     ALTER TABLE    T9
        ADD image VARCHAR(32) NOT NULL DEFAULT ' '
        AFTER re

 -- 修改job列,使其长度变为60.
     ALTER TABLE t9
        MODIFY job VARCHAR(60) NOT NULL DEFAULT ' '

 

将表名修改为t99

RENAME        TABLE t9 to t99

 修改表的字符集为utf8

ALTER TABLE t99 CHARACTER SET  utf8;

将列名name修改为use_name

 ALTER TABLE t99
     CHANGE `name` `user_name` VARCHAR(64) NOT NULL DEFAULT ' '

编译器中注释快捷键:shift+ctrl+c 取消注释:shift+ctrl+r

以上为相关的视频笔记,如有侵权请联系我删除。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小吴有想法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值