-
精品文档
一、数据库概述
数据库
(
DataBase
,
DB
)
:
指长期保存在计算机的存储设备上
,
按照一定规则组织起来,
可以被各种用户或应用共享的
数据集合
。
(
文件系
统
)
数据库管理系统(
DataBase Management
System
,
DBMS
)
:
指一种操作和管理数据库的
大型软件,
用于建立、使用和维护数据库,对数据库进行统一管理和控制,
以保证数
据库的
安全性和完整性。用户通过数据库管理系统
访问数据库中
的数据。
数据库软件应该为
数据库管理系统
,数据库是通过数据库管理系统创建和操作的。
数据库:存储、维护和管理数据的集合。
二、数据库的安装与配置
*
安装
*
参照图解
*
一路下一步
*
配置
*
参照图解
*
到选择字符集时停
登录
Mysql
:
mysql -u root -p abc
*
卸载
<
/p>
1.
停止
mysql
服务
net stop mysql
p>
启动
mysql
服务
net start mysql
2.
卸载
mysql
3.
找到
mysql
安装目录下的
datadir=
Server
5.5/Data/
*
修改密码
运行
cmd
*
安装成功了打开
cmd
--> mysql -uroot
-p
你的密码
*
修改
mysql
root
用户密码
1)
停
止
mysql
服务
运行输入
停止
mysql
服务
或者
cmd -->
net stop mysql
2)
在
cmd
下
输入
mysqld
--skip-
grant-tables
启动服务器
光标不动
(不要关
闭该窗口)
3)
新打开
cmd
输入
mysql -u root -p
不需要密码
精品文档
精品文档
use mysql;
update user set
password=password('abc') WHERE User='root';
4)
关闭两个
cmd
窗口
< br>
在任务管理器结束
mysqld
进程
5)
在服务管理页面
重启
mysql
服务
密码修改完成
数据库中一行记录与对象之间的关系。
列:字段
行:一条记录
(
实体
)
public class User{
private int id;
private
String name;
private int age;
}
三、
s
ql
概述
SQL
:
Structure
Query Language
。
(结构化查询语言)
SQL
被美国国家标准局(
< br>ANSI
)确定为关系型数据库语言的美国标准,后来被国际化标准
组织(
ISO
)采纳为关系数据库语言的国际标准。
精品文档
精品文档
各数据库厂商都支持
ISO
的
SQL
标准
。
普通话
各数据库厂商在标准的基础
上做了自己的扩展。
方言
四、
Sql
的分类
DDL**
(
Data
Definition Language
)
:数据定义语言,
用来定义数据库对象:库、表、列等;
CREATE
、
ALTER
、
DROP
DML***
(
Data
Manipulation
Language
)
:数据操作语言,用来定义数据库记录(数据)
;<
/p>
INSERT
、
UPDA
TE
、
DELETE
DCL
(
Data Control
Language
)
:数据控制语言,用来定义访问权限和安全
级别;
DQL*****
(
Data
Query Language
)
:数据查询语言,用来查询记
录(数据)
。
SELECT
*
注意:
sql
语句以
;
结尾
4.1
DDL:
操作数据库、表、列等
使用
的关键字:
CREATE
、
ALTER
、
DROP
*
4.1.1
操作数据库
创建
c
reate database
mydb1;
Create database mydb2
character set gbk;
Create database
mydb3 character set gbk COLLATE gbk_chinese_ci;
查看当前数据库服务器中的所有数据库
show databases;
查看前面创建的
mydb2
数据库的定义信息
Show
create
database mydb2;
删除前面创建的
mydb3
数据库
Drop database mydb3;
修改
查询
查看
服务器中的数据库,并把
mydb2
的字符集修改为
utf8;
alter database
mydb2 character set utf8;
删除
drop database mydb3;
*
其他:
精品文档
精品文档
查看当前使用的数据库
select
database();
切换数据库
use mydb2;
*
4.1.2
操作数据表
*
语法:
create table
表名
(
字段
1
字段类型
,
字段
2
字段类型
,
...
字段
n
字段类型
);
*
常用数据类型:
int
:整型
dou
ble
:浮点型,例如
double(5,2)
表示最多
5
位,其中必须有
2
位小数,
即最大值为
999.99
p>
;
char
:固定长度字符串类型;
char(10)
'abc
'
varchar
< br>:可变长度字符串类型;
varchar(10) 'abc'
text
:字符串类型
;
blob
:字节类型;
dat
e
:日期类型,格式为:
yyyy-MM-
dd
;
time
:时间类型,格式为:
p>
hh:mm:ss
timestamp
:时间戳类型
yyyy-MM-dd hh:mm:ss
会自动赋值
datetime:
日期时间类型
yyyy-MM-dd hh:mm:ss
当前数据库中的所有表
SHOW
TABLES;
查看表的字段信息
DESC employee;
在上面员工表的基本上增加一
个
image
列。
ALTER TABLE employee ADD image blob;
p>
修改
job
列,使其长度为
60
。
ALTER
TABLE employee MODIFY job varchar(60);
删除
image
列
,
< br>一次只能删一列。
ALTER TABLE
employee DROP image;
表名改为
use
r
。
RENAME TABLE
employee TO user;
查看表格的创建细节
SHOW CREATE TABLE user;
修改表的字符集为
gbk
精品文档
精品文档
ALTER TABLE
user CHARACTER SET gbk;
列名
na
me
修改为
username
ALTER TABLE user CHANGE name username
varchar(100);
删除表
DROP TABLE
user
4.2 DML
操作
(
重要
)
查询表中的所有数据
SELECT * FROM
表名
;
DML
是对
表中的数据
进行增、删、改的操作。不要与
DDL
混淆了。
INSERT
、
UPDATE
、
DELETE
小知识:
在
mysql
中,字符串类型和日期类型都要用单引号括起来。
'
tom'
'2015-09-04'
空值:
null
4.2.1
插入操作:
INSERT:
语法:
INSERT INTO <
/p>
表名(列名
1
,列名
2 ...
)
V
ALUES(
p>
列值
1
,列值
2.
..);
注意:列名与列值的类型、个数、顺序要一一对应。
可以把列名当做
java
中的形参,把
列值当做实参。
值不要超出列定义的长度。
如果插入空值,请使用
null
插入的日期和字符一样,都使用引号括起来。
练习
:
create table emp(
id int,
name varchar(100),
gender
varchar(10),
birthday date,
salary float(10,2),
entry_date date,
resume text
);
INSERT INTO e
mp(id,name,gender,birthday,salary,entry_date,resum
e)
V
ALUES(1,'zhangsan','fema
le','1990-5-10',10000,'2015-5-5-','good girl');
INSERT INTO emp(id,name,gen
der,birthday,salary,entry_date,resume)
精品文档
精品文档
V
ALUES(2,'lisi','male','1995-5-10',10000,'2015-5-5'
,'good boy');
INSERT INTO e
mp(id,name,gender,birthday,salary,entry_date,resum
e)
V
ALUES(3,'wangwu','male',
'1995-5-10',10000,'2015-5-5','good boy');
批量插入:
INSERT INTO emp V
ALUES
(4,'zs','m','2015-09-01',10000,'2015-09-01', NULL),
(5,'li','m','2015-09-01',10000,'
2015-09-01',NULL),
(6,'ww','m','2015-09
-01',10000,'2015-09-01',NULL);
4.2.2
修改操作
UPDATE:
值
练习:
将所有员工薪水修改为
5000
元。
UPDA
TE emp SET salary=5000
将姓名为’
zs
’的员工薪水修改为
3000
元。
UPDA
TE emp SET salary=3000
WHERE name=
’ zhangsan’
;
将姓名为’
aaa
’的员工薪水修改为
4000
元
,job
改
为
ccc
。
UPDATE emp SET
salary=4000,gender='female' WHERE name='lisi';
将
wu
的薪水在原有基础上增加
1000
元。
UPDATE emp SET salary=salary+1000 WHERE
gender='male';
语法:
UPDATE
表名
SET
列名
1=
列值
1
,列名
2=
列值
2
。
。
。
WHERE
列名
=
4.2.3
删除操作
DELETE:
语法
:
DELETE FROM
表名
【
WHERE
列名
=
值】
练习
:
删除表中名称为’
zs
’的记录。
DELETE FROM emp WHERE name=
‘
zs
’
;
删除表中所有记录。
DELETE
FROM emp;
使用
truncate
< br>删除表中记录。
TRUNCATE TABLE
emp;
DELETE
删除表中
的数据,表结构还在
;
删除后的数据可以找回
< br>
TRUNCATE
删除是把表直接
< br>DROP
掉,然后再创建一个同样的新表。
删除的数据不能找回。执行速度比
DELETE
快
。
精品文档
精品文档
4.3 DQL
操作
DQL
数据查询语言
(重要)
数据库执行
DQL
语句不会对数据进行改变,而是让数据库发送结果集给客户端。
查询返回的结果集是一张虚拟表。
查询关键字:
SELECT
语法:
SELECT
列名
FROM
表名
【
WHERE --> GROUP
BY -->HA
VING--> ORDER
BY
】
语法:
SELECT
selection_list /*
要查询的列名称
*/
FROM table_list
/*
要查询的表名称
*/
WHERE condition
/*
行条件
*/
GROUP BY grouping_columns
/*
对结果分组
*/
HA
VING condition
/*
分组后的行条件
*/
ORDER BY sorting_columns
/*
对结果分组
*/
LIMIT offset_start,
row_count /*
结果限定
*/
创建名:
?
学生表:
stu
字段名称
sid
sname
age
gender
CREATE TABLE stu (
sid
CHAR(6),
sname
V
ARCHAR(50),
age
INT,
gender
V
ARCHAR(50)
);
INSERT INTO stu
V
ALUES('S_1001', 'liuYi', 35, 'male');
INSERT INTO stu
V
ALUES('S_1002', 'chenEr', 15,
'female');
INSERT INTO stu
V
ALUES('S_1003', 'zhangSan', 95,
'male');
INSERT INTO stu
V
ALUES('S_1004', 'liSi', 65, 'female');
INSERT INTO stu
V
ALUES('S_1005', 'wangWu', 55, 'male');
INSERT INTO stu
V
ALUES('S_1006', 'zhaoLiu', 75,
'female');
INSERT INTO stu
V
ALUES('S_1007', 'sunQi', 25, 'male');
精品文档
字段类型
char(6)
varchar(50)
int
varchar(50)
说明
学生学号
学生姓名
学生年龄
学生性别
精品文档
INSERT INTO
stu V
ALUES('S_1008', 'zhouBa', 45,
'female');
INSERT INTO stu
V
ALUES('S_1009', 'wuJiu', 85, 'male');
INSERT INTO stu
V
ALUES('S_1010', 'zhengShi', 5,
'female');
INSERT INTO stu
V
ALUES('S_1011', 'xxx', NULL, NULL);
?
雇员表:
emp
字段名称
empno
ename
job
mgr
hiredate
sal
comm
deptno
CREATE
TABLE emp(
empno
INT,
ename
V
ARCHAR(50),
job
V
ARCHAR(50),
mgr
INT,
hiredate
DATE,
sal
DECIMAL(7,2),
comm
decimal(7,2),
deptno
INT
)
INSERT INTO emp values(7
369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20)
;
INSERT INTO emp values(7499,'ALLEN','
SALESMAN',7698,'1981-02-20',1600,300,30);
INSERT INTO emp values(7521,'WARD','SAL
ESMAN',7698,'1981-02-22',1250,500,30);
INSERT INTO emp values(7566,'JONES','MA
NAGER',7839,'1981-04-02',2975,NULL,20);
INSERT INTO emp values(7654,'MARTIN','S
ALESMAN',7698,'1981-09-28',1250,1400,30);
INSERT INTO emp values(7698,'BLAKE','MA
NAGER',7839,'1981-05-01',2850,NULL,30);
INSERT INTO emp values(7782,'CLARK','MA
NAGER',7839,'1981-06-09',2450,NULL,10);
INSERT INTO emp values(7788,'SCOTT','AN
AL
YST',7566,'1987-04-19',3000,NULL,20);
INSERT INTO emp values(7839,'KING','PRE
SIDENT',NULL,'1981-11-17',5000,NULL,10);
INSERT INTO emp values(7844,'TURNER','S
ALESMAN',7698,'1981-09-08',1500,0,30);
INSERT INTO emp values(7876,'ADAMS','CL
ERK',7788,'1987-05-23',1100,NULL,20);
INSERT INTO emp values(7900,'JAMES','CL
ERK',7698,'1981-12-03',950,NULL,30);
INSERT INTO emp values(7902,'FORD','ANA
L
YST',7566,'1981-12-03',3000,NULL,20);
INSERT INTO emp values(7934,'MILLER','C
LERK',7782,'1982-01-23',1300,NULL,10);
?
部分表:
dept
字段名称
字段类型
说明
字段类型
int
varchar(50)
varchar(50)
int
date
decimal(7,2)
decimal(7,2)
int
说明
员工编号
员工姓名
员工工作
领导编号
入职日期
月薪
奖金
部分编号
精品文档
精品文档
deptno
dname
loc
CREATE TABLE dept(
deptno
INT,
dname
varchar(14),
loc
varchar(13)
);
INSERT INTO dept values(10,
'ACCOUNTING', 'NEW YORK');
INSERT INTO
dept values(20, 'RESEARCH', 'DALLAS');
INSERT INTO dept values(30, 'SALES',
'CHICAGO');
INSERT INTO dept values(40,
'OPERATIONS', 'BOSTON');
int
varchar(50)
varchar(50)
部分编码
部分名称
部分所在地点
1
基础查询
1.1
查询所有列
SELECT *
FROM stu;
1.2
查询指定列
SELECT sid,
sname, age FROM stu;
2
条件查询
2.1
条件查询介绍
条件查询就是在查询时
给出
WHERE
子句,
在
WHERE
子句中可以使用如下运算符及关
键字:<
/p>
?
=
、
!=
、
<>
、
<
、
<=
、
>
、
>=
;
?
BETWEEN
…AND
;
?
IN(set)
;
?
IS
NULL
;
IS NOT NULL
?
AND
;
?
OR
;
?
NOT
;
2.2
查
询性别为女,并且年龄
50
的记录
SELECT * FROM
stu
WHERE gender='female'
AND ge<50;
精品文档
-
-
-
-
-
-
-
-
-
上一篇:(完整版)系统设计文档编写规范及示例(1)
下一篇:英语考试反思8篇精华版