一、什么是数据库?
数据库是以一定组织方式储存在一起的,能为多个用户共享的,具有尽可能小的冗余度的,与应用彼此独立的相互关联的数据集合。
二、DBMS是什么?
DBMS是数据库管理系统(Database Management System)的英文缩写,它是操作和管理数据库的大型软件,是用于建立,使用和维护数据库,它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
三、数据的三种存储方式:
文件、数据库、网络
四、数据库的分类:
数据库目前分为两类,一种是关系型数据库,另一种是NoSQL数据库,关系型数据库主要有MySQL(MySQL AB公司的,后来被sun公司收购,sun公司又被Oracle收购,它是开源的免费的,企业版是收费的,LAMP的组合成员,LAMP代表的是Linux,Apache,MySQL,PHP),Oracle(软件是免费的,但提供的技术支持是收费的),SQLServer(微软公司的数据库管理系统,一般开发微软项目会用这个数据库),IBM DB2(IBM公司的,收费软件),PostgreSQL(用的比较少)。NoSQL数据库主要有mongoDB(目前也比较流行),Redis(它是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库)。
五、数据库中的数据类型
整型:
浮点型:
字符型:
(这里面需要说明一点,char是定长,varchar是变长,那么两者的区别是什么呢?如char(20)和varchar(20)这两个都表示最多能存进去20个字节的数据,如果我存进一个tom,char中是20个字节,而varchar里面是3个字节)
日期时间型:
六、MySQL中的基本命令
连接数据库:
mysql -uroot -proot
数据库退出:
quit;或者exit;
显示数据库:
show databases;
在使用某个数据库时,一定要先切换的该数据库,命令为:
use databasename;
查看某个数据库里面的有哪些表时:
show tables;
查看某个表的结构:
desc tablename;
查看当前时间和数据库版本:
select now(),version();
创建数据库:
create database student;
创建表:
create table t_stu
(id int auto_increment, --设置id为自增长
stuname varchar(20), --stuname varchar(20)not null,表示该数据不能为null
stuage int,
stuaddress varchar(100), --stuaddress varchar(200)default '中国',表示设置了默认值,如果该数据没有添加时,数据就是设置的默认值
stucode varchar(20) not null unique, --除了主键之外,需要让该列有唯一性
primary key(id)); --设置id为主键
插入数据(一次可以插入一条或多条数据):
insert into t_stu
(stuname,stuage,stuaddress)
values
('tom',23,'USA'),
('jack',22,'UK'),
('张三',22,'北京');
查询表中数据:
select * from t_stu; --查询表中的所有数据
select id,stuname,stuage,stuaddress from t_stu; --查询给定的列
七、主键:(主键是用来保证记录的唯一性)
1、在设计表的时候总是要定义表的主键
2、表的主键设计策略:
- 任意两行都不具备相同的主键值;
- 每行都必须具有一个主键值(主键不允许null列);
- 主键和业务无关,不改变,不重用(和业务无关是说明和表中数据无任何关联,因为里面的数据在未来不可避免会改变,如果主键和数据相关,那么也将会带来改变)
3、主键可以是一个列或多个列的组合
4、使用primary key(xxx)来声明一个主键
5、如果使用多个列作为主键,那么有需要用primary key(xx,xxxx)来声明
八、更多命令
删除数据库:
drop database student;
删除表:
drop table t_stu; --不仅删了表中的数据,还把表给删除了
添加一列:
alter table t_stu add tel varchar(20);
删除一列:
alter table t_stu drop column tel;
添加唯一约束:
alter table t_stu add constraint uk_stucode unique(stucode);
删除唯一约束:
alter table t_stu drop index uk_stucode;
添加主键约束:
alter table t_stu add constraint pk_t_stu_id primary key t_stu(id);
删除主键约束:
alter table t_stu drop primary key;
添加默认约束:
alter table t_stu alter stuaddress set default '中国';
添加非null约束:
alter table t_stu modify column stuname varchar(20) not null;
重命名表:
rename table t_stu to t_user;
导入数据库:(先退出数据库;)
mysqldump -hlocalhost -uroot -proot stu>E:/my.sql
导入数据库:
source E:/my.sql