数据库
1、数据库的好处
(1)实现数据持久化
(2)数据结构化,易于查询和管理
(3)数据的共享性高,冗余度低,易于扩充
(4)由DBMS统一管理和控制,易于维护
2、数据库和应用程序的关系
3、数据库的概念
数据(Data):反应事物客观属性的记录,是信息的载体。描述事物的符号的记录(广义)
数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。是长期存储在计算机内,有组织,可共享的大量数据的集合。数据库和数据库软件经常混淆,实际上,数据库软件应称为:DBMS(数据库管理系统)。数据库是通过DBMS创建和操作的容器。
数据库管理系统(DataBase Management System) 是一种位于应用软件和操作系统之间,建立管理和维护数据库的软件系统
数据库系统(DataBase System) 是实现有组织的动态的存储大量关联数据方便多用户访问的计算机软件,硬件和数据资源组成的系统,包括数据库、数据库管理系统、应用程序和数据库管理员。
5、数据库的特点
(1)将数据放到表中,表再放到库中
(2)一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性。
(3)表具有一些特性,这些特性定义了数据在表中如何存储,类似java中 “类”的设计。
(4)表由列组成,我们也称为字段。所有表都是由一个或多个列组成的,每一列类似java 中的”属性”
(5)表中的数据是按行存储的,每一行类似于java中的“对象”。
SQL概述
1、SQL语言概述
SQL(Structure Query Language):专门用来与数据库通信的语言。
SQL的优点:
1、不是某个特定数据库供应商专有的语言,几乎所有DBMS都支持SQL
2、简单易学
3、虽然简单,但实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作
2、SQL 语言分类
(1)DML(Data Manipulation Language):数据操纵语句,用于添加、删除、修改、查询数据库记录,并检查数据完整性
(2)DDL(Data Definition Language):数据定义语句,用于库和表的创建、修改、删除。
(3)DCL(Data Control Language):数据控制语句,用于定义用户的访问权限和安全级别。
3、DML
DML用于查询与修改数据记录,包括如下SQL语句:
INSERT:添加数据到数据库中
UPDATE:修改数据库中的数据
DELETE:删除数据库中的数据
SELECT:选择(查询)数据
SELECT是SQL语言的基础,最为重要。
4、DDL
DDL用于定义数据库的结构,比如创建、修改或删除数据库对象,包括如下SQL语句:
CREATE TABLE:创建数据库表
ALTER TABLE:更改表结构、添加、删除、修改列长度
DROP TABLE:删除表
CREATE INDEX:在表上建立索引
DROP INDEX:删除索引
5、DCL
DCL用来控制数据库的访问,包括如下SQL语句:
GRANT:授予访问权限
REVOKE:撤销访问权限
COMMIT:提交事务处理
ROLLBACK:事务处理回退
SAVEPOINT:设置保存点
LOCK:对数据库的特定部分进行锁定
1、Mysql程序结构图
Mysql Windows平台下载地址:http://dev.mysql.com/downloads/mysql
Mysql 安装教程网上都有
安装后,启动服务
Mysql 常用命令
登录
mysql –h 主机名 –u用户名 –p密码
C:/> mysql -h 192.168.1.45 -u root -p root |
(2)显示所有数据库
mysql > show databases; |
(3)进入指定的数据库
use 库名;
mysql > use mysql; |
(4)查看库中所有表
show tables from 库名;查看其他库中的所有表
mysql > show tables; mysql > show tables from mysql; |
(5)查看当前库
mysql > select database(); |
(6)查看版本
C:/ > mysql -version //进入mysql客户端之前 C:/ > mysql -V //进入mysql客户端之前 mysql > select version(); //进入mysql客户端之后 |
(7)新建一个数据库
mysql > create database spark |
(8)建表
mysql > create table customer(id varchar<30>,age int, name varchar<30>,birthday date) |
(9)查看表结构
mysql > desc customer |
(10)查看表
mysql > select * from customer |
(11)查询特定列
mysql > select id,name,sex from student |
(12)查询数据并进行过滤
mysql > select id,name,sex from student where id => 1003 |
(13)运算符查询
mysql > select id,name,sex from student where age >=18 and age <=35 mysql > select id,name,sex from student where age between 18 and 35 |
(14)查询变种
mysql > select * from student where age =18 or age =35 or age =23 mysql > select * from student where age in (18,23,35)
mysql > select * from student where name like '%小%' mysql > select * from student where name like '_明%'
mysql > select * from student where email is null mysql > select * from student where email is not null
mysql > select * from student order by age //升序 mysql > select * from student order by age desc //降序 |
尖叫提示:%匹配任意多个字符,_只匹配一个字符
(15)插入数据
mysql > insert into student(id,name) values(1001, '小明') |
尖叫提示:插入 varchar 或 date 型的数据要用 单引号 引起来
(16)修改表
mysql > update student set name='小红' where id = 1001 |
(17)删除表记录
mysql > delete from student where id =1001 |
(18)删除表
mysql > drop customer |
(19)退出
mysql > exit ctrl+C |
SQL语言 的分类
DQL语言:Data Query Language 数据查询语言
select
DML语言:Data Manipulate Language 数据操纵语言
insert、update、delete
DDL语言:Data Define Language 数据定义语言
create、alter、drop
DCL语言:Data Control Language 数据控制语言
commit、rollback
Mysql 语法规范
(1)不区分大小写
(2)每句话用;或\g结尾
(3)MySQL的注释:
单行注释:#
单行注释:--
多行注释:/* */
(4)sql语句可以写在一行或多行,各子句一般分行写
(5)关键字不能缩写也不能分行
(6)用缩进提高语句的可读性
基础查询
select:查看、选择、显示 语法: select 要显示的东西 类似于 System.out.println(要打印的东西);
要显示的东西: ①常量 ②表达式 ③函数 ④字段,但要显示字段必须添加from 表名 语法: select 字段 from 表;
*/ #1.显示常量 SELECT 100; SELECT 'john';
#2.显示表达式 SELECT 98*23;
#3.显示函数(方法) SELECT LENGTH('john'); SELECT VERSION();
#4.显示表中的字段 SELECT last_name FROM employees;
#5.显示表中的多个字段 SELECT `last_name`,`phone_number`,`first_name`,`salary`,`commission_pct`,`manager_id` FROM `employees`;
#6.显示表中所有字段 SELECT * FROM employees;
#7.起别名 #方式一: SELECT last_name AS 姓,first_name AS 名 FROM employees;
#方式二: SELECT last_name 姓,first_name 名 FROM employees;
#示例:别名:out name SELECT last_name "out name" FROM employees;
#8.如何去重 #查询employees表中的所有部门编号 -- distinct SELECT DISTINCT department_id FROM employees; |
条件查询
#条件查询 /* 概念:根据指定的条件过滤出数据 语法: select 字段 from 表名 where 条件;
分类: 1、按条件表达式查询 条件运算符: > 、< 、>=、 <=、 =、 !=、 <>、 ,<=>安全等于,用于判断是否为null
2、按逻辑表达式查询 逻辑运算符: and、&& 两个条件都为true,结果为true,反之为false or、|| 两个条件只要有一个为true,结果为true,反之为false not、! 如果连接的条件本身为false,结果为true,反之为false
//优先级 not > and > or
3、模糊查询:*/
#一、按条件表达式查询</ |