iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySql笔记(一)
  • 441
分享到

MySql笔记(一)

MySql笔记(一) 2020-06-04 22:06:45 441人浏览 无得
摘要

目录 Mysql笔记(一) 每天给自己一个希望,努力做好自己,不为明天烦恼,不为昨天叹息。当梦想还在,告诉自己:努力,就总能遇见更好的自己! my

MySql笔记(一)

目录

每天给自己一个希望,努力做好自己,不为明天烦恼,不为昨天叹息。当梦想还在,告诉自己:努力,就总能遇见更好的自己!

mysql笔记(一)

1、创建数据库以及删除

创建数据库语法:(命令行窗口操作)

CREATE DATABASE DATABASENAME

示例:创建名为MysqlTest的数据库

CREATE DATABASE MySQLTest;

删除数据库语法:(命令行窗口操作)

DROP DATABASE DATABASENAME

示例:删除名为MySQLTest的数据库

DROP DATABASE MySQLTest;

2、Sql常用数据类型

整数类型:tinyint(微小的整数),smallint(小的整数),int(普通的整数),bigint(大的整数)
存储的空间不同:tinyint只有一个字节,smallint有两个字节,int有四个字节,bigint有8个字节

小数点的数据类型:定点数(decimal(p,s))和浮点数float(p,s)四个字节,double(p,s)八个字节。
定点数的小数点是固定的,而浮点数的小数点是不固定的,区别:定点数的小数点是固定的所以他的小数精度准确,
而浮点数的小数点是不固定的,所以浮点数的小数点的精度没有定点数的精度准确度高。但是浮点数表示的范围更大

日期/时间类型:date(某个日期,不包含时间), time(一天当中某一个点数) datetime(连日期带时间)

文本类型:char(固定长度的文本) ,varchar , text(是存储大文本的数据类型)

二进制的数据类型:bit(如果使用了bit类型,系统就会将数据存储为二进制的形式)

3、创建数据表以及范式

(1.数据库设计基本步骤(分四个阶段):
1.需求分析阶段:分析客户的业务和数据处理需求
2.概要设计阶段:将需求设计成数据库的E-R模型图,确认需求信息的正确和完整
3.详细设计阶段:将E-R模型图转换为多张表,进行逻辑设计,并应用数据量设计的三大范式进行审核
4.代码编写阶段:选择具体数据库进行物理实现,并编写代码实现前端应用

例子:
模型QQ游戏大厅项目
1.需求分析:系统要记录哪些信息?中国象棋,扑克游戏和玩家的信息,分数信息等
2.数据表:游戏表,玩家表,分数表
3.每个表的字段
游戏表 玩家表 分数表
1.编号 1.QQ号 1.游戏编号
2.名称 2.昵称 2.玩家QQ
3.类型 3.性别 3.得分
4.难度 4.生日
5.手机号

​ 将这些数据用E-R做一个模型实体关系图

用长方形符号表示实体,一般是名词
用圆形符号表示属性,一般是名词
用三角形符号表示关系,一般是名词

2 范式:设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,
这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小

3 Dr E,F,codd最初定义了规范化的几个级别,范式用以定义具有最小的冗余的表结构
第一范式(1st NF)
如果每列都说不可再分的最小数据单元(也称为最小的原子单元),侧满足第一范式(1NF)
第一范式的目标是确保每列的原子性

示例:
    玩家QQ    地址                         玩家QQ  国家   城市
    12301    中国北京   -》修改为   12301  中国   北京
    12302    美国纽约                       12302  美国   纽约

第二范式(2nd NF)
如果一个关系满足1NF,并且除了主键以为的其他列,都完全依赖于该主键,侧满足第二范式(2NF)
第二范式要求每个表只描述一件事情

示例:                                                 游戏
    游戏                                 字段            值
    字段           值                    游戏编号        1
    游戏编号       1             游戏名称       3D桌球
    游戏名称      3D桌球   -》修改为     游戏类型        体育  
    游戏类型      体育             游戏难度         1
    游戏难度       1               
    胜者得分      100                              难度奖励
                         字段            值 
                         游戏难度        1
                         胜者得分       100

第三范式(3rd NF)
如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,侧满足第三范式(3NF)
第三范式要求表中不存在冗余字段

示例:             
    分数表                                   分数表                                  
字段           值            字段             值
游戏编号       1                         游戏编号           1 
玩家QQ        12301        -》修改为     玩家QQ            12301     
玩家昵称      悟空              得分             2760
得分          2760  

(2.使用客户端创建数据表
步骤:
1.打开链接,选择数据库
2.右键选择新建表
3.填写表各个字段的名称,数据类型,勾选是否允许空
4.保存表

(3.使用命令行的方式创建数据表
步骤:
1.从命令行窗口登录MySQL
2.使用CREATE TABLE语句创建表
语法公式:

CREATE TABLE table_name{
        col_name1 col_type[not null].
        col_name1 col_type[not null].
        ...
}

4、为队列添加约束

(1.主键约束
1.约束的概念和作用(约束就是检查官,检查数据是否有重复的内容)
2.主键约束作用:保证实体完整性
3.PRIMARY KEY是检查两条表中的语句是否有重复
示例:为玩家表的玩家QQ列添加主键约束

    create table users(
    user_qq varchar(20) not null PRIMARY KEY,
    user_name varchar(50) not null,
    user_sex char(2) not null,
    user_birthday date not null,
    user_mobile char(11) not null
)

(2.外键约束
1.外键约束作用,保证引用完整性
2.references关键字的意思是引用的意思。
示例:为分数表添加外键约束

create table scores(
    user_qq varchar(20) not null
    references users(user_qq),
    gno int not null,
    score int not null 
)

(3.检查约束
1.检查约束作用,保证域完整性
2.check()关键字的意思是游戏编号等要大于0,否则错误
例如:为游戏表添加检查约束

    create table games(
    gno int not null check(gno>0),
    gname varchar(50) not null,
    gtype varchar(20) not null 
)

(4.默认约束
1.作用:保证域完整性
2.DEFAULT"男"

(5.自增列
1.作用:保证实体完整性
2.AUTO_INCREMENT是自增列的关键字
例:为游戏表添加自增列

CREATE TABLE Games(
    GNO INT NOT NULL AUTO_INCREMENT,
    GName varchar(50) NOT NULL,
    GType varchar(20) NOT NULL
}

5、查看表数据

查看表的基本结构
语法:DESCRIBE/DESC TABLE_NAME

结果含义:
    Field:字段名
    Type:字段类型
    NULL:是否可以为空
    Key:是否编制索引
    Default:默认值
    Extra:附加信息,如自增列

查看表的详细结构
语法:SHOW CREATE TABLE TABLE_NAME
格式化结果:SHOW CREATE TABLE TABLE_NAMEG

6、修改数据表

修改表名
语法:ALTER TABLE OLD_NAME RENAME TO NEW_NAME

示例:
    ALTER TABLE GAMES RENAME TO QQ_GAME

修改字段名
语法:ALTER TABLE TABLE_NAME CHANGE OLD_NAME NEW_NAME NEW_TYPE

示例:
    ALTER TABLE GAMES CHANGE GNO GAME_ID VARCHAR(20)

修改字段数据类型
语法:ALTER TABLE TABLE_NAME MODIFY COL_NAME NEW_TYPE

示例:
    ALTER TABLE GAMES MODIFY GNO VARCHAR(20)

添加和删除字段
添加字段语法:ALTER TABLE TABLE_NAME ADD NEW_COL_NAME NEW_TYPE
删除字段语法:ALTER TABLE TABLE_NAME DROP COL_NAME

增补约束
添加主键语法:ALTER TABLE TABLE_NAME ADD CONSTRaiNT CON_NAME PRIMARY KEY(COL_NAME)

示例:ALTER TABLE USERS ADD CONSTRAINT PK_USERS_USERQQ PRIMARY KEY(USERQQ)

添加外键语法:ALTER TABLE F_TABLE ADD CONSTRAINT  CON_NAME FOREIGN KEY(F_COL)REFERENCES M_TABLE(M_COL)

示例:ALTER TABLE SCORES ADD CONSTRAINT FK_SCORES_GAMES FOREIGE KEY(GNO)REFERENCES GAMES(GNO)

添加检查约束语法:ALTER TABLE TABLE_NAME ADD CONSTRAINT CON_NAME CHECK(EXP)

示例:ALTER TABLE GAMES ADD CONSTRAINT CK_GAMES_GNO CHECK(GNO>0)

添加默认值语法:ALTER TABLE TABLE_NAME ALTER COL_NAME SET DEFAULT VALUE

示例:ALTER TABLE USERS ALTER USER_SEX SET DEFAULT'男'

7、删除数据

删除无关联数据表
语法:DROP TABLE [IF EXISTS] TABLE_NAME1,TABLE_NAME2

示例:DROP TABLE SCORES

删除有关联数据表
先解除关联关系语法:ALTER TABLE F_TABLE_NAME DROP FOREIGN KEY CON_NAME
删除表:DROP TABLE TABLE1,TABLE2

8、插入数据

为所有列都插入值
语法:INSERT[INTO] TABLE_NAME VALUES(V1,V2...Vn)
特点--列值同数,列值同序

示例;INSERT INTO USERS VALUES('12301'.'周天'.'男','1982-02-01','1371111222')

为特定列插入值
语法:INSERT[INTO] TABLE_NAME(COL1,COL2...COLn)VALUES(V1,V2...Vn)
特点:指定顺序,列值对应

示例:INSERT INTO USERS(USER_QQ,USER_NAME,USER_MOBILE)VALUES('20020106','叮当','13834561278')

一次性插入多条记录
语法:INSERT[INTO] TABLE_NAME[(COL1,COL2...COLn)]VALUES(V1,V2...V1n),(V21,V22...V2n),(V23,V23...V3n)

示例:INSERT[INTO] USERS(USER_QQ,USER_NAME,USER_BIRTHDAY,USER_MOBILE)
    VALUES('20020106'.'周天','1980-07-08','1371111555'),('20025564'.'立飞','1983-09-08','1382111555')

9、修改数据

修改全部数据
语法:UPDATE TABLE_NAME SET{COL_NAME=EXPRESSioN}[...n]
示例1:把所有玩家的性别都改为男性
UPDATE USERS=SET USER_SEX="男"

示例2:把所有玩家的所有游戏分数都增加100分
    UPDATE SCORES SET SCORE=SCORE+100

修改特定数据
语法:UPOATE TABLE_NAME SET{COL_NAME=EXPRESSION}[...n]
WHERE CONDITION_EXPRESSION

示例:把QQ为'12302'的玩家性别都改为女性
        UPDATE USERS SET USER_SEX='女'
        WHERE USER_QQ='12302'
#### 10、删除数据

使用DELETE命令删除数据表中的数据
语法:DELETE[FROM] TABLE_NAME
[WHERE CONDITION_EXPRESSION]

示例:删除玩家表中所有女性玩家的信息
        DELETE FROM USERS WHERE USER_SEX='女'

使用TRUNCATE TABLE删除数据
语法:TRUNCATE TABLE TABLE_NAME

示例:清空分数表中所有信息
        TRUNCATE TABLE SCORES

11、删除数据

查询和提取数据的过程
1.客户端与服务器交互

​ 2.语法:SELECT COL1,COL2,...COLn
​ FROM TABLE1,TABLE2...TABLEn
​ [WHERE CONDITIONS][GROUP BY GROUP_BY_LIST]
​ HAVING CONDITIONS[ASC|DESC]]

​ 3.SELECT的意思是:我要查询或者显示出哪几个列的结果
​ FROM的意思是:这些列来源于哪些表
​ WHERE的意思是:符合部分条件的语句就写上WHERE
​ GROUP BY的意思是:把查询的结果进行分组
​ HAVING的意思是:统计结果
​ ORDER BY的意思是:把查询的结果进行排序

12、删除数据

查询表的全部行和列

示例:查询玩家表中全部的行和列
    SELECT USER_QQ,USER_NAME,USER_SEX,USER_BIRTHDAY,USER_MOBILE 
    FROM USERS

​ 简便的查询表的全部行和列的方法
​ 语法:SELECT *FROM USERS

查询表的部分列
示例:从玩家表中查询玩家QQ和昵称
SELECT USER_QQ,USER_NAME FROM USERS

别名的使用
示例:从玩家表中查询玩家QQ和昵称,并显示为“玩家QQ”和“玩家昵称”
SELECT USER_QQ AS"玩家QQ",USER_NAME AS"玩家姓名"
FROM USERS

DISTINCT关键字
作用:消除结果集中的重复行
示例:显示参与了游戏的玩家QQ,要求参与了多个游戏的玩家不重复显示QQ号
语法: SELECT DISTINCT USER_QQ FROM SCORES

LIMIT关键字
作用:指定结果集中数据的显示范围
示例:显示玩家表中第三至第5条数据
语法:SELECT * FROM USERS LIMIT2,3

您可能感兴趣的文档:

--结束END--

本文标题: MySql笔记(一)

本文链接: https://www.lsjlt.com/news/3828.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql自联去重的一些笔记记录
    我先把功能场景简要阐述下: 数据行字段如下: name started_at type 在这张表里,name有重复值 现在需要在type确定的情况下,筛选出一个列表,满足,name不重复,找出的记...
    99+
    2024-04-02
  • python笔记(一)
    字符串处理单双引号一样.title():将每个单词的首字母变为大写,其余小写(不管原来是什么样).upper():将字符串中所有字母变为大写.lower():将字符串中所有字母变为小写.strip():删除行首和行末的空白(空格和制表符)(...
    99+
    2023-01-31
    笔记 python
  • flask笔记(一)
    1、第一个flask项目 # 首先你要安装flask这个模块 pip install flask # 安装好了之后,直接新建一个py文件,开始写最简单的flask项目了 from flask import Flask app = F...
    99+
    2023-01-30
    笔记 flask
  • MySQL 学习笔记
    😀😀😀创作不易,各位看官点赞收藏. 文章目录 MySQL 学习笔记1、`DQL` 查询语句1.1、基本查询1.2、函数查询1.2.1、单行函数1...
    99+
    2023-10-01
    mysql 学习 笔记
  • mysql学习笔记(一)---MySQL 5.6.21的安装和配置
    【开发环境】物理机版本:Win 7旗舰版(64位)MySQL版本:5.5.40MSI版(64位)一、数据库类型:(1)关系数据库(2)面向对象数据库(3)XML数据库现在的主流是关系型数据库。 二...
    99+
    2024-04-02
  • NumPy 学习笔记(一)
    NumPy:   1、NumPy 是一个功能强大的第三方库(需要自己安装),主要用于对多维数组执行计算;      它提供了大量的库函数和操作,可以帮助程序员更轻松地进行数值计算   2、可以和另外两个第三方库 SciPy 和 Matpl...
    99+
    2023-01-31
    学习笔记 NumPy
  • NumPy学习笔记(一)
    # NumPy### 安装- 通过安装Anaconda安装NumPy,一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项,包含了大量的科学计算相关的包,其中就包括NumPy- 通过pip安装, ...
    99+
    2023-01-31
    学习笔记 NumPy
  • mysql分区表笔记
    mysql分区表    mysql分区表是一个独立的逻辑表,但是底层由多个物理字表组成。    对分区的请求,都会通过句柄对象转化成对存储引擎接口的调用。所以分区对于...
    99+
    2024-04-02
  • 小C的MySQL学习笔记(一):MySQL的安装部署
    个人MySQL学习笔记第一章,记录MySQL在linux操作系统下的安装流程 操作系统版本:Centos 6.5 数据库版本:MySQL 5.6/5.7 一、MySQL安装包的下载 登...
    99+
    2024-04-02
  • python进阶笔记【2】 --- 一
    我是在学习cs231n的assignment3的课程,发现里面的代码大量频繁出现了这个库,那我就很奇怪了,为什么有个future这个奇怪名字的库会出现呢?到底这个库又有什么用?下面就让我为你揭开。 总所周知,python3.x和pyt...
    99+
    2023-01-31
    进阶 笔记 python
  • python3 爬虫笔记(一)beaut
    很多人学习python,爬虫入门,在python爬虫中,有很多库供开发使用。 用于请求的urllib(python3)和request基本库,xpath,beautiful soup,pyquery这样的解析库。其中xpath中用到大量的...
    99+
    2023-01-30
    爬虫 笔记 beaut
  • MySQL笔记—SQL运算符
    目录1.算术运算符2.比较运算符具体关键字3.逻辑运算符4.位运算符1.算术运算符 +-*/或DIV%或MOD   /或DIV select 100/5,100 ...
    99+
    2024-04-02
  • 超全MySQL学习笔记
    目录MyISAM和InnoDB性能下降SQL慢的原因:Mysql执行顺序SQLJoin索引索引的优劣1.优势2.劣势索引分类创建删除查看mysql索引结构那些情况建索引哪些情况不要建...
    99+
    2024-04-02
  • MySQL笔记-多表查询
    本文标签 : 多表查询  事务四大特性  并发事务问题  事务隔离级别 文章目录 目录 文章目录 一、多表查询 1.多表关系 2.多表查询概念  3.多表查询的分类  4.内连接  5.外连接 6.自连接  ...
    99+
    2023-09-02
    mysql sql笔记 多表查询 事务
  • 【K210】K210学习笔记一——sensor
    【K210】K210学习笔记一——sensor 前言sensor的配置模块导入模块配置模块各配置解释 完整源码 前言 本人大四学生,电赛生涯已经走到尽头,一路上踩过不少坑,但运气也不错...
    99+
    2023-08-31
    学习 python 人工智能 单片机 图像处理
  • Python基础入门笔记(一)
    前言(认识Python) 既然学习 Python,那么至少得了解下这门语言,知道 Python 代码执行过程吧。Python 的历史有兴趣的百度百科下就有,这个不多说了。 1、我们先来了解下什么是解释型语言和编译型语言? 计算机...
    99+
    2023-01-31
    入门 基础 笔记
  • DB2 offline reorg的一点笔记
    今天陪同新来的DB2 DBA上线,他问了我几个问题,我总结了一下,虽然很简单,但是貌似我多年之前也遇到过,疑惑过。 对数据库的几个千万行级别大表加了列,做了offline reorg操作,几分钟以后,没有做...
    99+
    2024-04-02
  • 第一周Python学习笔记
     Python 基本语法: ①  Python程序的格式:1.用代码高亮来标识函数丶语句等等 本身的代码高亮并没有实际的意义,只是用来辅助编程人员和阅读人员 更好的识别    2.程序以缩进来标识语句,缩进用来标识代码间的层次关系,缩进的...
    99+
    2023-01-30
    学习笔记 第一周 Python
  • Django 笔记(六)mysql增删改
    注:增删改查表数据在 views.py 内 添加表数据:   删表数据:    改表数据:    查表数据:   常用的查询方法:   常用的查询条件: 相当于SQL语句中的where语句后面的条件 语法:字段名__规...
    99+
    2023-01-30
    笔记 Django mysql
  • 尚硅谷MySQL学习笔记
    MySQL笔记目录 一、MySQL数据库基础篇大纲 1.数据库概述与MySQL安装篇 第01章:数据库概述第02章:MySQL环境搭建 2.SQL之SELECT使用篇 ...
    99+
    2023-09-08
    mysql 数据库 sql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作