1.数据库登录
mysql -uroot -p
mysql -uroot -p mysql
mysql -uroot -p -h 192.168.213.200
备份
mysqldump -uroot -p --all-dtabases > all_databasees_20210305.sql //备份所有库
mysqldump -uroot -p --databases mysql > mysql_20210305.sql //备份mysql库
mysqldump -uroot -p mysql user > mysql_user_20210305.sql //备份mysql库的user表
还原:
mysql -uroot -p < all_databases_20210305.sql //还原所有库
mysql -uroot -p mysql < mysql_20210305.sql //还原mysql库
mysql -uroot -p mysql < mysql_user_20210305.sql //还原mysql库的user表
2.DDL(数据定义语言)
库操作:
create database 数据库名 character set uft8; --创建数据库
use 数据库名; --进入、使用数据库
drop database 数据库名; --删除数据库
show databases; --查看所有数据库
表操作:
create table 表名(字段1 约束条件,字段2 约束条件,…); --创建表
create table 表名(字段1,字段2,字段3…) values (值1,值2,值3..) --创建表
rename table 表A to 表B; --修改表名为B
alter table 表A to 表B; --修改表名为B
drop table 表名; --删除表
delete from 表名; truncate table 表名; --删除表数据,清空表
show create table 表名 \G; --获取表结构
字段操作:
Desc 表名; show columns from 表名; --查看表结构,查看字段信息
Alter table 表名 add 字段 数据类型; --增加字段
Alter table 表名 modify 字段 数据类型 --修改字段类型
Alter table 表名 change 字段A 字段B 数据类型; --修改字段名和约束条件
Alter table 表名 drop 字段; --删除一个字段
备份表:
(同步数据):create table 表A like 表B; --复制表结构
Insert into 表A select * from 表B; --插入数据
create table 表A select * from 表B where 1=2 --同步表结构(或create table 表A select * from 表B)
create table 表A as (select * from 表B); --同步表结构和表数据
创建临时表:关闭连接,临时表自动删除
Create temporary table 表名 values(值1,…); --创建临时表
3.DML(数据操作语言)
Insert插入数据
Insert into 表名 values(值); insert into 表名 (字段) values (值);
Update更新数据
Update 表名 set 字段=值,字段=值 where 条件;
Delete删除数据
Delete from 表名 where 条件;
4.DQL(数据查询语言)
Select * from 表名 where 条件;
Where条件:
= != <> >= <= > < 等于、不等于、大于
Between ..and .. 在什么范围 is (not) null 为空或非空
and 与 or 或 not 非 in (‘’,’’,’’) 在之内
% 通配符,模糊匹配(与like连用) _ 匹配一个字符,(与like连用)
Like 模糊匹配
字段控制查询:
distinct 字段名 --去重 字段 as 别名 --字段命别名
字段1+字段2 --字段相加(都是数值型才可,新值为字段1+字段2)
ifnull(age,o) --对age字段判断,为空取0
limit 限制返回记录数 例子:select *,ifnull(age,0) from temp; --判断,不为空
limit 0,3 显示前三条(从0开始) select * from aa limit 0,3 --查看前三条数据
聚合函数:
count() 计数 max() 最大值 mix() 最小值 sum() 求和 avg() 平均值
关键字:
order by 字段1,字段2 --排序(默认asc升序desc降序)先按字段1后字段2排序
group by 字段名 --按字段分组(单独使用,只显示字段第一条记录)
group_concat(‘字段名’) --查看每一组的内容(显示字段,一般都会在group by后跟上)
例:select age,group_concat(age) from aa group by age --查看分组后,某类所有的集合
DQL书写顺序:select –from—where-group by—having—order by--limit
DQL执行顺序: from—where-group by—having—select—order by—limit
5.多表查询:(union/union all)
合并结果的字段要一致,字段的数据类型也一样才能合并
select * from a union (all) select * from b; //union合并结果集去重,union all不去重
select * from a,b; //笛卡尔积,每张表每条数据都会交叉匹配一次
select * from a (inner) join b on a.字段=b.字段; //内连接,两张表都有,避免笛卡尔积
select * from a left join b on a.字段=b.字段; //左连接,左边全部,右边满足条件
select * from a right join b on a.字段=b.字段; //右连接,右边全部,左边满足条件
非等值连接,连接条件不是等式,是不等式
select * from a natural join b; //自然连接,类型一致的列作为条件
6.子查询
select * from a where 字段 in (select * from b); //嵌套子查询in
select * from (select * from a); //嵌套表名
select * from a where 字段=(select 语句); //where条件嵌套
select * from a where (字段A,字段B) in (select A,B from b where 条件) //多个条件相等
select * from emp e,(select job,salary from emp where ename='huchao') r where e.job=r.job and e.salary=r.salary; (字段1,字段2) in (select 字段1,字段2 from 表名)
7.常用函数
if(values,t,f) //条件查询,值为真,返回t,否则为t
ifnull(值1,值2) //若值1非空,返回1;否则返回值2
case where then end //判断语句
8.事务使用:只针对DML
start transaction; //开始事务
begin/start transaction; //开启事务
SQL更改操作:
commit; //提交事务(提交后就写入到数据库)
rollback //回滚事务,所有操作还原
commit //提交事务
set改变msyq自动提交模式:
set autocommit=0 //禁止自动提交
set autocommit=1 //开启自动提交
标签:--,MySQL,基础,mysql,字段,表名,table,select From: https://www.cnblogs.com/huchao12/p/17555027.html