一、数据库相关概念
1 DB
DataBase的简写
按照某一特定的数据结构来组织、存储和管理数据的仓库
2 DBMS
DataBase Manager System 数据库管理系统
用来管理和维护数据库(DB)的软件系统
可以实现创建、查询、修改等操作
使用SQL语言进行操作
介于用户和DB之间
3 Table
1.数据表是数据库的基本存储单元,数据库是有N张表构成的
2.数据表是二维结构的,由行(row)和列(column)组成
3.行指的是横排数据,也称之为记录(recond)
4.列指的是竖排数据,也称之为属性(field)
5.表与表之间有关系:一对一、一对多、多对多
4.关系型数据库
1.建立在关系模型基础上的数据库,称之为关系型数据库
2.常用的关系型数据库:
SQLServer:微软旗下产品
MYSQL:Oracle旗下产品
Oracle:Oracle旗下产品
Access:微软旗下产品
DB2:IBM旗下产品
二、数据库的安装与连接
1.MYSQL数据库的安装
2.MYSQL的卸载
通常90%以上的软件包内都会自带卸载程序。多数情况下会有注册表残留。
1. 关闭mysql所有的服务。可以在windows的服务管理器中关闭;
2. 打开注册表,找到路径:
HKEY_LOCAL_MACHINE\SOFTWARE\mysql
删除该mysql目录,该目录下注册着mysql数据库的软件安装信息。
3. 打开注册表:regedit 打开路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
删除该路径下的所有以mysql开始的服务名称,这个键是标识mysql在windows下注册的各种服务!
4. 删除注册的mysql事件日志,打开注册表
5. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application
删除注册表的以mysql开头的所有项目。
6. 删除环境变量path中关于mysql的内容。
7. 重新启动操作系统。
以上1~5个步骤操作完毕后,重新启动操作系统。
8. 重启操作系统后各种mysql相关的进程都不会加载了。
这时删除mysql_Home下的所有数据。(mysql_Home指mysql程序的安装目录)
9. 删除C:\Program Files下mysql目录。
(该目录视mysql安装所在路径而定)
10. 至此,Windows平台下mysql就彻底卸载了。
3.数据库的连接
1.DOS连接(需配置环境变量path)
连接命令 mysql -u 用户名 -p 回车输入密码
2.客户端连接
3.使用编程语言连接 JDBC
三、结构化查询语言
1.简介
结构化查询语言,简称SQL。是一种专门用于管理和操作数据库的标准编程语言。
可以用于对数据进行增、删、改、查等操作(CRUD)。SQL语言可以进行嵌套,因此灵活性较大。
而又因为每个数据库厂商对SQL进行了改变和扩充,因此每家SQL语言不完全一致
2.分类
1.DDL:数据定义语言
2.DML:数据操纵语言
3.DCL:数据控制语言
4.DQL:数据查询语言
5.TCL:事务控制语言
3.DDL
用于创建、修改、删除数据库内的对象(数据库、表、列...)
create、alter、drop、truncate
1.库操作
1.创建数据库:create database dbname(数据库名)[default character set charactername(编码集名称)]
2.使用数据库:user dbname;
3.查看当前使用的数据库:select datebase();
4.显示所有数据库:show databases;
5.查看创建数据库的语句:show create database dbname;
6.删除数据库:drop database dbname;
7.show variables like '%char%';
8.show variables like '%datadir%';
9.修改dos当前窗口的字符集:set name GBK;
2.表操作
1.创建表:create table tbnme(
colName1 type1,
colName2 type2,
...
colNameN typeN
);
2.查看建表语句:show create table tbname
3.添加字段:alter table tbname add newColName newType;
4.修改类型:alter table tbname modify colName newType;
5.修改字段名:alter table tbname change oldColName newColName type;
6.删除字段:alter table tbname drop colname;
7.查看表结构:desc tbname; / show columns from tbname;
8.删除表结构:drop table tbname;
9.修改表名:alter table tbname rename newtbname;
10.备份表结构:create table newtbname like oldtbname;
11.备份表:create table newtbname as select * from oldtbname;
12.删除表数据,保留表结构:truncate table tbname;
13.显示所有表:show tables
3.数据类型
1.数值类型
-int:整型,最长支持11位
-double(m,n):双精度,m表示有效数字位数,n表示小数点后的有效位数,则整数位为m-n
-float(m,n):单精度
2.字符类型
-varcha r(n):可变字符串类型
-char(n):不可变字符串类型
3.日期类型
-date:yyyy-MM-dd
-datetime:yyyy-MM-dd HH:mm:ss
-timestamp:yyyy-MM-dd HH:mm:ss,自动赋值
4.DML
用于对表中数据的插入、删除、修改。
关键字:insert into、delete、update
1.数据的插入
-insert into tbname values(val1,val2,...,vlaN);
-insert into tbname (colName1,colName2...) values(val1,val2...);
2.表字段的默认值
1.可以在建表后设置
alter table tbname modify colName newType [default val]
2.可以在建表时设置
create table tbname (colName typ1 [default val]);
3.删除表中的数据
1.删除表中的所有记录(与truncate不同)
delete from tbname
2.可以使用where条件进行过滤筛选,删除符合条件的某些记录
delete from tbname where 条件表达式
3.where条件
1.关系表达式:>,>=,<=,=,不等于 != (<>)
e.g. where fage=20;
where fage<>20;
2.条件连接符:and、or、between val1 and val2
where fage>=20 and fage<=40;
where fage>20 or fgender='f';
where fage between 20 and 40; (包含20和40)
3.集合操作:in(set),not in(set),>all(set),>any(set)
4.模糊匹配:like
_:通配符(占位符),表示匹配任意一个字符
%:通配符(占位符),表示匹配任意个字符(0-N)
e.g.
where fname like '张%';
where fname like '_A%';
where fname like '%a';
4.修改数据:update
update tbname set colName=newval,... [where 条件]
5.TCL
事务控制语言
当一个任务涉及到多个DML操作时,要把这个任务看成一个整体,这个整体具有原子性,不可分割。
发生时要么成功执行,要么回滚到任务开始处。
commit:事务成功后必须提交。持久化存储
rollback:事务不能成功执行时,必须回滚到任务开始时,或者回滚到保存点
savepoint:保存点
注意:mysql数据库的存储引擎innodb是支持事务的,而且是默认提交的
6.DCL
数据控制语言
1.创建用户:create user username@ip identified by 'password';
2.修改用户密码:set password for username@ip=password('newpassword');
3.授权 grant 权限1,权限2,... on dbname.* to username@ip;
4.撤销权限 revoke 权限1,权限2,... on dbname.* from username@ip;
5.删除用户 drop user username@ip;
7.DQL
数据查询语言
select 选择
1.基本结构
select colname1,colname2,.. from tbname;
2.一个完整的查询语句
select distinct... from tbname1 [join tbname2] [on ...] [where ...] [group by ...]
[having ...] [order by ... asc(升)/desc(降) ,colname2,...] [limit ... ]
3.执行顺序
1.from子句
2.join子句
3.on子句
4.where条件
5.group by子句
6.having子句
7.select子句
8.order by子句
9.distinct
10.limit子句