当前位置: 首页 > 编程日记 > 正文

mysql数据库基本介绍及常见使用

  1. 关系型数据库

    ● 二维表
    ● 表中的一行,称为记录,表中的列, 称为字段(属性)
    ● 行列交叉的单元格的值,叫属性值或字段值。
    ● ORACLE DB2 Mysql SQL SERVER 关系型数据库

  2. 常用的指令(可以在命令行执行,也可以在navicat新建查询执行)

查看版本号

select version()

显示所有的数据库

show databases;

设置当前数据库

use  数据库名

查看该数据库下所有的表

show tables

查看表结构

desc 表名
  1. 存储引擎
    数据库存储、管理和查询等操作的一些规则。

三种数据引擎
1)innoDB存储引擎
● 默认的存储引擎
● 支持外键
● 支持事务
2)MYISAM
● 支持全文检索
● 不支持外键
3)MEMERY
● 内存引擎,在内存中创建表
● 访问速度快

  1. 字符集
    ● 数据库中存储数据的编码格式
    ● 中文一般使用utf8
    ● 排序规则 utf8_general_ci ci表示大小写字母不敏感
    ● mysql对于英文字母大小写不敏感

  2. sql脚本
    ● .sql作为扩展名的一个文件
    ● 方便部署数据库

  3. 数据库的管理
    数据库的创建

CREATE DATABASE 数据库名 CHARACTER SET utf8 COLLATE utf8_general_ci
CREATE DATABASE  IF NOT EXISTS 数据库名 CHARACTER SET UTF8 COLLATE utf8_general_ci ;

数据库的删除

DROP DATABASE 数据库名
  1. E-R图
    ● ENTITY RELATIONSHIP 实体关系图,数据库逻辑设计阶段产生的一种数据模型。
    ● 包含三个要素:

    1. 实体 实体实际对应着数据库中表
    2. 属性 实际对应着表中的字段
    3. 关系 表与表之间的关系
      ● 一对一
      ● 一对多
      ● 多对多
  2. 数据类型
    1)数值类型
    ● BIT 位
    ● TINYINT 很小整数,-128~127 unsigned 无符号0~255
    ● BOOLEAN 用TINYINT(1)来表示,0表示false,非零值表示true
    ● SAMLLINT -32768~32767
    ● INT 正负21亿多
    ● BIGINT 很多很多
    ● FLOAT
    ● DOUBLE
    ● DECIMAL
    2)字符串类型
    ● CHAR(n) 固定长度为n的字符串
    ● VARCHAR(n) 变长字符串,n为最大长度,实际存储的长度,就是字符串的实际长度。
    ● TEXT 大文本,比如小说的章节内容。
    ● ENUM 枚举
    3)日期类型
    ● DATE
    ● DATETIME
    ● TIME
    ● YEAR
    ● TIMESTAMP 时间戳 记忆记录最后一次的更新时间。需要将字段的默认值设置为CURRENT_TIMESTAMP,勾选为时间戳。

  3. 约束类型
    ● 往表中插入记录的时候,遵循的一定的规则, 称为约束,作用保证数据的完整性和一致性。
    主键约束
    ● PRIMARY KEY
    ● 表中的一列或者多列,设置主键约束,表示该列的值,在该表中是唯一的。
    ● 主键的值不能为NULL,而且必须唯一。
    ● 语法:

字段名  PRIMARY KEY  AUTO_INREMENT  

● AUTO_INREMENT表示主键自增
唯一性约束
● UNIQUE
● 表示该字段的值在该表中是唯一的,但是取值为NULL
● 表中的多个字段都可以设置唯一性约束
● 语法 :

字段名  UNIQUE

非空约束
● NOT NULL
● 该字段的值不能为null
● 语法:

字段名  NOT NULL

默认值
● DEFUALT
● 如果表中插入记录时,没有给该字段赋值,则使用默认值。
● 语法:

字段名  DEFAULT

外键约束
● FOREIGN KEY
● 表中的某个字段,是取自另外一个表中的字段的值,形成的外键约束
● 两个表中关联字段的数据类型要一致。
● 外键约束的策略:
● restrict 、noaction 对于已经形成外键约束的记录,被引用表中的关联的记录不允许被删除。
● set null 对于已经形成外键约束的记录,被引用的表中的记录删除后,主表中关联记录的对应的字段值被置为null
● cascade 对于已经形成外键约束的记录,如果删除或者更新被引用表中的记录,主表的关联记录也会被删除或者更新。

CHECK约束
● mysql不支持这种约束,一般通过枚举或者触发器来实现。

  1. 表的创建
    ● 语法
CREATE TABLE   表名(字段名   数据类型   约束,字段名   数据类型   约束)
  1. 表的删除
DROP TABLE 表名
  1. 更改表
    ● ALTER

  2. SQL语句
    SQL Structed Query Language
    DDL DATA DEFINITION LANGUAGE 数据定义语言
    对于数据库或者数据库的组件的结构的操作
    CREATE ALTER DROP
    特点:不允许事务的回滚。
    DML DATA MANIPULATION LANGUAGE 数据操作语言
    表中记录的增删改
    INSERT
    DELETE
    UPDATE
    特点:可以进行事务的回滚
    DQL DATA QUERY LANGUAGE 数据查询语言
    SELECT
    DCL DATA CONTROL LANGUAGE 数据控制语言
    GRANT 授权
    REVOKE 回收权限
    TPL TRANSACTION PROCESS LANGUAGE 事务处理语言
    COMMIT
    ROOLBACK

  3. DML
    INSERT 往表中插入记录
    ● 语法

INSERT INTO 表名(字段列表) VALUES(值列表)

● 其中:
● 1、字段列表,值列表两两之间用逗号隔开
● 2、值列表中的值,字符串和日期的常量,需要单引号括起来。
● 3、值的类型要与字段的数据类型相符
● 4、INTO可以省略
● 5、字段列表如果是插入整个表中的字段,可以省略,但值列表的个数与顺序要与定义的表的字段的顺序一样。
● 6、字段也可以写其中的几个,与后面的值的个数对应即可。
● 7、VALUES 关键字也可以使用VALUE,但一般用values
● 批量插入多条记录
● INSERT INTO 表名(字段名) VALUES(值列表1),(值列表2),…,(值列表n)

UPDTAE
● 对表中的记录进行更改
● 语法

UPDATE 表名 SET 字段名1=1, 字段名2=2  WHERE子句

● where子句用于限定修改的记录。如果不加where子句,默认修改该表中所有的记录。

DELETE
● 用于删除表中的记录
● 语法

DELETE FROMWHERE子句

表的截断
● TRUNCATE TABLE 表名
● 表的截断,清空表中所有的记录。

TRUNCATE 和DELETE的区别
● 都可以删除表中的记录。delete既可以删除表中所有的记录,也可以按where条件删除一部分记录,而truncate只能清空表中所有的记录。
● delete属于DML,事务可以回滚,truncate属于DDL,是不可以事务回滚。

  1. where子句
    用于条件限制
    关系运算符
    ● = 等于
    ● != <> 不等于
    ● > >=
    ● < <=
    ● 注意:关系运算符除了值的比较,还可以比较日期,hiredate>‘1982-1-1’
    null值的判断
    ● IS NULL
    ● IS NOT NULL
    区间的判断
    ● BETWEEN … AND … 表示取值在某个连续的区间
    ● WHERE sal BETWEEN 3000 AND 5000 表示筛选工资在3000~5000的记录,并且包含3000和5000两个边界。
    ● NOT BETWEEN … AND … 表示取值不在某个连续的区间
    集合的判断(离散)
    ● IN 表示取值在集合中
    ● WHERE deptno IN(10,20,40)
    ● NOT IN 表示取值不在集合中
    逻辑运算符
    ● 在where子句中拼接多个筛选条件
    ● && AND 与
    ● || OR 或
    ● ! NOT 非

出处:东软Java实训

相关文章:

FilenameFilter的使用

使用FilenameFilter过滤掉chapter开头的文件。 1 public class contentFilter implements FilenameFilter {2 public boolean isContent(String file) {3 if (file.startsWith("chapter")){4 return false;5 }else{6 return true;7 }8 …

Qt 串口连接

Qt 串口连接 使用 Qt 开发上位机程序时&#xff0c;经常需要用到串口&#xff0c;在 Qt 中访问串口比较简单&#xff0c;因为 Qt 已经提供了 QSerialPort 和 QSerialPortInfo 这两个类用于访问串口。 使用 QSerialPort Qt 提供的 QSerialPort 类继承于 QIODevice&#xff0c;也…

navicat for mysql如何在更新记录时自动记录更新时间

如图所示 步骤 添加属性recordTime(任意)设置属性类型为timestamps勾选 根据当前时间戳更新默认栏填 CURRENT_TIMESTAMP 效果

ASP.NET Web API自身对CORS的支持:从实例开始

在《通过扩展让ASP.NET Web API支持W3C的CORS规范》中我们通过自定义的HttpMessageHandler为ASP.NET Web API赋予了跨域资源共享的能力&#xff0c;具体来讲&#xff0c;这个自定义的CorsMessageHandler的自由主要体现在如下两个方面&#xff1a;其一&#xff0c;为简单跨域请求…

2021第12届蓝桥杯省赛 -- 填空题:试题B:直线

试题B&#xff1a;直线 问题描述 在平面直角坐标系中&#xff0c;两点可以确定一条直线。如果有多点在一条直线上&#xff0c; 那么这些点中任意两点确定的直线是同一条。 给定平面上 2 3 个整点(x,y)∣0≤x<2,0≤y<3,x∈Z,y∈Z{(x, y)|0 \leq x < 2, 0 \leq y &l…

Markdown快速上手

基本语法 标题 #标题名共六级&#xff0c;依次“#”数量增加&#xff0c;字体减小 加粗文字 哈喽 两个“* ”文字内容 再两个 斜体文字 哈喽 一个“*” 文字内容 再一个 无序列表 -列表内容回车两次退出此编辑模式 有序列表 1.列表内容回车两次退出此编辑模式 插入链接 百度链接…

复杂SELECT语句执行过程

通过FROM子句中找到需要查询的表通过WHERE子句进行分组函数筛选判断通过GROUP BY子句完成分组操作通过HAVING子句完成组函数筛选判断通过SELECT子句选择显示的列或表达式及组函数通过ORDER BY子句进行排序操作 书写时按照这个顺序:5 1 2 3 4 6 出处&#xff1a;东软Java实训

MTD NANDFLASH驱动相关知识介绍

转&#xff1a;http://blog.csdn.net/zhouzhuan2008/article/details/11053877 目录 MTD总概述MTD数据结构 MTD相关层实现MTD&#xff0c;Memory Technology Device即内存技术设备字符设备和块设备的区别在于前者只能被顺序读写&#xff0c;后者可以随机访问&#xff1b;同时&a…

Spring Boot轻松理解动态注入,删除bean

原文地址&#xff1a;http://412887952-qq-com.iteye.com/blog/2348445 ​ 我们通过getBean来获得对象,但这些对象都是事先定义好的,我们有时候要在程序中动态的加入对象.因为如果采用配置文件或者注解&#xff0c;我们要加入对象的话,还要重启服务,如果我们想要避免这一情况就…

mysql数据库常见进阶使用

事务 1&#xff09;mysql中的工作单元&#xff0c;由一个或者多个sql语句组成&#xff0c;“不成功便成仁”&#xff0c;要么全部执行成功&#xff0c;要么全部执行失败&#xff0c;以此来保证数据的一致性。 2&#xff09;事务的回滚&#xff1a;如果事务中的任何一个sql执行失…

[转]web打印实现方案 Lodop6.034 使用方法总结

本文转自&#xff1a;https://www.cnblogs.com/tiger8000/archive/2011/09/19/2181365.html 官文下载&#xff1a; http://mtsoftware.v053.gokao.net/download.html 本地 Lodop6.034 版本下载&#xff1a;/Files/tiger8000/Lodop6.034.rar 假设你的 lodop 打印控件放在你项目的…

图片的另一种展现—将后台图片编码直接展现为图片

1、应用场景 开发过程中&#xff0c;遇到这样的需求&#xff1a;需要将服务器上的图片展现在页面上&#xff0c;但是图片所在服务器不是对外的&#xff0c;图片所在服务器与应用服务器也不在同一台机器上&#xff0c;这时候就需要在开发中先将图片读出来&#xff0c;返回给应用…

电子学会青少年编程等级考试Python一级题目解析12

Python一级题目解析 1、题目&#xff08;2021.03&#xff09; 写一个计算长方形面积的程序&#xff0c;并对每行代码进行相应的注释&#xff0c;要求如下&#xff1a; &#xff08;1&#xff09;采用多行注释&#xff0c;说明程序的功能&#xff08;如下&#xff09;&#x…

Swing基础知识(更新中)

Swing是什么 做桌面应用程序的界面&#xff0c;GUI。 组件和容器&#xff1a;容器是特殊的组件。 布局管理器&#xff1a; 一般放中间容器&#xff0c;用来控制容器中组件的排列方式。 常见&#xff1a; ① FlowLayout 流布局(默认布局) 左上是起点&#xff0c;按组件加入容…

timesten 修改最大连接数

修改完/var/Timesten/sys.odbc.ini里面的connections之后 重启TT&#xff1a;ttdaemonadmin -restart 报错&#xff1a;15019: Only the instance admin may alter the Connections attribute Command> Command> connect dsn的名称;15019: Only the instance admin may a…

青少年编程竞赛交流群第050次活动录播

背景介绍 把电子学会的青少年编程能力等级测评作为游戏的关卡&#xff0c;带着小朋友们升级打怪&#xff0c;这个想法来自于 我从邵慧宁身上得到的启发。 升级打怪&#xff1a; 电子学会考评中心&#xff1a;http://www.qceit.org.cn/bos/default.html 知识内容&#xff1a…

JDBC连接mysql数据的7个步骤(讲解+源码)

步骤 源码 DBUtils类 package com.csu.db;import java.sql.*;public class DBUtils {public static Connection getConnection(){try {//[1/7] 加载JDBC的驱动Class.forName("com.mysql.cj.jdbc.Driver");//[2/7] 定义url连接参数String url "jdbc:mysql://l…

UML:概要设计,用什么画我的类图?

背景 做过需求之后&#xff0c;很少使用 UML 画概要设计&#xff0c;这几天尝试的用了几个工具&#xff0c;最总还是选择了 VisualStudio。 Edraw 详细信息很难编辑&#xff0c;如&#xff1a;签名。 Viso 添加成员太麻烦了。 VisualStudio 图形不支持着色。 备注 使用 VisualS…

RN Exception: Before building your project, you need to accept the license agreements and comp le...

异常 * What went wrong: A problem occurred configuring project :app. > You have not accepted the license agreements of the following SDK components: [Android SDK Platform 23, Android SDK Build-Tools 23.0.1]. Before building your project, you need to acc…

【组队学习】【35期】李宏毅机器学习(含深度学习)

李宏毅机器学习&#xff08;含深度学习&#xff09; 航路开辟者&#xff1a;王茂霖、陈安东&#xff0c;刘峥嵘&#xff0c;李玲领航员&#xff1a;梁家晖航海士&#xff1a;程浩伟、周小要、吴昌广 基本信息 开源内容&#xff1a;https://linklearner.com/datawhale-homepa…

git关键原理简介

集中化版本控制 缺点&#xff1a;1中央仓库得相当稳定&#xff0c;出问题可能每个人那里都没完整备份 2 只能在线使用&#xff08;今天网络已经不是问题&#xff09; 分布式版本控制 改进&#xff1a;每台客户机在本地都维护一份仓库 主要特点 保存数据和文件的主要方式 每个…

项目管理和缺陷跟踪工具Redmine

官网&#xff1a; http://www.redmine.org/ http://demo.redmine.org/ 下载&#xff1a; http://www.redmine.org/projects/redmine/wiki/Download Redmine 是一个开源的、基于Web的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示。同时它又支持多项目管理…

Redis (二)_ jedis的使用

Jedis 是 Redis 官方首选的 Java 客户端开发包 虚拟机设置 查看虚拟机的ipifconfig 将虚拟机的6379端口打开#运行下面的命令 如果是新建的一个新的 文件&#xff0c;你需要先安装 iptables&#xff0c;再打开 vim /etc/sysconfig/iptables## 安装命令 yum install -y iptables-…

【组队学习】【35期】数据可视化(Matplotlib)

数据可视化&#xff08;Matplotlib&#xff09; 航路开辟者&#xff1a;杨剑砺、杨煜、耿远昊、李运佳、居凤霞领航员&#xff1a;武帅航海士&#xff1a;叶庭云、李显、郭棉昇 基本信息 开源内容&#xff1a;https://github.com/datawhalechina/fantastic-matplotlib开源内…

解决日常bug的正确姿势

bug的错误分两种情况&#xff1a; ① 控制台报错->可以定位到错误位置(比较想看到的) ② 控制台不报错却达不到想要的功能->设计代码的逻辑有问题 问题解决方案的优先级(由高到低) ① 自己解决 a. 分析控制台的错误信息描述->定位问题的代码行数->分析该行代码前后…

02-NLP-01-python正则表达式

Python正则表达式 by 寒小阳(hanxiaoyang.mlgmail.com) 正则表达式是处理字符串的强大工具&#xff0c;拥有独特的语法和独立的处理引擎。 我们在大文本中匹配字符串时&#xff0c;有些情况用str自带的函数(比如find, in)可能可以完成&#xff0c;有些情况会稍稍复杂一些(比如说…

【组队学习】【35期】SQL编程语言

SQL编程语言 航路开辟者&#xff1a;王复振、杨煜、闫钟峰、杨梦迪、苏鹏领航员&#xff1a;庞永生航海士&#xff1a;王彦淳、木卷、丁一超 基本信息 开源内容&#xff1a;https://github.com/datawhalechina/wonderful-sql开源内容&#xff1a;https://hub.fastgit.org/da…

神经网络基础知识梳理

神经网络是什么 说明&#xff1a; 我们在机器学习中谈论的神经网络是指“神经网络学习”&#xff0c;即机器学习与神经网络这两个学科领域的交叉部分。 生物学意义上神经网络的最基本成分是神经元&#xff0c;计算机科学中的神经网络的最基本成分是神经元模型。 最广泛的一种…