今天正式进入数据库的学习了,我们以后吃饭的东西,必须认真学!!!一、常见的数据库管理系统(了解)
MYSQL :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。
Oracle :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。
DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中.
SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。
SyBase :已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。
SQLite : 嵌入式的小型数据库,应用在手机端。
Java相关的数据库:MYSQL,Oracle.
二、SQL语句
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,
用于存取数据以及查询、更新和管理关系数据库系统。
数据定义语言(了解) :简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。
关键字:create,alter,drop等
数据操作语言(掌握★) :简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。
关键字:insert,delete,update等
数据控制语言(了解) :简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户。
数据查询语言(掌握★★):简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等
数据类型:
整形: int
浮点型:double
字符型:varchar
日期: date
DDL(了解):
数据库:
创建:create database 数据库名;
查看:show databases;
删除:drop database 数据库名称;
切换:use 数据库名;
表:
创建:create table 表名(
字段名 类型(长度) 约束,
字段名 类型(长度) 约束
);
约束:
primary key:主键(唯一,非空) + auto_increment(自增)
not null :非空
查看(表数量):show tables;
查看(表结构):desc 表名;
删除 :drop table 表名;
修改:
添加列 :alter table 表名 add 列名 类型(长度) 约束;
修改列的属性:alter table 表名 modify 列名 类型(长度) 约束;
改名 :alter table 表名 change 旧列名 新列名 类型(长度) 约束;
删除 :alter table 表名 drop 列名;
修改表名 :rename table 表名 to 新表名;
DML(掌握★)
-- 插入数据
INSERT INTO prduct (pid,pname,price) VALUES (1,'华硕笔记本',4000),(2,'oppo r9',1999);
表名 主键自增
INSERT INTO prduct VALUES (NULL,'iphone6sp',3999),(NULL,'huwei p8',2599);
-- 删除数据
DELETE FROM prduct WHERE pid=4;
-- 删除表中所有数据,AUTO_INCREMENT 不清空
DELETE FROM prduct;
-- 摧毁表,重新建一张,AUTO_INCREMENT 清空
TRUNCATE TABLE prduct;
-- 修改数据
UPDATE prduct SET pname='oppo r9s',price=2222 WHERE pid=2;
-- 条件查询
/*
数据库中
= 等于
<> 不等于
<= 小于等于
java中 数据库中
&& and 与
|| or 或
! not 非
*/
DQL(掌握★★)
-- 查询所有
SELECT * FROM zhangwu;
-- 分开查询
SELECT zname,id FROM zhangwu;
-- 查询去掉重复记录
-- distinct 关键字 (后面跟几个列名,就同时对列名去重)
SELECT DISTINCT zname FROM zhangwu;
SELECT DISTINCT zname,zmoney FROM zhangwu;
-- AS 别名(暂时性的,只在该条查询语句起作用)
SELECT zname AS 消费情况 FROM zhangwu;
-- 直接计算
SELECT (2121%23)
SELECT zmoney+10000 AS 价格 FROM zhangwu;
-- 条件查询
SELECT * FROM zhangwu WHERE zname='吃饭支出';
SELECT * FROM zhangwu WHERE zmoney+700>=1000;
SELECT * FROM zhangwu WHERE zmoney>=1000 AND zmoney<=5000;
SELECT * FROM zhangwu WHERE zmoney BETWEEN 1000 AND 5000;
SELECT * FROM zhangwu WHERE zmoney IN (1000,5000,8000);
-- 模糊查询 like
-- _ 一个代表一个字符 查询长度为5的名字
SELECT * FROM zhangwu WHERE zname LIKE '_____';
-- % 任意多个字符 以支出结尾的
SELECT * FROM zhangwu WHERE zname LIKE '%支出';
-- not 非 不是空的
SELECT * FROM zhangwu WHERE zname IS NOT NULL;
SELECT * FROM zhangwu WHERE NOT (zname IS NULL);
|
|