MySQL操作,以及常用命令

拼搏现实的明天。 2022-05-09 02:28 406阅读 0赞

MySQL操作,以及常用命令

创建数据库:create database 数据库名;

操作数据库:use 数据库名;

显示所有数据库:show databases;

显示所有表:show tables;

创建表:create table 表名(字段名1 字段属性,字段名2 字段属性,…);

插入表数据:insert into 表名([字段名1,字段名2,…]) values (数据1,数据2, …);

更新表数据:update 表名 set 字段名1=要更新的数据 [,字段名2=要更新的数据] [where 条件]

删除表数据:delete from 表名 [where 条件];

删除表:drop table 表名;

删除数据库:drop database 数据库;

SQL语言分类:

数据定义语言DDL(Data Definition Language),其中包括 create 、drop、 alter、 show

数据操作语言DML(Data Manipulation Language),包括 insert 、update、delete

数据查询语言DQL(Data Query Language),包括 select

数据控制语言DCL(Data Control Language),包括 grant、revoke

事务控制语言DTL(Data Transacyion Language),包括 commit、rollback 等

自增属性:auto_increment

主键:primary key

查询不重复记录

select distinct 字段名1 [,字段名2] from 表名

70

SELECT DISTINCT #查询名字不重复的记录(查询结果只有name属性)

  1. name

FROM

  1. user1;

70 1

SELECT DISTINCT #查询name和sex同时不重复的记录(查询结果为name和sex属性)

  1. name,
  2. sex

FROM

  1. user1;

70 2

  1. **distinct只能使用需要去重的字段进行操作。** \----也就是说我didtinctname sex,两个字段,我后面想根据id进行排序,是不可以的,因为只能name,sex两个字段进行操作.(结果只有namesex两个字段)
  2. **distinct去重多个字段时,含义是:几个字段 同时重复 时才会被 过滤**

添加一列

alter table 表名 add 字段名 数据类型 字段属性 插入位置

插入位置:frist

删除一列

alter table 表名 drop 字段名

修改一列:

alter table 表名 change 原字段名 新字段名 数据类型 字段属性 插入位置

重命名表:

alter table 表名 rename 新表名

条件查询:

select 字段 from 表名 where 条件;

select * from student where sex=’男’ and age>20; //查询性别是男,并且年龄大于20岁的人。

where后面的条件可以用>、<、>=、<=、!=等多种比较运算符,多个条件之间可以用or、and等逻辑运算符

排序与受限查询:

select * from 表名 [where 表名 ] [order by 字段名1 [desc/asc] [,字段名2 [desc/asc]]]

select * from student order by age desc ; #查找学生表并按年龄倒叙排序

select * from 表名 LIMIT x,y 用于分页显示

x:起始偏移量(行号)

y:偏移行数

聚合查询:

select count(字段名) [as 别名] from 表名

min max sum avg

区间查询:

select * from 表名 where 字段名 between x and y

分组查询:

select name,count(*) from 表名 group by name

以name为分组,统计每个名字出现的次数

select name,count(*) from 表名 group by name having 条件

注意 : Group不能与where连用 使用条件的时候 使用having

子查询、联合查询:

一旦给表定义了别名,那么原始的表名就不能在出现在该语句的其它子句中

内连接inner join

select 别名1.字段名,别名2.字段名,别名3.字段名3

from 表名1 as 别名1

  1. inner join 表名2 as 别名2
  2. on 别名1.字段名=别名2.字段名
  3. inner join 表名3 as 别名3
  4. on 别名2.字段名=别名3.字段名

[where 条件]

外连接

左外连接返回左表中不符合连接条件,但符合查询条件的数据行,即左表的全部

左连接left join

select 别名1.字段名,别名2.字段名,别名3.字段名3

from 表名1 as 别名1

  1. left join 表名2 as 别名2
  2. on 别名1.字段名=别名2.字段名
  3. left join 表名3 as 别名3
  4. on 别名2.字段名=别名3.字段名

[where 条件]

模糊查询:

select * from 表名 where 列 like ‘值’

% _ 各种选择

两种表类型

innodb 特点:

1)支持事务、回滚

2)行级锁

3)支持外键约束

缺点:

1)占用空间大,操作慢,不支持全文索引

myisam特点:

1)表级锁

2)支持全文索引

缺点:

不支持事务处理,不支持外键约束

索引

作用:

加快查找速度,提高查找效率,加强表的联系实现多表查询,约束数据的有效性

主键索引:

确定每条记录的唯一性,主键不能为空,每个表中只能有一个主键

id int not null auto_increment primary key

外键索引:

当前表的外键,是关联表中的主键中的数据。关联的外键和主键具有约束性

foreign key(外键名) references 关联表(主键)

唯一索引:

避免出现重复的值, 不提升访问速度

name char(30) not null default ‘DB’ unique

普通索引:

依附在某一列上,提高查询速度

create index 索引名 on 表名(字段名)

查看索引:show index from 表名

删除索引:drop index 索引名 on 表名

缺点:

影响运行速度,耗费空间,创建维护索引消耗时间

#

视图

创建视图:

create view 视图名 as select 语句

查询视图:

show create view 视图名

删除试图:

dorp view 视图名

在视图中对数据的增删改查与在表中都一样

用户管理

创建用户:

create user ‘用户名’@’地址’ identified by ‘密码’

修改密码:

update user set password = PASSWORD(‘密码’) where user = ‘用户名’@’地址’

删除用户:

drop user 用户名

授以用户的权限:

grant 权限 on 数据库.表 to ‘用户名’@’登录主机’

权限的类型:

数据权限、表结构、外键等(select insert delete ….)

收回权限:

revoke 权限 on 数据库.表 from ‘用户名’@’登录主机’

数据库事务

回滚:

rollback

关闭自动提交:

set autocommit = 0

开启自动提交:

set autocommit = 1

提交:

commit

数据库备份与恢复

备份方式:

mysqldump -u root -p 数据库名 数据表名1、表名2 密码 > 路径

恢复方式:

mysql -u root -p 密码 数据库名 < 路径

摘至本人有道云笔记

2018/08/15 20:53

《数据库操作》

发表评论

表情:
评论列表 (有 0 条评论,406人围观)

还没有评论,来说两句吧...

相关阅读