mysql数据库基础知识总结

mysql数据库基础知识总结mysql数据库基础知识总结一、基础常用命令1.创建命令createuser‘用户名’@‘ip’identifiedby‘密码’;创建用户dropuser用户名@ip删除用户showdatabases;查数据库showtables;看表createdatabase数据库名defaultcharsetutf8;创建数据库createtable表名(列名数据类型约束···,列名数据类型约束···)engine=in

大家好,又见面了,我是你们的朋友全栈君。

mysql数据库基础知识总结

一、基础常用命令
1.创建命令

create user ‘用户名’ @‘ip’ identified by ‘密码’; 创建用户
drop user 用户名@ip 删除用户
show databases; 查数据库
show tables; 看表
create database 数据库名 default charset utf8; 创建数据库
create table 表名(列名 数据类型 约束···,列名 数据类型 约束···)engine=innodb default charset=utf8 创建表
其中数据类型种类 数字(int,tinyint,smallint,float,double),字符串(char(个数)varchar(个数))时间(DATE,TIME,DATETIME),枚举enum(值只能是枚举中的元素),集合set(值只能是结合元素的组合)

2.查表命令
条件查询

select * from 表名;
select 列名···from 表名;
select 列名 from 表名 where 列名(id等) >/</!= value;
select 列名,常量 from 表名; 增加一个常量列
select 列名 from 表名 where 列名 in/not in/between and value;
select 列名 from 表名 where 条件1 and 条件2;
特殊的:select 列名 from 表名 where 列名 in (select 列名(只能一列) from 表名);
select 列名 from 表名 where 列名 like ‘xx%’/’%xx’/“xx_”; 查询以xx开头/xx结尾 ,%代表任意位,_代表一位
select xx,(select xx from …) from … 查询条件做常量值

分页

select 列名 from 表名 limit num; 显示num个
select 列名 from 表名 limit num1,num2;从num1后取num2行数据,num1是起始位置,num2是个数
select 列名 from 表名 limit num1 offset num2;从num2后取num1行数据,num2是起始位置,num1是个数

排序

select * from 表名 order by 列名 asc;升序
select * from 表名 order by 列名 desc;降序
select * from 表名 order by 列名1 desc 列名2 asc; 首先遵循列1降序,遇到相同数据时,升序
select count/sum/max/min/avg(列名1),列名2 from 表名 group by 列名(通常是列名2);

分组

select count/sum/max/min/avg(列名1),列名2 from 表名 group by 列名(通常是列名2)having 条件;分组操作后筛选

连表

select * from 表1 left join 表2 on 表1.列名=表2.列名; 左连接
select * from 表1 right join 表2 on 表1.列名=表2.列名; 右连接
select * from 表1 inner join 表2 on 表1.列名=表2.列名; 内连接
注意:如果超过3个表联合操作,如果其中两个表操作时已经改变了表结构,应该将这两个表操作的结果作为一个临时表再与第三个表联合操作。

3.删除,修改,插入命令
插入

insert into 表名(列名1,列名2···) values(值1,值2···),(值1,值2···),(值1,值2···); 插入值
insert into 表名1(列名) select 列名 from 表2; 在表1中插入表2中数据

修改

update 表名 set 列名1=value1,列名2=value2 where 条件1 [and/or 条件2];

删除

delete from 表名; 清除表(如果有自增id,id 不会重新开始)
delete from 表名 where 条件; 清除特定数据
truncate table 表名;清除表(如果有自增id,id 会重新开始)

4.修改表结构

alter table 表名 auto_increment=value;设置自增键起始值;
alter table 表名 drop 列名;删除列
alter table 表名 add 列名 数据类型 约束; 增加列
alter table 表名 change 旧列名 新列名 数据类型; 修改字段类型
alter table 表名 modify 列名 数据类型; 修改数据类型
alter table 旧表名 rename 新表名; 修改表名
alter table 表名 drop primary key; 删除表中主键
alter table 表名 add 列名 数据类型 primary key;添加主键
alter table 表名 add primary key(列名);设置主键
alter table 表名 add column 列名 数据类型 after 列名;在某一列后添加主键

二.mysql进阶
1.外键

外键适用于一对多,一对一,多对多三种情况

一对多

典型案例员工与部门,一个部门对应于多个员工,一个员工对应于一个部分,所以要在员工表中设置部门id列,并设置为外键,与部门表id关联。

一对一

案例博客园用户与博客,不是每个用户都写博客,写博客的用户与拥有的博客地址一一对应,所以在博客用户表user中设置blog_id,设置成外键和唯一索引,与博客表blog中id关联

create table user(id int not null auto_increment primary key,name char(10), blog_id int,unique uq1(blog_id),constraint fk_user_blog foreign key(blog_id) references blog(id))engine=innodb default charset=utf8;

多对多

典型案例电脑与用户,一个用户可以使用多台电脑,一台电脑对应多个用户,多对多,此时一般选择新建一个表contact,在其中设置两个外键,同时关联用户表id与电脑表id

create table contact(id int not null auto_increment primary key,user_id int,computer_id int,unique uq2(user_id,computer_id),constraint fk_user foreign key(user_id) references user(id),constraint fk_user foreign key(computer_id) references computer(id))engine=innodb default charset=utf8;

可以看情况决定要不要把两个外键弄成联合唯一索引。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153373.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c语言位运算符的用法_c语言中位运算符及其含义

    c语言位运算符的用法_c语言中位运算符及其含义1;位运算;程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。(均以二进制的补码形式)整数;及只能是带符号或者无符号的char,short,int,long类型;2;c语言中的6种位运算符;&按位与——如果两个相应的二进制位都为1,则该位的结果值为1,否则为0;|按位或——两个相应的二进制位中只要有一个为1,该位的结果值

    2022年9月28日
    2
  • 写给三维建模入门小白的建议

    写给三维建模入门小白的建议各位三维建模入门的小白们 下面这些建议一定可以在三维建模的学习过程中有所帮助 强烈建议大家收藏哦 第一 要想学会操作 3DMAX 就必须要熟练地使用电脑 鼠标和键盘的灵活度是必须要的 因为在接触 3DMAX 后 很多指令都需要用到快捷键 我们在后面会讲到 3DMAX 快捷键以及它的重要性的 所以对电脑越是熟悉 学起来就越简单顺利 第一步要学会安装 3DMAX 软件 了解 3DMAX 的操作界面 3DMAX 的基本知识一定要先掌握 比如 3DMAX 的界面与概述 文件与视图菜单在什么位置 主工具栏中都是什么工具 三维模型的创建与编

    2025年8月15日
    3
  • mysql连接不上navicat_mysql安装版步骤

    mysql连接不上navicat_mysql安装版步骤问题:解决方法:命令行登录mysql后执行如下命令alteruser’root’@’localhost’identifiedwithmysql_native_passwordby’密码’;使用我们给的密码进行navicat连接测试:…

    2022年10月14日
    3
  • jpa 心得

    jpa 心得

    2021年8月21日
    90
  • 如何配置tomcat环境变量

    如何配置tomcat环境变量首先下载tomcat,并且解压到目录:注意:2,3步的变量值要到下图这一步即,bin的上一级目录不包含bin1.第一步鼠标右键计算机-&gt;属性-&gt;高级系统设置,进去之后,点击环境变量,如下图所示2.第二步开始配置tomcat的环境变量,新建系统变量名CATALINA_BASE,值tomcat的安装路径,如下图所示:3.第三步新建系统变量CA…

    2022年6月4日
    30
  • oracle的executereader,尝试使用Oracle Data Access ODP.NET 11.2执行ExecuteReader()时出现InvalidOperationExceptio…

    oracle的executereader,尝试使用Oracle Data Access ODP.NET 11.2执行ExecuteReader()时出现InvalidOperationExceptio…这是我第一次与Oracle合作,而且我们都讨厌在你使用特定模型的同时使用外国产品,尽管这是我们的工作,我们必须做到.现在我已经安装了Oracle11g,并复制并引用了Oracle.DataAccess.dll,创建了一个方法,用于打开连接并尝试从服务器上创建的视图中检索某些对象.方法:publicBindingListGetHeaderReceivers(){try{using(Oracl…

    2022年6月20日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号