首页 > 数据库 >day02-MySQL基础知识

day02-MySQL基础知识

时间:2022-10-01 18:45:33浏览次数:50  
标签:创建 day02 数据库 MySQL 字符集 基础知识 hsp utf8 CREATE

MySQL基础知识

1.数据库

1.1.创建数据库

语法:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification[,create_specification]...]
create_specification:
    
    [DEFAULT]CHARACTER SET charset_name
    [DEFAULT]COLLATE collation_name
  1. CHARACTER SET:指定数据库采用的字符集,如果不指定字符集,默认为utf8
  2. COLLATE:指定数据库字符集的校对规则(常用的uft8_bin[区分大小写]、utf8_general_ci[不区分大小写] 默认是 utf8_general_ci)

练习:

  1. 创建一个名为hsp_db01的数据库[图形和指令演示]

  2. 创建一个utf8字符集的hsp_db02的数据库

  3. 创建一个使用utf8字符集,并带校对队则的hsp_db03数据库

    指令创建:

#演示数据库的操作
#1. 创建一个名为hsp_db01的数据库
CREATE DATABASE hsp_db01;

#删除数据库指令
DROP DATABASE hsp_db01;

#2. 创建一个utf8字符集的hsp_db02的数据库
CREATE DATABASE hsp_db02 CHARACTER SET utf8

#3. 创建一个使用utf8字符集,并带校对队则的hsp_db03数据库
CREATE DATABASE hsp_db03 CHARACTER SET utf8 COLLATE utf8_bin
#校对规则 utf8_bin 区分大小写   默认utf8_general_ci 不区分大小写

​ 可以看见在不指定采用字符集和校验规则的情况下,字符集默认为utf8,校验规则默认为utf8_general_ci

image-20221001131246165

关于字符集和校验规则:

如果在创建表的时候没有指定字符集和校验规则,则遵循和数据库一样的规则

如下:在数据库hsp_db02中创建表t1,t1设为默认字符集和校验规则。

在表t1中用select查询可以得到不区分大小写的两条数据:

image-20221001133406513

在数据库hsp_03中创建同样的表t1并插入同样的数据,查询后只得到一条数据:

image-20221001133908482

因为数据库hsp_03在创建时指定校验规则为utf8_bin,区分大小写,查询返回的数据也区分了大小写

数据库hsp_02没有指定大小写,返回的查询没有区分大小写

因此可知当表设置默认的字符集和校验规则时,其则遵循数据库的字符集和校验规则

1.2查看、删除数据库

  • 语法:
#显示数据库语句
#显示数据库创建时的语句
#数据库删除语句[一定要慎用]

练习

  1. 查看当前服务器中的所有数据库

    SHOW DATABASES
    
    image-20221001135837515
  2. 查看前面创建的hsp_02数据库的定义信息

    SHOW CREATE DATABASE hsp_db02
    

    image-20221001135916849

  3. 删除前面创建的数据库

  • 关键字作名字创建数据库:

    • 说明1:数据库名用反引号括起来,是为了规避数据名字为关键字

    例如:创建一个名为create的数据库,不使用反引号就会报错

    image-20221001140802726

    使用了反引号之后,就可以成功创建数据库

    image-20221001141001393 image-20221001141021681

    使用关键字创建,在删除的时候也要在名字旁边反引号

    image-20221001141223088
    • 说明2:后面的语句用/*!40100...*/ 说明版本要在4以上执行这条语句

1.3备份恢复

1.3.1备份恢复数据库

  • 语法:

备份数据库 (注意:在DOS执行)

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

恢复数据库(注意:进入MySQL命令行再执行)

Source 文件名.sql

练习:备份恢复数据库

备份hsp_db02和hsp_db03库中的数据,并恢复

  1. 备份:

    如下,在Dos窗口下输入指令,指明备份的数据库和保存的文件名

image-20221001150557630

在指定的路径下生成了对应的sql文件

image-20221001150802838

这个备份的文件就是对应的sql语句:

image-20221001150909059
  1. 恢复

首先删除掉数据库hsp_db02和hsp_db03

登录账号,进入mysql命令行,输入指令 Source d:\\\bak.sql

image-20221001151406361

可以看到数据库及里面的信息成功恢复:

image-20221001151552728

1.3.2备份恢复数据库表

  • 语法:

备份数据库的表

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

(注意:在DOS执行)

image-20221001152812485 image-20221001152900535

恢复和数据库同理(注意进入mysql命令行执行)

2.表

2.1创建表

  • 语法:
CREATE TABLE table_name
(
    field1 datatype,
    field2 datatype,
    field3 datatype
)character set 字符集 collate 校对规则 engine 存储引擎

# field:指定列名  datatype:指定列类型(字段类型)
# character set:如不指定则为所在的数据库字符集
# collate:如不指定则为所在的数据库的校验规则
# engine:引擎(这个涉及较多,后面单独讲解)

练习

在数据库hsp_db02创建一张表,根据需求的数据创建相应的列,并根据数据的类型定义相应的列类型

user表:

id  		整形
name  		字符串
passwoed  	字符串
birthday 	日期
#id  		整形
#name  		字符串
#passwoed  	字符串
#birthday 	日期
CREATE TABLE `user`(
	id INT,
	`name` VARCHAR(255),
	`password` VARCHAR(255),
	`birthday` DATE)
	CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB; 
image-20221001160742953

3.MySQL常用数据类型(列类型)

image-20221001165855153

Mysql列类型即mysql的数据类型

详见MySQL的参考手册

3.1列类型之整型

  • 说明

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

说明:使用规范:在能够满足需求的情况下尽量选择空间小的类型

image-20221001173132855

应用实例

  • 3.1.2.1无符号TINYINT
  1. 在数据库hsp_02中创建一个表t2,在表中插入列类型tinyint,列名为id
CREATE TABLE t2(
id TINYINT);
  1. 在表中插入数据 -129,执行后提示错误,可以看到t2为空表

image-20221001174310390 image-20221001174632661

  1. 往表中插入数据-128,执行成功,表中成功插入数据

image-20221001174822054 image-20221001174839813

  1. 同理,分别往表中插入数据128、127,只有127插入成功

    说明在有符号情况下,tinyint的范围为-128~127

image-20221001175049183
  • 有符号TINYINT

在列类型后面指定无符号

CREATE TABLE t3(
id TINYINT UNSIGNED);
INSERT INTO t3 VALUES(-1);#错误,超出范围
INSERT INTO t3 VALUES(0);
INSERT INTO t3 VALUES(256);#错误,超出范围
INSERT INTO t3 VALUES(255);
image-20221001175845175

3.2列类型之BIT

  • 说明
  1. bit字段显示时,按照位的方式显示(按照指定位数的二进制显示)
  2. 查询的时候仍然可以使用 添加时的数值(比如十进制)来查询
  3. 如果一个值只有0,1,可以考虑使用bit(1),可以节省空间
  4. 位类型。M指定位数,默认值1,范围1-64

练习

#演示bit类型使用
#说明
#1.bit(M) M在1-64位
#2.添加数据 的范围是按照你给定的M的位数来确定,例如M=8 表示一个字节(8bit) 0~255
create table t5 (num bit(8));
INSERT INTO t5 VALUES(5);
insert into t5 values(3);
select * from t5;
#3.查询时仍然可以按照十进制数来查询
select * from t5 where num = 5;

3.3列类型之小数型

  • 说明

标签:创建,day02,数据库,MySQL,字符集,基础知识,hsp,utf8,CREATE
From: https://www.cnblogs.com/liyuelian/p/16747574.html

相关文章

  • MYSQL学习笔记之子查询
    (一)基本介绍     select语句中可以嵌套select语句,被嵌套的select语句被称为子查询。(二)应用场景   select...(select) from...(select) where...(sele......
  • MYSQL学习之连接查询
    (一)连接查询?    从一张表中单独查询,称为单表查询。   emp表和dept表联合起来进行查询数据,从emp表中取员工名字,从dept表中取部门名字,这种跨表查询,多张表联合起来进......
  • mysql安装后无法启动,升级/降级/重新安装后无法启动问题mysqld: Can‘t open file: ‘m
    1.报错Loaded:loaded(/usr/lib/systemd/system/mysqld.service;enabled;vendorpreset:disabled)Active:failed(...日志/var/log/mysqld.log...mysqld:C......
  • 【MySQL】MySQL分区是如何处理NULL的
    MySQL的分区实现中,认为NULL比任何non-NULL值都小。和orderby类似。​RANGE分区是如何处理NULL的?如果将行插入到按RANGE分区的表中,使得用于确定分区的列值为NULL,则该行将......
  • mysql中的事务隔离级别序列化如何实现
    ......
  • mysql基础(十六):定义条件、定义处理程序
    简介定义条件是事先定义程序执行过程中可能遇到的问题,处理程序定义了在遇到问题时应当采取的处理方式,并且保证存储过程或函数在遇到警告或错误时能继续执行。这样可以增......
  • mysql基础(十一):数据类型
    起步数据类型数据类型的属性整数代码案例#创建数据表,指定字段类型CREATETABLEtest_int1(f1TINYINT,f2SMALLINT,f3MEDIUMINT,f4INTEGER,f5BIGINT);#插入没有超出范......
  • mysql基础(六):单行函数
    起步简介操作数据对象接受参数返回一个结果只对一行进行变换每行返回一个结果可以嵌套参数可以是一列或一个值数值基本函数代码案例#绝对值SELECTABS(-123),ABS(32),SIG......
  • mysql基础(三):运算符
    前言算术运算符算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加(+)、减(-)、乘(*)、除(/)和取模(%)运算加减运算符一个整数类型的值对整数进......
  • mysql基础(五):多表查询
    表结构如下代码案例#两个表的连接查询SELECTemployee_id,department_nameFROMemployees,departmentsWHEREemployees.`department_id`=departments.department_id;#......