数据库的基本概念
数据库(database,DB)
长期保存在计算机的存储设备上
,按照一定的规则组合在一起,可以被各种用户或者应用共享的数据集合。
数据库管理系统(database management system, DBMS)
指一种操作和管理数据库的大型软件,用于建立使用和维护数据库,
数据库软件应该为数据库管理系统,数据库是通过数据库管理创建和操作的
数据库:
存储维护和管理数据的结合
常见数据库
关系型数据库
Mysql
Oracle
Db2
Mssql
非关系型数据库(nosql)
Redis
Hbase
Mango
Sql的分类
DDL
(data definition language):数据库定义语言
用来定义数据库对象:数据库,表,列
DML (data manipulation
language)
数据库操作语言
用于定义数据库记录(数据), 对操作数据
DCL (data
control language) 数据控制语言
用于定义访问权限和安全级别
DQL (data Query language) 数据查询语言
DDL :操作数据库 ,表, 列
使用关键字
:create (创建),alter(修改), drop(删除)
操作数据库
创建
Create
database 库名 character set 字符集 collate 核对
CREATE
DATABASE mysql03;
CREATE DATABASE mysql104 CHARACTER SET gbk
COLLATE gbk_chinese_ci;
查询
查询当前数据库服务器:
SHOW DATABASES;
查看数据库的定义信息
SHOW CREATE DATABASE 表名;
改
修改mysql104数据库中的字符集
ALTER DATABASE 表名CHARACTER
SET 字符集;
删除
DROP DATABASE 表名;
其他
切换其他数据库
USE 表名
查看当前使用的数据库
Select database()
操作数据表
创建
Create table 表名(
字段1 字段类型
字段2 字段类型
)character set 字符集 collate 校对规则
Int:整型
Double:浮点型,
例如:double(5,2),最多5位,其中必须有2个小数
char:固定长度的字符串类型
char(10), “aaa”,占10位
varchar:可变长度字符串类型
varchar(10) “aaa”,占3位,
text文本类,字符串
blob:字节类型
date:日期类型,格式:yyyy-MM-dd
time:时间类型,格式hh:mm:ss
timestamp:时间戳类型:yyyy-MM-dd
hh:mm:ss 会自动赋值
dateTime:日期时间类型: yyyy-MM-dd
hh:mm:ss
查看
查
Show tables
查看表中的字段信息
Desc 表名
添加列
ALTER TABLE stu ADD class CHAR(10);
修改列的信息
Alter table stu modify class varchar (50)
删除列
ALTER TABLE 表名DROP 列名;
修改表名
Rename table 表名 to new表名;
修改列名
Alter table tb-stu change 列名 to new列名 属性
显示表的创建细节
Show create table 表名
修改字符集
Alter table 表名 character set 字符集
删除表
Drop table 表名
DML:操作表的数据
DML 是对表中的数据进行增 删 改的操作
Insert(插入)
Update(更新)
Delete (删除)
字符串
日期都是单引号
空值 null
插入 insert
INSERT 表名(列名,列名)VALUE (列值,列值);
一一对应:
INSERT stu VALUE (‘s001’,‘张三’,‘female’,‘55’);
INSERT stu VALUE (‘s002’,‘李四’,‘male’,‘44’);
INSERT stu VALUE (‘s003’,‘王五’,‘female’,‘33’);
INSERT stu VALUE (‘s004’,‘赵六’,‘female’,‘22’);
INSERT stu VALUE (‘s005’,‘孙七’,‘female’,‘11’);
INSERT stu VALUE (‘s006’,‘周八’,‘male’,NULL);
INSERT stu VALUE (‘s007’,‘吴九’,‘female’,NULL);
INSERT stu VALUE (‘s008’,‘郑十’,‘female’,‘26’);
修改操作
Update 表名 set 列名1=列值1 ,列名2=列值2 【where 列名=列值】
删除
删除表中某些行的数据
Delete from 表名 【where 列名=值】
Truncate table 表名
Delete 删除表中的数据,表在 可找回
Drop
删除表,表没了
Truncate
删除表中数据,表在,
不可找回
企业中一般不轻易删除数据
,使用一个布尔类型的字段,用false 表示 被delete了
字符集错误
查看数据库编码的具体信息
Show variables like ‘character%’
修改字符集
SET character_set_client =gbk
DQL(数据查询)
DQL语句不会对数据进行改变,而是让数据库返送结果集到客户端
查询返回结果不变:是一张虚拟表
语法
Select 列名 from 表名 where group by … having …order by …limit…
Select
列名 //要查询的列的名称
from
表名 //要查询的表的名称
【where … //行条件,满足那些条件的行,我才是需要的
group by …//对结果进行分组
having …
//对分组之后的数据进行过滤,与where功能类似
order by ….//对结果进行排序,asc/desc
limit offset_start ,row_count】 //对结果限定 ,从offset_start,读取row_count行
查看表中的列
SELECT * FROM stu;
查询指定列
SELECT sname,age FROM stu;
条件查询
介绍
条件查询就是在查询的时候给出where子句,按照一定的要求查询数据。
在where子句中可以使用运算符及关键字。
(1)=、!=、<> 、<、<=、>、>=
(2)between …
and ;
(3)in (set)
(4)and
(5)or
(6)not
And = <
查询是女的
且 小于40岁的
SELECT * FROM stu WHERE gender=‘female’ AND
age<40
Or not >=
查询不是女的
或者 年龄>=40岁的
SELECT * FROM stu WHERE NOT gender=‘female’
OR age>=40
between … and ; in
(set)
查询学号为s001,s002,s003, 或者年龄在10到20之间的
SELECT * FROM stu WHERE sid IN
(‘s001’,‘s002’,‘s003’) OR age BETWEEN 10
AND 20;
Is !
<>
查询年龄是null, 或者不是女的
SELECT * FROM stu WHERE age IS NULL OR gender !=‘female’;
SELECT * FROM stu WHERE age IS NULL OR gender <>‘female’;