• mysql基本操作命令


    1、数据库的分类

    mysql:关系型数据库

    redis:非关系型数据库

    关系型数据库:存储数据的结构是一个二维表格

    表:行 列

    行:记录,用来描述一个对象的信息

    列:字段,用来描述对象的一个属性

    2、常见的关系型数据库

    mysql(中小类型的数据并发请求)

    oracle(大数据量):对事务控制能力较强。事务生效需要提交

    关系型数据库:表里的数据是关联的,表与表之间的数据也是关联的

    非关系型数据库:保存数据不是一张二维表,以键值对来保存数据,key→value

    既然有关联,查询速度相对来说,关系型数据库查询速度更慢一些,非关系型数据库可以支持高并发读写,对海量数据依旧保持着高效率的存储和访问

    (重点)多表关联,最多可以关联几张表?

    最多3张表(太多表查询时间较长,降低数据库查询读写性能)

    3、事务

    (1)事务定义

    在数据库中指的是由一个或多个操作组成的数据操作的序列,这些操作要么全部成功,要么失败一个全部不执行,确保数据一致性和完整性

    (2)事务特点

    ①原子性:数据库的最小工作单元,要么全部执行成功,要么全部不执行。只要有一个操作失败,整个执行序列都会被回滚,即便是完成的操作也会被撤销

    ②一致性:事务执行前后,数据库的完整性约束不能被破坏。只有满足所有的约束条件情况下,事务才能被提交

    ③隔离性:事务的执行是相互隔离的,一个事务的执行不能受到其他执行事务的干扰,并发事务之间互相隔离。防止数据不一致

    ④持久性:事务一旦提交,它所做的所有修改会永久的保存在数据库中。即便系统崩溃,提交的数据也不会丢失

    4、mysql名词

    ①数据库database

    ②表table   行row   列column

    ③索引index

    ④视图view

    ⑤存储过程procedure

    ⑥触发器trigger

    ⑦用户user

    ⑧权限privilege

    5、mysql语句规范

    ①在数据库系统中,sql不区分大小写,但建议大写。语句不区分,表名严格区分大小写

    ②sql语句可以单行书写,也可以多行书写,默认以;结尾

    换行规则:关键词不能跨行或简写

    ③子语句通常位于独立行,可以便于编辑,且提高可读性

    ④字符串只能支持单引号

    6、mysql命名规则

    ①必须以字母开头,后面可以包含数字,只支持三个特殊符号#_$,不要使用mysql的保留字来命名数据库,例如table、select等

    ②数据库名、表名、用户名严格区分大小写

    7、mysql的常用字符类型

    ①int:整数类型。占4个字节,范围很大

    ②char:固定长度的字符串类型。长度可以小于等于此长度

    ③varchar:可变长度的字符串类型。存储可变长度的字符串(有限制的长度,根据类型设定的长度)

    ④float:单精度浮点数类型

    float (m,d)——m表示总位数,d表示小数位

    ⑤double:双精度浮点数类型

    double (m,d)——m表示总位数,d表示小数位

    ⑥decimal:固定精度的小数类型

              decimal (m,d)——m表示总位数,d表示小数位

    float、double、decimal都是浮点数,没什么大区别

    ⑦text:文本类型。存储大文本数据,例如文档或者长字符串

    ⑧image:图像类型。二进制存储图像,例如图片,多媒体

    ⑨date:日期类型

    格式:yyyy-mm-dd(年-月-日)

    ⑪datetime:日期类型

    格式:YYYY-MM-DD HH:MM:SS(年-月-日 时:分:秒)

    ⑫timestamp:日期类型。可以自动更新为当前的时间戳

    格式:YYYY-MM-DD HH:MM:SS(年-月-日 时:分:秒)

    char和varchar的区别:

    char无论是否定义了值都会占用固定长度的字节大小4个

    varchar定义了长度14,实际占用5个,加一个隐藏符,占6个字节数

    举例

    char所占字节数

    varchar所占字节数

    ‘ ’

    4

    1

    ‘ab’

    4

    变成‘ab ’  3

    ‘abcd’

    4

    变成‘abcd ’  5

    优点

    读写速度快

    节省磁盘空间

    都是字符串类型,一定要用单引号

    8、sql语句分类(重点)

    (1)DDL:数据定义语言,用于创建数据库的对象,例如库、表、索引——对表的结构操作

    CREATE创建    DROP删除     ALTER修改

    (2)DML:数据操作语言,对表中的数据进行管理——对表的内容操作

    select查询    update更新    insert添加    delete删除

    (3)DQL:查询数据记录(重点)

    (4)DCL:数据控制语言,设置或更改数据库用户或者用户的权限

    GRANT赋权    REVOKE取消权限

    TCL事务控制语句,管理数据库中的事务

    commit确认提交事务,一旦提交无法回滚ROLLBACK

    savepoint有保存点可以回滚

    alter和update的区别:

    alter用来修改基本表是对表的结构进行操作,比如对字段增加,删除,修改类型

    update用来修改表中的数据,修改某一行某一列的值

    新建

    创建表create table yyy (id int(6) not null,name varchar(20) not null,sccore decimal(3,1),passwd char(4),primary key(id));

    插入表内容insert into yyy values(1,'郭三',60,'1234');

    给用户密码加密

    update yyy set passwd=password('0000') where id = 3;

    insert into yyy values(5,'咩咩',99.9,password('1234'));

    删除表中的内容行delete from yyy where id = 2;

    清空表中内容truncate table yyy;

    删除表中的列 alter table yyy drop column birthday;

    修改表名alter table yyy rename sss;

    修改表的结构alter table yyy add birth date;

    修改列名alter table yyy change birth birthday date;

    修改表的字符串类型alter table yyy modify column name char(30);

    给已存在用户设置生日update yyy set birthday=date('2000-10-10') where id = 5;

    指定唯一条件查询表select * from yyy where id = 3;

    从第3行开始向下查询2行select * from yyy limit 2,2;

    显示前4行select * from yyy limit 4;

    查询null和非null对象(空格也代表一种描述信息,不是null)

    select * from yyy where passwd is null;

    select * from yyy where passwd is not null;

    查询列select score from yyy;

    指定条件去重查询

    select distinct score from yyy;

    select distinct name,passwd from yyy;

    ①登录数据库mysql -u root -p123

    ②查看当前数据库中有哪些库show databases;

    ③查看当前数据库使用的端口号show global variables like 'port';

    新建

    ④创建数据库create database yst;

    ⑤切换库use mysql;

    ⑥查看表show tables;

    ⑦纵向查看表结构describe user\G;

    ⑧切换到自定义的数据库yst中use yst;

    创建表create table yyy (id int(6) not null,name varchar(20) not null,sccore decimal(3,1),passwd char(4),primary key(id));

    查询表的结构desc yyy;

    NULL什么都没有,对象没有任何描述信息

    空格——也是字符

    ⑨插入表内容insert into yyy value(1,'郭三',60,'1234');

    或者insert into yyy values(1,'郭三',60,'1234');

    ⑩给用户密码加密(用唯一值指定对象)

    方法1:update yyy set passwd=password('0000') where id = 3;

    方法2:insert into yyy values(5,'咩咩',99.9,password('1234'));

    出现此错误,因为加密后的密码是一长串字符串,超过加密前设定的passwd字符串长度,需要增加passwd字符串长度

    ⑪删除表中的内容行delete from yyy where id = 2;

    ⑫删除表中的列 alter table yyy drop column birthday;

    ⑬清空表中内容truncate table yyy;

    ⑭修改表名alter table yyy rename sss;

    ⑮修改表的结构alter table yyy add birth date;

    ⑯修改列名alter table yyy change birth birthday date;

    ⑰修改表的字符串类型alter table yyy modify column name char(30);

    ⑱给已存在用户设置生日update yyy set birthday=date('2000-10-10') where id = 5;

    ⑲指定唯一条件查询表select * from yyy where id = 3;

    ⑳从第3行开始向下查询2行select * from yyy limit 2,2;

    ㉑显示前4行select * from yyy limit 4;

    ㉒查询null和非null对象(空格也代表一种描述信息,不是null)

    select * from yyy where passwd is null;

    select * from yyy where passwd is not null;

    ㉓查询列select score from yyy;

    ㉔指定条件去重查询select distinct score from yyy;

    select distinct name,passwd from yyy;

    删库!!!禁用!!!坐牢!!!

  • 相关阅读:
    linux入门2—文件系统
    Istio(二):在Kubernetes(k8s)集群上安装部署istio1.14
    docker 基本操作
    零基础Linux_19(进程信号)产生信号+Core_Dump+保存信号
    springboot线程池创建与使用
    ApplicationListener和@EventListener
    驰援 | 1月28日送达5万只口罩,能链科技收到医院感谢信
    P02014018李俊豪信息论作业
    微信登陆报redirect_uri 参数错误
    CF1381D The Majestic Brown Tree Snake
  • 原文地址:https://blog.csdn.net/2303_79207100/article/details/134080407