-
sql
数据库示例
-
适
合初学者
一、数据库概述
数据库
(
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
不需要密码
1
/
19
sql
数据库示例
-
适合初学者
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
)采纳为关系数据库语言的国际标准。
2
/
19
sql
数据库示例
-
适合初学者
各数据库厂
商都支持
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;
*
其他:
3
/
19
sql
数据库示例
-
适合初学者
p>
查看当前使用的数据库
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
4
/
19
sql
数据库示例
-
适合初学者
ALTER TABLE user CHARACTER SET gbk;
列名
name
修改为
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)
5
/
19
sql
数据库示例
-
适合初学者
p>
V
ALUES(2,'lisi','m
ale','1995-5-10',10000,'2015-5-5','good boy');
INSERT INTO emp(id,name,gen
der,birthday,salary,entry_date,resume)
V
ALUES(3,'wangwu','male','1995-5-10',10
000,'2015-5-5','good boy');
批量插入:
INSERT INTO
emp V
ALUES
(4,'zs','m','2015
-09-01',10000,'2015-09-01',NULL),
(5,'l
i','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
快
。
6
/
19
sql
数据库示例
-
适合初学者
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');
7
/
19
char(6)
varchar(50)
int
varchar(50)
学生学号
学生姓名
学生年龄
学生性别
sql
数据库示例
-
适合初学者
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
员工编号
员工姓名
员工工作
领导编号
入职日期
月薪
奖金
部分编号
8
/
19
sql
数据库示例
-
适合初学者
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;
9
/
19
-
-
-
-
-
-
-
-
-
上一篇:主要资源记录类型及应用示例
下一篇:实用新型专利申请书示例(带图)