首先弄什么是数据库?
数据库就是用来存储和管理数据的仓库。
数据库存储数据的优点:
1.可存储大量的数据 2.方便检索 3.保持数据的一致性,完整性 4.安全 可共享 5.通过组合分析,可以产生新的数据。
数据库的发展历程:
1.没有数据库,使用磁盘文件来存储数据
2.层次结构模型数据库
3.网状结构模型数据库
4.关系结构模型数据库 (使用二维表格存储数据)
5.关系-对象模型数据库
注:关系模型由关系数据结构,关系操作集合,关系完整体约束三部分组成
MySql是一个关系结构模型数据库。
常见的数据库:
甲骨文:oracle与MySql IBM: DB2 微软:SQLServer 赛尔斯:Sybase
关系型数据库管理系统是由多个数据库+管理员=N个table
一个数据库可以有多个table
表格的创建:
数据库表是一个多行多列的表格 ,创建时需指定表的列数,列名称,列类型。不用指定表的行数,因为行数是没有上限的。
在计算机的CMD中操作数据库:
启动MySql服务器:net start mysql 关闭MySql服务器:net stop mysql
登录MySql:mysql -uroot -p123 -hlocalhost (-u后面是用户名,-r后面是密码,-h后面是服务器主机名,可以省略)
退出MySql:quit或exit
SQL是什么?
SQL是“结构化的查询语言,它是对关系型数据库的操作语言,可以应用到所有关系型数据库中”。
虽SQL可用在所有关系型数据库中,但很多数据库都有属于自己的特有的语法。列如:MySql中的limit语句就是MySql独有的。
语法要求:
SQL语句可单行或者多行书写,以分号结尾,可用空格或缩进增强语句的可读性,关键字不区分大小写,默认显示为大写,建议大写。
DDL:数据定义语言,用来定义数据库对象 ,库,表,列等
DML:数据操作语言,用来定义数据库的记录
DCL:数据控制语言,用来定义访问权限和安全级别
DQL:数据查询语言,用来查询数据记录
DDL:数据定义语言,用来定义数据库对象,库,表,列等
基本操作:
1.查看所有数据库名:show databases
2.切换数据库: use 数据库名
操作数据库
1.创建数据库:create database 数据库名
2.删除数据库:drop database 数据库名
3.修改数据库编码:alter database 数据库名 character set utf8(注:修改数据库编码为utf-8,MySql中不能写-,因此省略)
数据类型:MySql与java一样,也有数据类型,主要应用于列上
int:整型 double:浮点型 注:例如double(5,2)表示最多5位,必须有2位数,即最大数为999.99
decimal:精确小数类型,跟钱有关时使用 char:固定长度字符串类型 varchar:可变长度字符串类型
text:字符串类型 blob:字节类型 date:日期类型 格式为:yyyy-MM-dd time:时间类型 格式为:hh:mm:ss
操作表:
1.创建表
create table 表名(
列名 列类型 (可以还有一些属性),
);
例如:
create table user(
id int,
name varchar(20),
salary double
);
2.查看当前数据库所有表的名称:show tables;
3.查看当前数据库指定表的创建时语句:show create table 表名;
4.查看表的结构(列名列类型特有属性等):desc 表名;
5.删除表:drop table 表名
6.修改表
a.为表添加列:alter table stu add(name varchar(20));
b.为表修改列类型:alter table stu modify gender char(2);
c.为表修改列名:alter table stu change gender sex char(2);
d.为表删除列:alter table stu drop name;
e.修改表名:alter table stu rename to student;
DML:数据操作语言,用来定义数据库中的记录
插入数据:insert into 表名(列名1,列名2) values(值1,值2);
例如:insert into stu(id,name) values(001,‘zs‘);
修改数据:update 表名 set 列名1=‘值1‘,列名2=‘值2 where 条件;
例如:update stu set name=‘zs‘ where id=01;
删除数据:delete from 表名 where 条件; 例如:delete from stu where sex=‘m‘;
truncate table 表名; 例如:truncate table stu;
注:delete根据条件可以删除表里部分数据,而truncate则是删除表里全部数据
两者都可以删除表里的所有记录,但原理不同:delete 没有truncate效率高
其实truncate属于DDL语句,因为它是先drop table再create table 而且truncate删除的数据记录无法回滚(即无法恢复找回)
但delete删除的数据记录可以回滚。