[]
数据类型
-
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) 中的

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



