1.什么是本地化,什么是持久化。
:持久化是将程序数据在持久状态和瞬时状态间转换的机制。通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)。
2.关系型数据库
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。
3.Mysql
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
4.数据库操作
查看数据库 show databases;
创建数据库 create database t1;
CREATE DATABASE IF NOT EXISTS t1;
创建数据库 使用的是create关键字
查看警报信息
SHOW WARNINGS
显示数据库的编码方式:
SHOW CREATE DATABASE t1;
修改数据库使用的是ALTER 关键字
修改数据库的编码字符集
ALTER DATABASE t2 CHARACTER SET = utf8;
删除数据库 DROP DATABASE t2;
以上三种操作方式的语言
DDL数据定义语言(CREATE ALTER DROP)
5.数据类型
1.整型:
bit(布尔型):只能输入true或false,输入1是自动转化为TRUE,0是自动转化为FALSE
tinyint:只能输入0到225之间的整数
smallint(两个字节组成的整数):-32768~32767
int(四个字节组成的整数):2的31次方
bigint(八个字节组成的整数):2的63次方
2.货币型:
money,可以四位小数
3.日期型:
data:2001.1.1~9999.12.31
datatime:1753.1.1~9999.12.31
time:更精确
4.字符型:
char(8000):固定长度,8000为最大。例char(10)可以存10个字符,5个汉字nchar(4000):定常,4000为最大。例nchar(10)可以存10个字符,10个汉字varchar(8000):变长。例varchar(10)假如只输入5个,则只会占用5个,若为char(10),只输入5个时,剩余的5位会用0补齐。nvarchar(4000):变长nvarchar(max):存储非常大
5.二进制型:
varbinary(max),binary(max)
6.数据库表的操作
行---- 记录
列---- 字段
进入到某一个库中 use t1
查看库中的表 show tables
如何证明我们打开了test数据库?
SELECT DATABASE();
创建表 使用create关键字
CREATE TABLE tb1(
id int,
Username varchar(20),
Salary float(18,2));
查看表结构
desc tb1;
show columns from tb1
向表中插入记录 Insert
insert into tb1(id,Username,Salary) values(1,’zhangsanfeng’,9000.00);
insert into tb1 values(3,’wangwufeng’,3000.00);
insert into tb1 (Username,Salary)values(’wangwufeng’,3000.00);
注意字段名称要和传入的值要匹配上
查询表中的记录
select * from tb1
注意:* 表示所有列
select id,Username,Salary from tb1;
删除表中的全部记录 delete from tb1
删除表中的某一条记录 delete from tb1 where id=3;
删除id为null值的一条记录 delete from tb1 where id is null;
is not null
修改记录 update
update tb1 set Salary = Salary -1000.00 where id = 1;
以上 增删改查的操作都被叫做DML
DML数据操作语言(SELECT INSERT DELETE UPDATE)
7.查询语句
7.1:聚合函数
avg(num)平均值 sum(num)求和 max(num)最大值 min(num)最小值 count(*)行数
7.2:声明
where属于约束声明,对数据表中的数据筛选,不能使用聚合函数
having属于过滤声明,聚合函数先执行,对查询出来的结果筛选。
如 select count(name) as num from A group by name having num>2;
7.3:子查询
1.where子句中使用子查询
select score from A where score> (select avg(score) from A);//查询成绩多余平均分的人员。
2.from中子查询
SELECT b.login_id FROM (SELECT u.login_id,u.code FROM base_admin_users u,base_city c where u.city_id=c.id) as b;
查询出用户表和能和城市表对应的用户的账号
3.where中
SELECT login_id from base_admin_users where login_id not in (SELECT u.login_id FROM base_admin_users u,base_city c where u.city_id=c.id) ;
查询出用户表中存在的城市表中不存在的账号
7.4:exists
SELECT login_id from base_admin_users e where exists (select 1 from base_city c where e.city_id=c.id and c.pid=0);
查询pid是0的账号信息;
SELECT login_id from base_admin_users e where not exists (select 1 from base_city c where e.city_id=c.id and c.pid=0);
查询pid不是0的账号信息