超级详细MySQL笔记整理

[] 数据类型
  • tinyint--1--byte
  • samllint--2-short
  • int--4-int
  • bingint--8--long
  • folat--4--float
  • double--8--double
[] 字符串类型
  • char(n)--长度不超255字符--剩余空间空格填充--存储速度最快,浪费空间,存等长
  • varchar(n)--最长不超65535字节--剩余留给别的数据使用,不浪费空间
  • text--超过255时使用--大文本类型,
[] 日期类型
  • date--年月日
  • time--时分秒
  • datetime--年月日时分秒--1000-9999
  • timestamp--时间戳,某刻毫秒值--最大2038--自动更新
[] 字段(列)约束
  • 主键约束--primary key 主键auto increament自增
  • 非空约束--not null 不能能有空值
  • 唯一约束--unique-不重复,可有null值
  • 外键约束--表与表之间关系的列
  • 自增
[]添加主键约束
  • * 语句 ALTER TABLE 表名 ADD【CONSTRAINT[给主键起名-可省略]】PRIMARY KEY(id)
[] 添加唯一约束
  • * 语句:ALTER TABLE 表名 ADD[CONSTRAINT[起名可省略] UNIQUE(列名)-可以一次条件多个
[]添加外建
  • * 语句:ALTER TABLE 表名 ADD[CONSTRAINT[起名可省略]] FOREIGN KEY (当前表列名) REFERENCES   父表名(id--参照列)
  • 添加/删除默认约束
  • ALTER TABLE 表名 ALTER 列名 SET DEFAULT 默认值(例如15)
  • * ALTER TABLE 表名 ALTER 列名 DROP DEFAULT--删除默认值
[] 删除主键约束
  • ALTER TABLE 表名 DROP PRIMARY KEY
[]删除唯一约束
  • SHOW INDEXES FROM 表名--查看表有哪些约束
  • ALOW TABLE 表名 DROP INDEX (key-名字那个)
[]删除外键
  • ALTER TABLE 表名 DROP FOREIGN KEY 外键名字
  • SHOW CREATE TABLE 表名--查看外键名字
  • ALTER TABLE 表名 DROP INDEX 索引名--删除索引
[] MYSQL操作类别
  • 写操作:INSERT,UPDATE DELETE(增删改)
  • 读取操作:SELECT--查
  • tinyint(1)--布尔判断--1为true 0为Flase
[] MySQL--操作
  • shouw databases;--查看服务器所有库
  • use +库---进入指定库
  • select database();--查看已经进入的库
  • show rables;--查看库所有元素
  • drop database if exists +库;--删除指定已有的库
  • create databse 库名 charset utf8;--创建库
  • drop table if exists 表名--删除表
  • create tabale 表名(列名+数据类型,多个用逗号隔开)
  • desc 表名;---查看表结构
  • #空格 --空格---注释
  • insert into 表名(列1,列2)values(值1,值2);
  • insert into 表名 values(值1,值2)--只能所有列加入值
  • update 表名 set 列名=列名+值 where  列名2=值2--给列名2所有值都加值
  • update 表名 set 列名=列名+值;---给表中所有值加值
  • update 表名 set 列名=ifnull(列名,0)+10;--将空值以零对待
  • delete from 表名 where 列名=值;--删除值的所有信息
  • delete from 表名;--删除表中所有信息
  • select 列名1,列名2 from 表名--显示列名1,2
  • select * from 表名;--显示所有列
  • select distinct 列名 from 表名;--剔除指定列中的重复值
[] where子句查询
  • = 等 <>不等 >大于>=大于等于<<=
  • between x and y---在x和y之间
  • like(%m%-包含m,%-表任意0或多个字符,"_"表任意一个字符
  • in(值1,值2)查询集合包含的值
  • not--否定后面的条件
  • and--和,or或,is null 是否为空,is not null-是否不为空
  • as--定义别名,where不能使用列别名,可使用表别名
  •  
[] 排序查询
  • order by 列名 asc --升序
  • select 列名 from 表名 order by 列名 asc;---升序
  • select 列名 from 表名 order by(列名)desc;---降序
[] 分组查询
  • select * from 表名 group by 列名1--按照列名1分组
[] 聚合函数查询
  • select max(列名) as from 表名;--最大值--min最小值
  • select count(*) from 表名 where 列名>值;--统计大于值的人数
  • select sum(列名) as from 表名;--统计指定列的总值
  • select avg(列名) as from 表名;--算出指定列的平均值
  • select 列名1 coun(*),avg(列名2) from 表名 group by 列名1--多聚合一起查询
  • 聚合函数不能用在where子句中
  • 没有分组时,聚合函数不能喝其他普通字段一起查询
  • select 列名1,列名2 from 表名 where 列名2=(select max(列名2) from 表名)---子查询
  • ceil(数值)---向上取整floor(数值)--向下取整
  • round(数值)---向下取整,rand--随机数
  • select 列名1,列名2,ceil(列名2*1.1547) from 表名;--工资上涨15.47%的,向上取整
  • 日期函数:curdate()--返回当前年月日
  • curtime()---返回当前时分秒
  • now()--返回当前年月日时分秒
  • date add(),date sub()--增加/减少日期
  • year()--获取年,month()--月,day--日hour()--时,minute()分
  • second()--秒
  • select now();--查询当前系统时间
  • select 列名1,year(curdate())-year(列名2) from 表名;--显示姓名和年龄
[]主键创建实现案例
CREATE TABLE provinces(id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
pname VARCHAR(20) NOT NULL);---省份表--父表--设置主键后自动创建索引
CREATE TABLE usere(
id  SAMLLINT UNSIGED PIMARY KEY AUTO_INACEMENT NOT NULL
pid SMALLINT UNSIGNRD,
FOREIGN KEY (pid) references(id) );
参照省份表的id--字表
pid--外键列 省份表的id为参照列
语句:SHOW INDEXES FROM 表名\G--查看有没有建立索\G表格显示
[] 外键
  • 员工表的id列(dept_id)和部门表的id一一对应,dept_id--就是外键
  • foreign key(列表1_id) references 列表1(id)--添加--指定为外键
  • 建表后:create table 表名(id int primary key auto_increment)--建表后外键设置
  • 如果表已存在,可以使用下面这种方式: alter table emp add constraint fk_dept_id foreign key(dept_id) references dept(id); 其中 add constraint fk_dept_id 表示新增列,列名为 fk_dept_id ( 名字由自己定义 foreign key(dept_id) 中的
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值