MYSQL
是一个开源程序,轻量级的数据库管理系统,使用简单快捷。
mysql的安装(百度)
navicat的安装(百度)这是一个操作数据的界面操作,相当于oracle的plsql;
navicat的登录:(也是验证数据是否安装成功)
输入连接名:这就是一个相当于你的存储空间的名字
输入指令:相当于密码,
在这个存储空间中进行建立数据库的操作,在oracle中是建立好的库XE。
自带4个库:
test;
mysql;
information_schema;
performance_schema;
建库,建表
##两个警号是sql的注解:
##选中要执行的sql语句,右建选择run select;
##show tables 显示当前所有的表
## describe 表名,展示表的结构
## show create table 表名 显示建表的sql语句
##mysql创建数据库:
##任意打开一个一个数据库,点击query->new query ->打开SQL窗口。
##格式:create database 表名 defalut character set utf-8;
create database aa default character set utf8;
##切换数据库:use 库名
use aa;
##删除数据库:drop database 库名;
drop database aa;
#################################################
界面操作:
##:在连接名上右建->new database ->填上库名 ->选择编码格式->ok;
##删除数据库:选中数据库,右建删除数据库即可。
################################################
创建表:create table 表名(字段名 类型 约束,.....)
create table student(
sid int(10) not null auto_increment primary key ,
sname varchar(100) ,
sage int(100),
ssex char(4),
sqq int(11)
)
查看表:select * from student;
插入表:insert into student values(default,'系',12,'男',1111);
注意:在sql中没有序列,可以在主键上设置自动增加,auto_increment;
oracle中的约束有的无法使用。
######################################################################
创建表时的字段类型:
数值类型:int():整数类型
double()/float():浮点型类型
字符型类型:varchar():根据字符的大小动态分配存储空间
char():直接分配指定的存储空间;
日期型类型:date:格式:yyyy-mm-dd
datetime:yyyy-MM-dd hh-mm-ss;
timestamp:会自动进行时区转换,4个字符
time:时间
year:yyyy,年份
sql的约束,表字段的添加修改删除等
##sql中的约束
##主键约束
在创建表后添加priamry key
或者在表的最后加 constraint fk_表名_字段名 primary key (字段名)
建表后添加:alter table 表名 add constraint fk_表名_字段名 primary key (字段名)
建表后删除:alter table 表名 drop constraint fk_表名_字段名 primary key (字段名)
##不为空约束
在创建表的字段后面加not null,
建表后,百度
注意:在oracle中不为空,是连空字符串都不可以,在mysql中空字符串是可以的。
##检查约束:
mysql中是没有检查约束功能的。check这个字符使用没错,但没了这个功能了。
注意:
可以在代码中使用逻辑完成检查约束,
可以使用sql的存储过程(也就是自己编写check()这个方法)
##唯一约束:
在创建表后添加unique
或者在表的最后加 constraint fk_表名_字段名 unique key (字段名)
建表后添加:alter table 表名 add constraint un_表名_字段名 unique key (字段名)
建表后删除:alter table 表名 drop constraint un_表名_字段名 unique key (字段名)
##外键约束
在创建表后添加references 表名(字段名)
或者在表的最后加 constraint fk_子表名_字段名 foreign key (字段名) references 父表名(字段名)
建表后添加:alter table 子表名 add constraint fk_子表名_字段名 foreign key (字段名) references 父表名(字段名)
建表后删除:alter table 子表名 drop constraint fk_子表名_字段名 foreign key (字段名) references 父表名(字段名)
########################################################################################################
##代码(对上面的解释)
##切换数据库
use aa;
##创建表,在字段后添加约束
create table student(
sid int(10) not null primary key auto_increment,
sname varchar(100) not null,
sage int(10) not null,
sex char(4) not null,
sqq int(11) unique,
cid int(11) REFERENCES clazz(cid)
)
##创建表,在表的最后加
create table student(
sid int(10) not null auto_increment,
sname varchar(100) ,
sage int(10) ,
sex char(4) ,
sqq int(11) ,
cid int(11),
constraint pk_s_sid PRIMARY key(sid),
constraint fk_s_c_cid foreign key (cid) references clazz(cid),
constraint un_s_sqq unique (sqq)
)
##创建表之后添加约束
alter table student add constraint pk_s_sid PRIMARY key(sid),
alter table sutdent add constraint fk_s_c_cid foreign key (cid) references clazz(cid),
alter table sutdent add constraint un_s_sqq unique (sqq),
##创建表clazz
create table clazz(
cid int(10) not null primary key auto_increment,
cname varchar(100) not null,
cdes varchar(100) not null
)
#######################################################################################
##对于表的修改删除
##添加字段
alter table 表名 add 字段名 类型,
##删除字段
alter table 表名 drop 字段名
##修改字段类型
alter table 表名 modify 字段名 新的类型
##修改字段名
alter table 表名 字段名 新的字段名 类型
##修改表名
alter table 表名 rename as 新的表名
##删除表
drop table 表名
mysql的数据库操作,分页,数据库备份
##显示表 show tables 表名
##显示表创建语句:show create table 表名;
##显示数据库:show database ;
#######################################################
##mysql数据操作:
##查询:
#单表查询:
别名;同oracle;
连接符 :concat() 函数
去重:distinct
where子查询:;同oracle;
分组,having:同oracle;;
排序:同oracle;
#多表查询:
同oracle;
##数据增加,修改,删除:
同oracle;
##子查询:(同oracle;)
单行子查询,
多行子查询;
##mysql的分页:
##一页显示两条数据
select * from 表名 limit 0,2, ##查询第一页数据
##二页显示两条数据
select * from 表名 limit 2,2, ##查询第二页数据
##三页显示两条数据
select * from 表名 limit 4,2, ##查询第三页数据
##分页格式
n表示每页显示的数量,m表示页数
select * from 表名 limit (m-1)n,n,
##mysql的数据库备份
sql命令(百度)
界面操作: 略
sql的命令
##sql的命令方式
##连接,mysql -uroot -p密码(这里使用mysql,必须配置环境变量)
##显示当前库:show databases;
##创建库:create database 库名;
##显示表:show tables;
##创建表:create table 表名();
##切换数据库:use 库名;
##退出:exit
####################
oralce与mysql的不同
1:字段的类型不同:
myql中:
整数类型:smallint 两个字节,int 4个字节,Interger 是同义词, bigint 8个字节
浮点类型:float 4个字节,double 8 个字节
字符类型:char :不可变长度;varchar:可变长度
日期类型:date:yyyy-mm-dd;datetime:yyyy-MM-dd hh-mm-ss;timestamp:yyyy-MM-dd hh-mm-ss,会对时区进行转换;
time:hh-mm-ss;year:yyyy;
其他类型:text:文本类型;
blob:存放二进制文件;
2:对于外连接:
mysql中不可以使用sql92的方式进行连接;
3:关于删除:delete from 表名;