千家信息网

mysql知识点简单总结

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,1.操作数据库语句1.1 显示所有的数据:show databases;1.2 创建数据库:create database databasename;1.3 删除数据库:create database
千家信息网最后更新 2025年01月24日mysql知识点简单总结

1.操作数据库语句

1.1 显示所有的数据:show databases;

1.2 创建数据库:create database databasename;

1.3 删除数据库:create database databasename;

1.4备份数据库:mysqldump -uroot -p1234 databasename>本地保存的路径

1.5恢复数据库:mysql -uroot -p1234 databasename<本地保存的路径

1.6查看所在数据库:select database();

2.操作数据表语句

2.0 查询所有的表:show tables;

2.1 创建表:create table tablename(

字段1名称 字段1类型,

字段n名称 字段n类型(最后一项,不加逗号)

);

2.2 修改表:

2.2.1 添加字段: alter table 表名 add 字段名 字段类型;

2.2.2 修改表名: alter table 表名 rename to 新表名;

2.2.3 修改字段类型: alter table表名modify 字段名 字段新类型;

2.2.4 修改字段: alter table表名change 字段名 新字段名 新类型;

2.2.5 删除字段: alter table 表名 drop 字段名;

2.2.6 删除表: drop table 表名;

2.2.7 设置主键:

create table 表名(

字段1名称 字段1类型 primary key,

字段2名称 字段类型

);

create table 表名(

字段1名称 字段1类型 primary key,

字段2名称 字段2类型,

primary key(字段1名称)

);

create table 表名(

字段1名称 字段1类型,

字段2名称字段2类型

);

alter table 表名 add 字段名 primary key;

2.2.8设置自增长:

create table 表名(

字段1名称 字段1类型 primary key auto_increment,

字段2名称 字段2类型

);

//注意:自增长是对主键且数据类型为数值型的字段而言的

2.2.9 设置约束条件:unique(唯一性),not null(非空),default(默认)

2.3 查询表:

2.3.1 查询所有数据: select * from 表名

2.3.2 查询符合字段类型(数值)的数据: select * from 表名 where 字段名=id;

2.3.3 查询符合字段类型(字符串)的数据:select * from 表名 where 字段名='str';

2.3.4 查询含有某字符的数据:select * from 表名 where 字段名 like '%r%';

2.3.5 查询不含某字符的数据:select * from 表名 where 字段名 not like '%r%';

2.3.6 查询同时满足多个条件的数据:

Select * from 表名 where id in(条件1,条件2);

Select * from 表名 where 条件1 and 条件2;

2.3.7 查询满足多个条件之一的数据:

Select * from 表名 where 条件1 or 条件2;

truncate and delete的区别:

(1)truncate既删除表内数据,也删除表的结构,删除表结构后,会重建表的结构

(2)delete只删除表内的数据

having与 where的区别:

(1)having后面跟函数,having是对结果的筛选

(2)where后面跟字段

关键字的书写顺序:

select,from,where,group by,having,order by

关键字的执行顺序:

【from】 【where,group by,having 条件】 【select】 【order by】

内连接:

inner join on(内连接),可以多表进行内连接

demo:

//内连接示例

select s.sname, c.cname from sinfor s inner join scinfor sc on s.sid=sc.sid

inner join cinfor c on sc.cid=c.cid;

结果: +-------+---------+

| sname | cname |

+-------+---------+

| s1 | java |

| s2 | java |

| s1 | android |

| s3 | php |

+------+--------+

外连接:

(1)left join on(左外连接),以左边的表为基表

demo:

select s.sname, c.cname from sinfor s left join scinfor sc on s.sid=sc.sid

left join cinfor c on sc.cid=c.cid;

输出结果:

+-------+---------+

| sname | cname |

+-------+---------+

| s1 | java |

| s1 | android |

| s2 | java |

| s3 | php |

| s5 | NULL |

+-------+---------+

(2)right join on(右外连接),以右边的表为基表

demo:

select s.sname, c.cname from sinfor s right join scinfor sc on s.sid=sc.sid

right join cinfor c on sc.cid=c.cid;

输出结果:

+-------+---------+

| sname | cname |

+-------+---------+

| s1 | java |

| s2 | java |

| s1 | android |

| s3 | php |

| NULL | C# |

+-------+---------+

附sql语句:
表1 sinfor (学生表):

create table sinfor(

sid int primary key,

sname varchar(32)

);

表2 scinfor(选课表):

create table scinfor(

sid int,

cid int,

primary key(sid,cid),

foreign key(sid) references sinfor(sid),

foreign key(cid) references cinfor(cid)

);

表3 cinfor (课程表):

create table cinfor(

cid int primary key,

cname varchar(32)

);

insert into sinfor values(1, 's1');

insert into sinfor values(2,'s2');

insert into sinfor values(3,'s3');

insert into sinfor values(4,'s5');

insert into cinfor values(1,'java');

insert into cinfor values(2,'android');

insert into cinfor values(3,'php');

insert into cinfor values(4,'C#');

insert into scinfor values(1,2);

insert into scinfor values(2,1);

insert into scinfor values(3,3);

insert into scinfor values(1,1);


0