mysql数据库语法及CRUD

目录

一、数据库基本操作

二、数据库的列类型

三、数据库类型

四、表的操作

五、CRUD



一、数据库基本操作

1、查看所有数据库

show databases;

2、进入数据库

use 数据库名;

3、删除数据库

drop database [IF EXISTS(不存在不报错,警告)] 数据库名;

4、查看表(前提:进入数据库)

describe [IF NOT EXISTS(不存在不报错,警告)]表名;

5、创建数据库

create database [if not exists] 数据库名;

二、数据库的列类型

1、数值

  • int 存储标准数据 4个字节

  • bigint 存储较大的数据 8个字节

  • decimal 字符串形式的浮点数(金融计算等、对数据敏感的行业)

  • tinyint 十分小的数据 1个字节

  • smallint 较小的数据 2个字节

  • mediumint 中等大小的数据 3个字节

  • float 浮点数 4个字节

  • double 浮点数 8个字节

2、字符串

  • varchar 可变字符串 0~65535 String(Java)
  • text 文本串 2^16-1 保存大文件
  • char 字符串固定大小 0~255
  • tinytext 微型文本 2^8-1

3、时间日期

  • datetime YYY-MM-DD HH:mm:ss 最常用的时间格式
  • timestamp 时间戳 1970.1.1到现在的毫秒数
  • data YYY-MM-DD,日期格式
  • time HH:mm:ss ,时间格式
  • year 年份

4、null

  • 没有什么意义,一般不勾非空,一般默认为null

三、数据库类型

1、MYISAM和INNODB

MYISAM INNODB
事务 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间的大小 较小 约为MYISAM的2倍
区别 节约空间,速度较快 安全性高,支持事务处理、多表多用户操作

四、表的操作

1、修改表名

alter table 旧表名 rename as 新表名

2、增加表的字段

alter table 表名 add 字段名 列属性[]

3、修改约束

alter table 表名 modify 字段名 列属性[]

4、字段重命名

alter table 表名 change 旧字段名 新字段名 列属性[]

5、修改约束与字段重命名

修改约束 字段重命名
根据字段名修改字段的列属性,如将int改为varchar,修改表的约束(只能修改约束) 修改字段的名字,必须带列属性,也可以修改约束(可以修改名字和约束)

6、删除表的字段

alter table 表名 drop 字段名

7、删除表

drop table [if exists] 表名

8、外键(凉凉)

现在一般在应用层用代码去写

alter table表名 add constraint fk_外键字段 foreign key(外键字段) references 外链表(外键字段)

必须先删除外链表能链接的表

五、CRUD

1、增加数据(字段与值必须一一对应)(DML语言)

单行增加: 给单行增加数据

语法:insert into 表名(字段1,字段2,字段3,…) values(‘值1’,‘值2’,‘值3’,…);

例:insert into people(id,name,gender) values(‘1’,‘张三’,‘男1’);

在这里插入图片描述

多行增加: 给两行甚至多行增加数据(第一行和第二行用 , 隔开,其他的以此类推)

语法:insert into 表名(字段1,字段2,字段3,…) values(‘值1’,‘值2’,‘值3’),(‘值1’,‘值2’,‘值3’);

例:insert into people(id,name,gender) values(‘1’,‘张三’,‘1’),(‘2’,‘李四’,'1);

在这里插入图片描述

2、修改数据(修改多个数据用 , 隔开)(DML语言)

格式:update 表名 set 列名称=新的值[ , 列名称=新的值] where 列名称=值 [and 列名称=值];

  • set后面为需要修改的列的数据(修改多个数据用逗号隔开)。
  • where后面是条件(多个条件都满足用and,只需要满足一个用or),用于锁定需要修改的那一行(条件判断可以使用运算符)。

操作运算符:

操作符 含义 示例 结果
= 等于 1=2 false
<> 或 != 不等于 1!=2 true
> 大于 1>2 false
< 小于 1<2 true
<= 小于或等于 1<=2 true
>= 大于或等于 1>=2 false
between … and … 在某个范围之内 id between 1 and 2; id在[1,2]之内的都满足
and && 与 必须两个都满足 id=1 &&username=‘张三’ 两个都满足返回true
or || 或 只需要满足一个 id=2 || username=‘李四’ 只要用一个满足返回true

★ 一定要加上条件,否则那一列的所有数据全部更改,如果有一百万条,一百万条都会更改。

例:update student_user set age = 18 where id = 3;
例:update student_user set age = 18 where id = 3 and username = '‘小琦’;

在这里插入图片描述
错误的示范:

在这里插入图片描述

3、删除数据(DML语言)

1.delete

语法:delete from 表名 where 条件; (可以不加条件,但会把所有数据清空,加了条件会删除指定的列)

例:delete from student_user where id = 1;

在这里插入图片描述

2.truncate (专用于清空数据库,表结构和索引约束不会变)

语法:truncate 表名;

3.delete和truncate的区别

delete truncate
相同点 可以删除数据,不会删除表的结构 可以删除数据,不会删除表的结构
不同点 自增数据计算器,不会清零 可以使自增数据计数器清零,重新从1开始
会影响事务 不会影响事务

4.delete删除,重启数据库

  • INNODB引擎:自增重新从1开始(存储在内存之中,断电及失);
  • MYISAM引擎:不会从1开始,继续从上一个自增量开始(存储在文件中,不会因为断电丢失);

4、查询数据(DQL,重点)

DQL(Data Query language):数据查询语言;

  • 所有的查询都是用select
  • 简单和复杂的查询全都可以做
  • 数据库最重要的语言
  • 项目中90%的时间都在使用查询

单表查询语句:select * ( * 表示查询所有的列,也可以查询指定的列) from 表名 where [条件];

例:select username,passwrod form student_user where id = 3;

可以给列数据起一个别名(用 as 关键字):
在这里插入图片描述

多表查询语句:select * ( * 表示查询所有的列,也可以查询指定的列) from 表1,表2 where [条件];

例:select username,passwrod form student_user,people where id = 3;

可以给列数据和表名起一个别名(用 as 关键字):
在这里插入图片描述在这里插入图片描述
MySQL select查询:https://blog.csdn.net/sabstarb/article/details/105080290

回到顶部

发布了61 篇原创文章 · 获赞 0 · 访问量 2164

猜你喜欢

转载自blog.csdn.net/sabstarb/article/details/105059672
今日推荐