mysql:数据库是存储数据的创库
为什么要用数据库(什么是数据固化)将内存中的数据保存在硬盘上,保证程序下次访问时,还能访问数据的过程
怎样实现数据固化:[文件、 网络、 数据库]
数据库类型: 1、关系型数据库 [mysql、oracle、sqlserver、DB2 ]
2、非关系型数据库 Nosql [ monggoDB、redits]
mysql简单运行库、移植性强、免费
sql在mysql下的应用:
命令:show databases;查看数据库
create database myfirst;创建数据库
drop database myfirst;删除数据库
use 数据库名;使用数据库
select database();查看当前使用的数据库
desc 表名;显示表结构
数据库表操作
创建表语法:
create table 表名(
字段名 类型(长度) 约束,
字段名 类型(长度) 约束
foreign key(外键名) references 连接表(参照主键)
);
数据类型:
修改表添加列:
alter table 表名 add 列名 类型(长度) 约束;
alter table employee add image varchar(50);
修改表删除列:
alter table 表名 drop 列名;
alter table employee drop job;
添加数据:
1、插入指定列
insert into 表名 (列名,...)values(值1,值2...............);
2、插入所有列
insert into 表名 values(值1,值2...........);
删除数据:
delete from 表名 [where 条件];
更新数据:
update 表名 set [列名=值,列名2=值2] where [条件];
查询语句:
select * from 表名 [ where 条件];
create database 数据库名 default character set utf8 collate utf8_general_ci;
set names 'utf8';
sql在mysql下的应用:
DML 对数据库操作 insert、update、delete
DDL 对数据结构 create、drop、alter、truncate(删除相似内容的)
DQL 对数据库查询 select
DCL 对数据库控制 commit、grant、rollback
. *数据库里面的内容大小写不明感的
主键唯一,不能为空
primary key 主键
not null 不能为空
default 默认值
auto_increment 自增从1开始
数据库注入1=1
关系符:
=、in(,)、!=、is null、is not null、between ...........and ..............、like、
order by +字段名 (默认升序 ASC)、降序 desc 可加加两个字段
grop by +字段名 分组
.distinct去重复查询:select distinct 字段名 from 表名;
create table student(num int primary key auto_increment, name varchar(255),clazz int not null,score int default 60) engine=innodb,charset=utf8;
SET sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
聚合函数:
avg() sum() max() min() count()、select concat('li','guo','cheng');字符串拼接
select insert('字符串',起始点,长度,'替换的');
select lower('HKJGF');大写变小写
select upper('yguguf');小写变大写
select substring('ligguocheng','3','3');节字符串
高级操作:
临时表:查出
select count(name) from (select a.name,b.zw ,sum(a.money) as result from tb_gz as a,tb_zw as b where
a.z_id=b.id group by a.name) as temp where result>100000;
join ...........on..............
join链接这两个表
on链接两个表到的条件
left 、right、 inner、+join...on.....
rename table student to tb_student;修改表名
alter table tb_zw drop des;删除列
alter table tb_zw modify des int;修改表的字段结构
alter table tb_zw change des dee varchar(255) default 'll';修改一整列
alter table tb_zw add (des varchar(255));添加一列
pro1(inout id int)[int 默认 out ] out不带数组只拿容器