Mysql

数据库mysql
自带的四个数据库
mysql : 存储mysql服务器运行所需信息的表 例如:数据字典表 日志系统表
information_schema :存储着记录其他数据库或表的名称,列的数据类型或访问权限
performance_schema :监视服务器,低级别监视mysql服务器执行
sys :通过视图形式把information_schema和performance_schema结合

如何建库,建表,插入数据,删除数据,查找数据,修改数据?
建库:create database 数据库名;
建表:create table 表名(字段 字段类型(最大长度限制) 约束类型);
插入数据:insert into 表名() values ();
删除数据表:drop table name;
删除数据库:drop database name;
删除表:drop table name;
删除数据:alter table 表名 drop 列名; 针对字段
delete from 名 where 整行数据; 针对数据
查看数据库: show databases;
查看当前数据库:select database();
查看表:desc 表名;
show tables; 当前数据库有多少表
查看所有字段:select * from 表名;
查看指定字段:select 字段名 from 表名 where 条件;
添加字段:alter table 表名 add 字段名 字段类型();
修改字段名:alter table 表名 change 旧字段名 新字段名 新字段类型varchar() not null;
修改数据:update 表名 set 字段名=值 where 条件id=1;
例如: update student set name=“xiaoming” where id=1;
修改字段类型:alter table 表名 modify 字段名 新字段类型;

求和,最大,最小,统计 平均:sum,max,min,count,avg
别名:as
去重:distinct
例如:select sum(sal) as ‘工资总和’ from student; 对student表的sal字段求和

join on 联合表 emp和dept俩个表 相同的字段:deptno
例如:查询和scott相同部门的员工姓名ename和雇用日期hiredate
mysql> select ename,hiredate from emp
-> join dept on emp.deptno=dept.deptno
-> where emp.deptno=(select deptno from emp where ename=‘SCOTT’);

左/右表连接
left join on
rigth join on

自连接
例如:select e1.empno,e1.ename,e2.empno,e2.ename from emp e1,emp e2 where e1.mgr=e2.empno;

逻辑运算符 and,or,beteen and,is,not取反,!=,in( )
例如:-- 查询薪资不等于1000,2000,3000的员工信息;
select * from emp where sal not in(1000,2000,3000);

模糊查询 like
例如:select * from emp where ename like ‘%c’; %:查询xxxxc
‘_c’ _: 第二个字母为c

group by 分组
order by 排序
select 字段名 from 表名 group by 字段名 having 条件;
select 字段名 from 表名 order by 字段名 asc 升序(desc 降序);

limit 2,3 删除前俩行,取第3,4,5行
例如:select * from emp limit 2,3;

concat 多列变一列
例如:select concat(‘sal’,’,’,‘deptno’) as a from emp; 变成 sal,deptno 别名a

约束类型
not null 非空
default 默认
primary key 主键
unique 唯一
foreign key 外键

五大约束的语法示例:
1.添加主键约束(将userld作为主键)
alter table Userld
add constraint PK_Userld primary key(userld)

2.添加唯一约束(身份证号唯一,因为每个人的都不一样)
alter table Userlnfo
add constraint UQ_IDNumber unique(ldentityCardNumber)

3.添加默认约束(如果地址不填 默认为“地址不详”)
alter table Userlnfo
add constraint DF_UserAddress default(“地址不详”)for UserAddress

4.添加检查约束(对年龄加以限定 20-40岁之间)
alter table Userlnfo
add constraint CK_UserAge check(UserAge between 20 and 40)
alter table Userlnfo
add constraint CK_UserSex check(UserSex =‘男’ or UserSex= ‘女’ )

5.添加外键约束(主表Userlnfo和从表UserOrder建立关系,关联字段Userld)
alter table UserOrder
add constraint FK_Userld_Userld foreign key(Userld)references Userlnfo(Userld)

复制
desc emp
INSERT INTO e(empno) SELECT ename FROM emp 把emp表里的ename字段复制到e表里的empno字段
– ALTER TABLE 表名 add CONSTRAINT 约束名称(自己取) 约束 (字段名)
ALTER TABLE fruit add CONSTRAINT pk_fid PRIMARY KEY (fid)

约束
– ALTER TABLE 表名 add CONSTRAINT 约束名称(自己取) FOREIGN KEY REFERENCES 要连的表(字段)
ALTER TABLE stu add CONSTRAINT fp_tno FOREIGN KEY REFERENCES teacher(tno)

索引
– 创建索引
CREATE INDEX 索引名 on 表(字段) USING BTREE COMMENT ‘索引备注’
CREATE INDEX id_index on sxo_power(id) – USING BTREE COMMENT ‘id_index’

– 删除索引
DROP INDEX 索引名 ON 表
DROP INDEX id_index ON sxo_power

– 显示索引信息
SHOW INDEX FROM 表
SHOW INDEX FROM sxo_power

存储过程
– ‘//’ 直到遇到下一个‘//’就会执行之间的语句
DELIMITER//
DROP PROCEDURE if EXISTS pro1;
– 创建存储过程
– CREATE PROCEDURE 存储过程名()
CREATE procedure pro1()
– 开始
BEGIN
– declare 声明变量
DECLARE i INT;
– set 赋值
SET i:=5;
– while 循环
WHILE i<10 DO
– 循环体
INSERT INTO emp(empno) VALUES(i);
– 赋值
SET i:=i+1;
– 结束循环
END WHILE;
– 查询表
SELECT * FROM emp;
– 结束
END//
– 调用存储过程
– call 存储过程名()
CALL pro1();

– LOOP循环 无限循环
delimiter//
drop procedure if EXISTS pro1;
create procedure pro1()
BEGIN
declare i int;
set i:=5;
lp1:LOOP lp1:自己取的循环名
insert into emp(empno) values(i);
set i:=i+1;
if i>10 THEN
leave lp1;
end IF;
end loop;
select * from emp;
end //
call pro1();

数据库语言的数据类型有哪些?
整数型 int
浮点型 float double
字符串型 varchar
日期时间类型 year date time
二进制型 BLOB

数据类型

– 数字类型
TINYINT 特小整型 一个字节 2^8 范围 没有符号0-255 有符号 -128~127
SMALLINT 小整型 两个 2^16
MEDIUMINT 中整型 三个字节
INT 整型 四个
BIGINT 大整型 八个字节

– 字符型
CHAR – 长度不可变
VARCHAR – 长度可变

– 定点
DECIMAL(长度,精度)
(5,1) 最大长度5位 (小数点最大1位,整型最大四位)

– 浮点
FLOAT 浮点 四个字节
DOUBLE 八个字节

– 时间
date yyyy-mm-dd
datetime yyyy-mm-dd hh:mm:ss
time hh:mm:ss
YEAR

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值