数据库(Database,简称DB):用于存储和管理数据的仓库
特点:
可以持久化存储数据,数据库其实是一个文件系统
方便存储和管理数据
使用了统一的方式操作数据库(SQL)
常见数据库软件:
MySQL:开源免费的数据库,小型的数据库,已经被 Oracle 收购了。MySQL6.x 版本也开始收费。后来Sun公司收购了 MySQL,而 Sun 公司又被 Oracle 收购。
Oracle:收费的大型数据库,Oracle 公司的产品。
DB2 :IBM 公司的数据库产品,收费的。常应用在银行系统中。
SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net 等语言常使用。
MySQL服务启动
- 手动。
- cmd–>
services.msc
打开服务的窗口 - 使用管理员打开cmd
net start mysql
: 启动mysql的服务net stop mysq
l:关闭mysql服务
MySQL登录
mysql -uroot -p密码
mysql -hip -uroot -p连接目标的密码
mysql --host=ip --user=root --password=连接目标的密码
MySQL退出- exit
- quit
SQL(Structured Query Langage,结构化查询语言):其实就是定义了操作所有关系型数据库的规则,每种数据库操作的方式存在不一样的地方,称之为“方言”
SQL通用语法
1.SQL语句可以单行或多行书写,以分号结尾。
2.可以使用空格和缩进来增强语句的可读性。
3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
4.三种注释
单行注释:-- (杠杠空格)注释内容或#(MySQL独有,不需要加空格)注释内容
多行注释:/注释内容/(与Java相同)
SQL分类:
1.DDL(Data Definition Language)数据定义语言
用于定义数据库对象:数据库,表,列等,关键字create,drop,alter等
2.DML(Data Manipulation Language)数据操作语言
用于数据库中表的数据的增删改,关键字:insert,delete,update等
3.DQL(Data Query Language)数据查询语言
用于查询数据库中表的记录(数据),关键字:select,where
4.DCL(Da Control Language)数据控制语言
用于定义数据库的访问权限和安全级别及创建用户,关键字:grant,revoke
DDL操作数据库和表
操作数据库(CRUD)
1.C(create):创建
创建一个数据库:create database 数据库名称;
判断数据库是否存在,若不存在则创建数据库:create database if not exists 数据库名称;
创建数据库并指定字符集:create database 数据库名称 character set 字符集名称;
2.R(retrieve):查询
查询所有数据库:show databases;
查询某个数据库的创建细节:show create database 数据库名称;
3.U(update):修改
修改数据库的字符集:alter database 数据库名称 character set 字符集名称;
4.D(delete):删除
删除数据库:drop database 数据库名称;
判断数据库是否存在,若存在则删除数据库:drop database if exists 数据库名称;
5.使用数据库
查询当前正在使用的数据库:select database();
使用数据库:use 数据库名称;
操作表
数据类型:
int(整数类型):age int,
double(小数类型):score double(5,2)(5代表一共5位数,2代表有两位小数)
date:日期(只包含年月日),yyyy-MM-dd
datetime :日期(包含年月日时分秒),yyyy-MM-dd HH-mm-ss
timestamp:时间戳,包含年月日时分秒,yyyy-MM-dd HH-mm-ss(如果不给该类型字段赋值或赋值为null,则默认使用当前系统的时间)
varchar(字符串类型):name varchar(20)(20代表姓名最大20个字符)
1.C(create):创建
语法:
create table 表名(
列名1 数据类型1,
列名2 数据类型2,
...
列名n 数据类型n, );
复制表:create table emp like student;
2.R(retrieve):查询
查询某个数据库的所有表:show tables;
查询指定表的结构:desc 表名称;
3.U(update):修改
修改表名:alter table emp rename to employe;
修改表的字符集:alter table 表名 character set 字符集名称;
添加列:alter table 表名 add 列名 数据类型;
修改列名和类型:alter table 表名 change 要修改的列名 新列名 新类型;
修改列的类型 : alter table 表名 modify 列名 新类型;
删除列:alter table 表名 drop 列名;
4.D(delete):删除
删除表:drop table 表名;
判断表是否存在,若存在则删除:drop table if exists 表名;
DML(增删改表中记录)
1.添加数据
语法:insert into 表名(列名1,列名2,...,列名n)values(值1,值2,...,值n);
注意:列名和值要一一对应;如果表名后不写列名,则默认给所有列添加值(例:insert into 表名 values(值1,值2,…,值n));除了数字类型,其他类型需要使用引号(单双都可)引起来。
2.删除数据
语法:delete from 表名 [where条件];
注意:如果不加where条件,则删除表中所有记录;如果要删除表中所有数据,可是使用delete from 表名(不推荐使用,有多少条记录就会执行多少次删除操作),推荐使用truncate table 表名(先删除表,然后再创建一个一样的表,效率更高)。
3.修改数据
语法:update 表名 set 列名1=值1,列名2=值2, ...,列名n=值n [where条件];
注意:如果不加任何条件,则会将表中所有记录全部修改。