当前位置: 首页 > news >正文

数据库——韩顺平(每日进行更新,直至更完)

序:SQL语句分类

DDL:数据定义语句——[create 表,库]

DML:数据操作语句——[增加insert,修改update,删除delete]

DQL:数据查询语句——[select]

DCL:数据控制语句——[管理数据库:比如用户权限—grant(授予)]

一、数据库相关知识

1.1 创建数据库

CREATE DATABASE [IF NOT EXISTS] db_name (数据库名称)
       -- CHARACTER SET是制定数据库采用的字符集,不指定默认为utf-8
       [CHARACTER SET …(字符集)]
       -- COLLATE是制定数据库字符集的校对规则,默认为不区分大小写utf_general_ci
       [COLLATE …(校对规则)]

--在创建数据库、表的时候,为了规避关键字,可以使用反引号进行规避,比如:
--CREATE DATABASE 'CREATE';

1.2 查看数据库

--显示数据库语句
SHOW DATABASES

--显示数据库创建语句
SHOW CREATE DATABASE db_name

--数据库删除语句
DROP DATABASE [IF EXISTS] db_name

1.3 备份恢复数据库

--备份数据库(在DOS命令行执行)
     mysqldump -u 用户名 -p -B 数据库1 数据库n > 文件名.sql
--恢复数据库(在SQLyog执行)
     source 文件名.sql

二、表相关操作

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表(快速入门案例 create tab01.sql)
id 整形
name 字符串
password 字符串
birthday 日期

2.2 常用数据类型(列类型)

分类数据类型说明
数据类型BIT(M)
TINYINT [UNSIGNED]占1个字节
SMALLINT[UNSIGNED]2个字节
MEDIUMINTIUNSIGNED]3个字节
INT[UNSIGNED]4个字节
BIGINT [UNSIGNED]8个字节
FLOAT [UNSIGNED]
DOUBLE [UNSIGNED]
DECIMAL(M,D)[UNSIGNED]
位类型。M指定位数,默认值1,范围1-64
带符号的范围是-128到127。无符号0到255。默认有符号
带符号是 负的2^15 到 2^15-1,无符号0 到2^16 -1
带符号是 负的 2^23 到 2^23-1 ,无符号0 到2^24 -1
带符号是 负的 2^31 到 2^31-1,无符号0 到2^32 -1
带符号是 负的 2^63 到 2^63-1,无符号0 到2^64 -1
占用空间4个字节
表示比foat精度更大的小数,占用空间8个字节
定点数 M抬定长度,D表示小数点的位数,
文本、
二进制
类型

CHAR(size) char(20)
VARCHAR(size)varchar(20)

varchar本身需要1-3字节记录

BLOB

LONGBLOB
TEXT LONGTEXT

固定长度字符串 最大255
可变长度字符串 0~65535 [即:2^16-1]——utf8编码下最大21844个字符
二进制数据 BLOB 0~2^16-1

二进制数据 LONGBLOB 0~2^32-1
文本 Text 0~2^16 LONGTEXT 0~2^32

时间日期

YEAR(年)

DATE(年月日)

time(时分秒)

DATETIME(年月日时分秒)

TimeStamp

日期类型(YYYY-MM-DD)(YYYY-MM-DD HH:MM:SS)
TimeStamp表示时间戳,它可用于自动记录insert、
update操作的时间

2.3 修改表

--使用ALTER TABLE 语句添加(追加)列的语法
ALTER TABLE tablename(表名)
      ADD column(列名) datatype(数据类型)
      [DEFAULT expr](默认值+表达式)
      [AFTER column]------该含义为新添加的列在某一列后面
--注:NOT NULL DEFAULT ' '指的是默认值不允许为空;

--使用ALTER TABLE 语句修改列的语法
ALTER TABLE tablename(表名)
      MODIFY column(列名) datatype(数据类型)
      [DEFAULT expr](默认值+表达式)

--使用ALTER TABLE 语句删除列的语法
ALTER TABLE tablename(表名)
      DROP column(列名)
      
--改变表名
RENAME TABLE tablename1 TO tablename2;

--显示表结构
DESC tablename

--修改表的字符集
ALTER TABLE employee CHARACTER SET utf8

--修改列名(将name改成user_name)
ALTER TABLE employee
       CHANGE NAME user_name VARCHAR(32) 
       NOT NULL DEFAULT ' '

相关文章:

  • 【Git】三、远程管理
  • Java 大视界 -- 深度洞察 Java 大数据安全多方计算的前沿趋势与应用革新(52)
  • MySQL数据库误删恢复_mysql 数据 误删
  • 物联网领域的MQTT协议,优势和应用场景
  • 大模型参数规模解析:32B中的“B“代表什么?如何影响AI性能?
  • C# CultureInfo 地区影响字符串
  • 如何通过腾讯 ima.copilot 训练自己的知识库
  • Repo、manifest以及Gerrit分别是什么?
  • C#的async异步方法里如果使用了await,那么它跟同步方法有什么区别?
  • KubeSphere 和 K8s 高可用集群离线部署全攻略
  • 解决No matching client found for package name xxx编译报错的问题
  • 软考高级《系统架构设计师》知识点(二)
  • Vue.js 与低代码开发:如何实现快速应用构建
  • git 克隆指定 tag 的项目
  • 基于MATLAB的沥青试样孔隙率自动分析——原理详解与代码实现
  • (前端基础)HTML(一)
  • 判断函数是否为react组件或lazy包裹的组件
  • flink cdc2.2.1同步postgresql表
  • 设置mysql的主从复制模式
  • FastJson系列化使用toJSONString时null值问题
  • 中老铁路跨境国际旅客突破50万人次
  • 张炜琳已任三明市委常委、宣传部部长
  • 69岁朱自强被查,曾任南京地铁总经理
  • 习近平在上海考察
  • 新造古镇丨上海古镇朱家角一年接待164万境外游客,凭啥?
  • 网警侦破特大“刷量引流”网络水军案:涉案金额达2亿余元