2017-3-29 MySQL 基本语法一 命令操作界面

如果你有幸看到这篇博客,那么请出门左转,因为博主很渣,这只是一篇笔记,没有大神独白




====================================数据库=============================

--显示所有数据库
show databases;

--显示打开数据库
select database();

--创建数据库
create datebase imooc;

--使用数据库
use imooc;

--查看警告级别
show warnings;

--显示数据库编码方式
show create database imooc; 数据库 编码

--修改数据库 编码 
alter database imooc character set = utf-8;

--删除数据库
drop database imooc01;

--查看存储引擎
show engines;


=====================================================================


--表 编码
show create table ss;  

--创建表
create table ss(
    name verchar(20),
    age tinyint  unsigned,     最小整数  无符号类型(没有负数)
    salary float(8,2) unsigned  单精度(8位数,2位小数 )
);

--查询MySQL所有数据表的列表
show tables from mysql;

--查看数据表结构 也就是看列的属性
show columns from ss;

--插入数据
1.省略列名  必须为每列都赋值
insert ss values(值1,值2);

2.指定列赋值  未赋值的列为null
insert ss(列1,列2) values(值1,值2);

--查询表索引
show indexs from 表;

--删除表
drop table 表;


================================字段=====================================


auto_increment 自增  初始值:1


列级约束


primary key 主键   记录唯一  每张表只有一个主键


unique key 唯一约束  记录唯一  可以指定多个  可以为null  


default 默认值  如没有为字段指定值 则为默认值


not null 不为空


表级约束

poreign keyp 外键约束
 要求:1.父表 子表 使用相同存储引擎
2.禁止临时表
3.数据表的存储引擎只能InnoDB
4.外键列与参照列必须有相似的数据类型
5.外键列与参照列必须创建索引
 操作定义:
cascade:父表删除更新 子表删除更新对应的行
set null:父表删除更新 子表外键列设置为null
restrict/no action: 拒绝对父表的删除更新

空、RESTRICT、NO ACTION
删除:从表记录不存在时,主表才可以删除。删除从表,主表不变
更新:从表记录不存在时,主表才可以更新。更新从表,主表不变
CASCADE
删除:删除主表时自动删除从表。删除从表,主表不变
更新:更新主表时自动更新从表。更新从表,主表不变
SET NULL
删除:删除主表时自动更新从表值为NULL。删除从表,主表不变
更新:更新主表时自动更新从表值为NULL。更新从表,主表不变


FOREIGN KEY(外键列) REFERENCES s1(参照列) 
本表.外键列 对应  s1表(参照列)




===================================表操作=====================================


--插入单列 
alter table 表 add 列名 列定义 插入位置(first/after 列名);  可以指定位置


--添加多列
alter table 表 add (列名1 列定义,列名2 列定义);


--删除列
alter table 表 drop 列;


--删除多列
alter table 表 drop 列1,列2;


--添加主键约束
alter table 表 add constraint 别名 primary key(约束列) 约束别名可写可不写


--添加唯一约束
alter table 表 add constraint unique (约束列)


--添加外键约束
alter table 表 add poreign (外键列) references(参照列); 需要满足外键约束的条件才能添加成功


--添加/删除默认约束
  +:alter table 表 alter 列 set default 15;
  -: alter table 表 alter 列 drop default;


--删除主键约束
alter table 表 drop primary key;  主键约束是唯一的 不需指定


--删除唯一约束
 要先查询索引
alter table 表 drop index 索引;


--删除外键约束
  先查询表编码 获取外键名
alter table 表 drop poreign key 外键名;


--修改列的定义 (如 int >>> tinyint) 注意:大类型》》小类型  数据丢失
alter table 表 modify 指定多列 定义;


--修改列名称+定义
alter table 表 change 指定列  新的名称  定义;


--修改表名
 1.rename table 表名 to 新表名;
 2.alter table 表名 rename 新表名;


===================================数据操作=========================================

--插入数据
1.INSERT test VALUES (1 ,'张三','123a',12),区别:可以多条插入
     (2 ,'张三','123a',12);


2.INSERT test SET id='22',pwd='abc'; 单条插入 可以有子查询


3.INSERT test2(id) SELECT id FROM test;  把test表的id列 插入到test2表的id列

--单表更新
1.UPDATE test SET age=age+3; 所有age+5
  
2.UPDATE test SET age=age+3 where age=9; 按条件更新


--单表删除
1.DELETE FROM test ; 删除整个表数据


2.DELETE FROM test WHERE id=2; 按条件删除


where 条件


group by 分组
select * FROM test GROUP BY  name; 根据 name 分组


having 分组条件
select * FROM test GROUP BY  name HAVING name='张三';  条件必须是 聚合函数 要么name在*中

--排序
select * FROM test ORDER BY id DESC ; 降序  去除“DESC”为升序 

select * FROM test ORDER BY id DESC,age; 先根据“id”升序 相同id 按age降序


--限制返回结果
select * FROM test LIMIT 2,3; 从下标2开始 返回3个

select * FROM test LIMIT 3; 从下标0开始 返回3个


-- 比较大小时,子查询返回多个值  需要利用关键字比较


select * from test where id>= ANY (select id from test where id>3)
     关键字
       --------------------------------------
       |  any   some     all     |
       |------------------------------------|
       |>.>= 最大值   最小值   最大值   |
       |------------------------------------|
       |<.<= 最大值   最大值   最小值   |
       |------------------------------------|
       |  = 任意值   任意值            |
       |------------------------------------|
       |<>.!=    任意值   |
       |------------------------------------|


待续。。。。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值