首页 > 数据库 >MYSQL

MYSQL

时间:2024-01-05 17:02:31浏览次数:39  
标签:varchar 数据库 约束 MYSQL TABLE 主键 255

  • DB :“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此 独立的数据集合。

  • DB类型

    • 关系数据库 :MySQL,Oracle数据库

    • 非关系型数据库:BigTable(Google)

  • DBA : 数据库管理员

  • DBMS : 数据库管理系统:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使 用和维护数据库,简称DBMS。

  • DBAS : 数据库应用系统:数据库应用系统(DBAS)是在数据库管理系统(DBMS)支持下建立的计算机应用系统,简写为

    DBAS。

  • SQL : 结构化查询语言:

  • 数据库中以表为组织单位存储数据。表中有,我们叫做记录字段

SQL语句

  • SQL分类:

    • 数据定义语言:简称DDL(Data Definition Language),用来定义数据库中的对象:数据库,表,列等。关键字:create,alter,drop, show等

    • n 数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等

    • 数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户。

    • n 数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等

  • 1.1.1 SQL通用语法

    • SQL语句可以单行或多行书写,以分号结尾

    • 可使用空格和缩进来增强语句的可读性

    • l MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。例如:SELECT * FROM user。

    • 同样可以使用/**/的方式完成注释 在Sqlyog中也可以是 #或者- -注释一行

    • l MySQL中的我们常使用的数据类型如下

DDL之数据库操作

  • 创建数据库(增):

    • create database 数据库名 character set 字符集;

  • 查看数据库(查)

    • show databases;

    • show create database 数据库名;

  • 删除数据库(删)

    • select database();

1.1 DDL之表操作:table

  • 创建表

    • create table 表名(

      字段名 类型(长度) [约束],

      字段名 类型(长度) [约束],

      ...

      );

      类型:

      varchar(n) 字符串

      int 整形

      double 浮点

      date 时间

      timestamp 时间戳

      约束(后期讲解,现在先知道):

      primary key 主键,被主键修饰字段中的数据,不能重复、不能为null。

    • 例如:

      # 创建分类表

      CREATE TABLE category (

      cid VARCHAR(100) primary key, # 分类ID

      cname VARCHAR(100) # 分类名称

      );

  • 查看表

    • show tables;

    • desc 表名;

  • 删除表

    • drop table category;

  • 修改表(只改名字)

    • rename table 表名 to 新表名;

    • RENAME TABLE category TO category2;

DDL之表结构操作:列

  • 对表的结构进行操作(主要是操作表中的列)

    • alter table 表名 add 列名 类型(长度) [约束]

    • ALTER TABLE category ADD description VARCHAR(20);

    • alter table 表名 drop 列名

    • ALTER TABLE category DROP description;

    • alter table 表名 change 旧列名 新列名 类型(长度) 约束

    • ALTER TABLE category CHANGE description description2 VARCHAR(30);

    • alter table 表名 modify 列名 类型(长度) 约束;

    • ALTER TABLE category MODIFY description2 VARCHAR(50) NOT NULL;

  • 约束

    • primary key 主键,值唯一,并且不能为空

    • auto_increment 自动增长,数据可以由MySQL系统自己维护

DML数据操作语言

  • 插入表记录:insert(增)

    • insert into 表 (字段1,字段2,字段3..) values (值1,值2,值3..);

    • 值与字段的数据类型必须对应,个数相同,类型相同

    • 值的数据大小必须在字段的长度范围内

    • 除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号)

    • 如果要插入空值,可以不写字段,或者插入null

    • Into 不是必须的,可以省略不写

  • 更新表记录:update(改)

    • update 表名 set 字段名=值,字段名=值,...;

    • 列名的类型与修改的值要一致.

    • 修改值得时候不能超过最大长度.

    • 除了数值类型外,其它的字段类型的值必须使用引号引起

  • 删除记录:delete(删)

    • delete from 表名 [where 条件];

DQL数据查询语言

  • 语法:select [distinct] * | 列名1,列名2 from 表 [where 条件]

    注 :

    [] 可有可无

    | 或者

    • select * from product;

    • SELECT * FROM product WHERE price != 800

  • 排序

    • SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC;

      ASC 升序 (默认)

      DESC 降序

    • SELECT DISTINCT price FROM product ORDER BY price DESC

  • 聚合

    • count:统计指定列不为NULL的记录行数;

    • sum,max,min,avg

    • SELECT COUNT(*) FROM product;

  • 分组

    • SELECT 字段1,字段2… FROM 表名GROUP BY分组字段 HAVING 分组条件;

    • having与where的区别:

      • having是在分组后对数据进行过滤.where是在分组前对数据进行过滤

      • having后面可以使用统计函数过滤数据where后面不可以使用统计函数。

  • 分页查询

    • SELECT 字段1,字段2... FROM 表明 LIMIT M, N ;

      M: 整数,表示从第几条索引开始,计算方式 (当前页-1)*每页显示条数

      N: 整数,表示查询多少条数据

    • SELECT 字段1,字段2... FROM 表明 LIMIT 0,5 ;

SQL约束

  • 数据完整性

    • 实体完整性: 对数据行的约束,比如:主键约束,唯一约束

    • 域完整性: 对数据列的约束,比如:该列的数据类型, 默认约束,非空约束

    • 引用完整性: 外键约束(多表的关系)

  • 主键约束

    • 主键必须是唯一的值。

      主键列不能是 NULL 值。

      每个表都应该有且只能有一个主键。

    • 添加主键约束

    • 方式一:创建表时,在字段描述处,声明指定字段为主键:Id_P int PRIMARY KEY,

    • 方式二:创建表时,在constraint约束区域,声明指定字段为主键:

    • CREATE TABLE Person100(

      FirstName varchar(255),

      LastName varchar(255),

      Address varchar(255),

      City varchar(255),

      CONSTRAINT pk_PersonID PRIMARY KEY (FirstName,LastName)

      );

    • 方式三:创建表之后,通过修改表结构,声明指定字段为主键:

  • 删除主键约束

    • ALTER TABLE Person102 DROP PRIMARY KEY ;

  • 自动增长列

    • P_Id int PRIMARY KEY AUTO_INCREMENT,

  • 非空约束NOT NULL

    • LastName varchar(255) NOT NULL,

    • 添加非空约束 ALTER TABLE student MODIFY LastName varchar(255) NOT NULL

  • 唯一约束

    • UNIQUE 约束唯一标识数据库表中的每条记录。

      UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。

      PRIMARY KEY 拥有自动定义的 UNIQUE 约束。

      请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

    • Id_P int UNIQUE

    • CREATE TABLE Person13(

      Id_P int,

      LastName varchar(255) NOT NULL,

      FirstName varchar(255),

      Address varchar(255),

      City varchar(255),

      CONSTRAINT UNIQUE (Id_P)

      ) ;

    • ALTER TABLE Persons4 ADD [CONSTRAINT 名称] UNIQUE (Id_P)

  • 删除唯一约束

    • ALTER TABLE Person DROP INDEX 约束名称

  • 默认约束

    • address varchar(255) DEFAULT '北京',

    • ALTER TABLE Person MODIFY Address VARCHAR(255) DEFAULT '北京'

标签:varchar,数据库,约束,MYSQL,TABLE,主键,255
From: https://www.cnblogs.com/tonnpo/p/17947630

相关文章

  • Centos7安装mysql5.7
    Centos7安装mysql5.71、查看rpm包rpm-qa|grepmysql若有可用rpm-e卸载查找是否有mysql:find/-namemysql检测系统是否自带mysqlrpm-qa|grepmysql如果是,则使用下面命令进行删除:rpm-e--nodeps‘上一步查找的名称’删除成功后,查询所有Mysql对应的文件夹whereis......
  • MYSQL函数
    MYSQL中的函数包括:数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数和加密函数等其他函数。 一、数学函数主要的数学函数有:绝对值函数、三角函数(包含正弦函数、余弦函数、正切函数、余切函数等)、对数函数、随机数函数等。在有错误产生时,数学函数将返回空......
  • Ubuntu 22.04.1 LTS 编译安装 mysql5.6
    在Ubuntu22.04下安装mysql5.6,试了很多方法都失败了,最后编译安装成功了。1、看下有没有其它版本的mysql,有的话就卸载掉#查询dpkg-l|grepmysql#如果有则卸载apt-getremove--purge<mysql程序名称> 2、安装依赖apt-getinstallgccapt-getinstallg++apt-get......
  • MySQL 查询执行计划
    目录查询计划查询计划输出格式解释输出列列格式idselect_typetypepossible_keyskeyref查询计划根据表、列、索引的详细信息以及子句中的WHERE条件不同,MySQL优化器会考虑多种技术来有效地执行SQL查询中涉及的查找。例如,对大表进行查询可能无需读取所有行;涉及多个表的......
  • mysql备份导入
    mysqldump-uroot-p--single-transaction--master-data=2--flush-logs--flush-privileges--routines=TRUE--triggers--databasesperf>/root/backup/perf.sql#有可能会有警告mysqldump-uroot-p--single-transaction--master-data=2--flush-logs--flush-priv......
  • MySQL8.0 PG数据库 SQLServer Oracle数据库 数据库忘记密码 处理方法
    MySQL8.0分为rpm方式和tar.gz安装方式不同而不同需要修改/etc/my.conf配置文件.注意如果是rpm包的话就在这个路径下面修改增加内容skip-grant-tables注意修改完需要重启数据库rpm包安装的方式重启方法为:systemctlrestartmysqld然后可以无密码登录数据mysql-uro......
  • mysql学习
    一、索引数据结构mysql数据存储在磁盘,每次遍历一个节点,相当于与磁盘进行一次IO,加载到内存。二叉树:当存储递增类的索引,退化成链表红黑树(hashmap底层):自我平衡旋转,实际情况可能放几百万记录,如果查叶子节点,树的高度太高,仍然进行IO很多,效率低B树:每个节点初始化分配大一些,可以存储多......
  • MySQL高性能优化规范建议总结
    1、优先选择符合存储需要的最小的数据类型,因为存储字节越小,占用也就空间越小,性能也越好。a.某些字符串可以转换成数字类型存储比如可以将IP地址转换成整型数据。b.对于非负型的数据(如自增ID,整型IP,年龄)来说,要优先使用无符号整型来存储。c.小数值类型(比如年龄、状态表......
  • MySQL三大日志,mvcc、DateTime 类型等
    1、MySQL事务隔离级别详解解决幻读的方法解决幻读的方式有很多,但是它们的核心思想就是一个事务在操作某张表数据的时候,另外一个事务不允许新增或者删除这张表中的数据了。解决幻读的方式主要有以下几种:将事务隔离级别调整为 SERIALIZABLE 。在可重复读的事务级别下,给事务操......
  • 解决Django Elastic Beanstalk与RDS MySQL连接问题
    根据错误消息,问题在于您的ElasticBeanstalk环境中缺少MySQL配置。这可能是由于缺少所需的软件包或依赖项导致的。解决此问题的步骤如下:在您的项目根目录中创建一个名为.ebextensions的文件夹。在.ebextensions文件夹中创建一个名为packages.config的文件,并在其......