天天看点

软件测试笔记 DAY10 2019.8.28delete 删对表中的数据进行排序 order by ,asc 升序 ,desc 降序delete 删

MySQL基础

数据库:

什么是数据库?

是存放数据的电子仓库。以某种方式存储百万条,上亿条数据,供多个用户访问共享。

每个数据库有一个或多个api用于创建,访问,管理,和复制所保存的数据;

系统中很多动态的数据都存储在数据库中,需要通过访问数据库才能显示

数据库类型分:

关系型数据库

特点:

1.安全

2.保持数据的一致性

3.实现对表与表进行复杂的数据查询

常用的关系型数据库:

1.db2 IBM公司

2.oracle 甲骨文公司

3.mysql oracle隶属非关系型数据库

非关系型数据库

特点

1.效率高

2.容易扩展

3.使用更加灵活

1.hbase(列模型)2.redis(键值对模型)3.mongodb(文档类模型)

mysql

mysql是指mysql数据库管理系统

属于 关系型数据库

瑞典公司mysql开发的,oracle收购,

mysql 是一种关联数据库将数据保存在不同的表中,而不是讲所有的数据放在一个大仓库中,增加了速度和灵活性

MySQL数据在目前web应用领域使用最广泛,也是B/S 架构常用的数据库

mysql数据库的特点:

1.体积小,安装简单,维护成本低

2.开源,免费

3.使用C++编写

4.支持多系统

5、与其他工具组合可以搭建免费的网站系统

常见:LAMP=linux+apache+mysql+php 多有米

LNMP=linu+x+nginx+mysql+php 论坛

6、myql支持多种编程语言,提供了api包括:c,c++,Python,java,php,td 等

7、支持多种存储引擎

mysql版本 5.0以后才支持存储引擎

应用架构:

单点数据库,适用于小规模应用

复制,适用于中小规模应用

集群,适合大规模应用

数据库中术语:

数据库

数据表

冗余

主键

外键

索引

视图

存储

临时表

单表

多表

linux中mysql

rpm -qa|grep mysql 查询linux中的数据库

yum remove mysql * 删除linux中数据库

yum erase +数据库包

删除linux中的数据库

rpm -e nodeps查询出的数据库

删除linux中的数据库

yum install mysql 安装mysql客户端

yum install mysql-server 安装mysql服务端

service mysqld start 数据库开启服务

service mysqld stop 数据库关闭服务

service mysqld restart 数据库重启服务

service mysqld status 数据库查看状态

service iptables stop 防火墙的关闭

mysqladmin -uroot password 密码 设置数据库密码

mysql -u root -p 进入mysql操作界面

show databases ;显示所有的数据库

create database +数据库名 创建一个新的数据库

use 数据库名

(注意:所有指令后面都要加【空格+;】,表示语句结束)

ctrl+z ctrl+c \q exit quit 退出

grant all privileges on . to root@’%’ identified by ‘123456’; 设置权限

flush privileges ,刷新权限

mysql存储引擎

1 MyISAM存储引擎(默认的存储引擎)

Mysql5.0之前默认的存储引擎,有较高的插入,查询速度,但不支持事务,支持数据压缩,表级锁定,支持索引。

2 InnoDB存储引擎

事务型数据库首选引擎,(外键)Mysql5.5之后默认的存储引擎,支持行级锁定,支持索引

show tables ;查看指定库里的表

navicat连接

注意事项:

1、防火墙

2、mysql服务器是否开启

3、权限设置成功,并刷新

4、ip地址是否输入有误,

5、密码不正确

常报错:1045,2003,1064,1130,2002

一个汉字占多少 长度和编码有关

utf-8:一个汉字=3个字节

gbk: 一个汉字=2个字节

常用 int :整数 2-3----231 字节:4

bigint 超大的整数 字节:8

float 浮点型数据 字节:4

char 固定长度的字符串 最大字符255

varchar 具有最大限制的可变长度 最大65535字符

date yyyy-mm-dd 格式的日期 字节:3

time hh:mm:ss 格式的时间 字节:3

datetime 日期+时间 字节:8

year 年 字节1

create table +表名

(字段1名称,数据类型, 约束 ,备注,

字段2名称,数据类型,约束,备注,

字段3名称,数据类型,约束,备注,)

约束:

定义实际上就是表中的限制条件

作用:表在设计的时候加入约束的目的是为了保证表中的记录完整和有效

约束的种类:

1、非空约束:(not null)非空 用于保证字段的值不能为空;

2、唯一约束:(unique) 保证字段值最具有唯一性(不能重复),并且为空

3、主键约束:(primary key)主键,用于保证字段值具有唯一性,并且非空

4、外键约束:(foreign key)

5、默认: default

6、自增长:auto_increment

(1)与主键 约束一起使用 ,针对id

(2)每插入一条数据,指定的字段值+1

create TABLE ruixia( zhujian int(10) primary key auto_increment , id int(10) not null,idno int(20) unique, name varchar(10),sex char(5) default “1”);

DESC ruixia

selelect * from ruixia ;

方法一:

insert into 表名 (字段1, 字段2 ,字段3) values (1,‘xiao’ ,“nan”,“86” )

方法二:

insert into 表名 values (2,"wang ",“nv”,“76”),(3,"wang ",“nv”,“76”),(4,"wang ",“nv”,“76”)

添加约束的的时机:

1、建表

2、修改表

主键约束和唯一约束的区别:

主键 不允许为空,最多一个, 允许组合

唯一 允许为空 ,可以由多个, 允许组合

外键:

1、要求有主表和从表

2、建立外键是在从表设置外键,

3、主表和从表的字符类型要一致

4、主表的关联列是以key

5、插入 数据:先插入主表,在插入从表

6、删除数据,先删除从表,在删除主表

建表:show databases ; #显示所有的数据库

create database ll ;#创建数据库

use ll ; # 使用数据库

drop database kk ; #删除数据库

#ddl 对表结构的操作 dml 对数据的操作

– -- #单行注释#,多行注释ctrl+/ , 多行取消注释shift+ctrl +/

#字符串 char ,varchar

#数值类型 int ,bigint ,float

#时间 year ,datetime ,time ,date

#约束:not null ,primary key ,unique ,default ,auto_incrment

show tables ;#显示所有的的表

DESC yihang ; #显示表结构

select * from xiaodao ; #查看表所有的数据

create table xiaodao(id int(10) primary KEY,name char(20)not null,age int(10) DEFAULT 18 )default charset=utf8; # 建表注意字符类型和约束

drop table yongxin #删除表

alter table dehao add sex CHAR(5);#添加表字段

alter table yihang change sex sex char(10) ;#修改表字段

alter table dehao drop chinese ; #删除字段

alter table dehao rename yihang ; #表重命名

#添加字段到指定的位置,after表示在…的后面

alter table yihang add sex int(10) after id ;

#添加字段到第一行,first表示第一

alter table yihang add no int(10) first ;

#调换表字段的位置 modify

alter table yihang modify sex int(10) after age ;

#插入数据

#方法一

insert into yihang (no,id,name,age,sex) VALUES (3,03,‘郭青’,18,‘女’);

insert into yihang (no,id,name) VALUES (4,04,‘王志豪’);

insert into xiaodao (id) VALUES (6);

方法二:

INSERT into xiaodao values ( 2,“小到”,20),( 3,“海洋”,20),( 4,“一行”,20),(5,“刘杨”,11) ;

插入多条数据:

iNSERT into xiaodao values ( 10,“小到”,20);

iNSERT into xiaodao values ( 11,“小到”,20);

iNSERT into xiaodao values ( 12,“小到”,20);

iNSERT into xiaodao values ( 13,“小到”,20);

iNSERT into xiaodao values ( 14,“小到”,20);

iNSERT into xiaodao values ( 15,“小到”,20);

iNSERT into xiaodao values ( 16,“小到”,20);

desc 表名;查看表结构

select * from 表名 查看表中所有的数据 * 表示所有

创建表格式:

create table 表名 (字段名1 字符类型1(字符宽度1) 约束 ,字段名2 字符类型2(字符宽度2));

#create table gz16 (id int(10)primary key,name VARCHAR(20));

default charset=utf8 默认字符编码是utf8

删除表:格式:drop table 表名

#drop table gz16;

表添加字段:alter table 表名 add 字段名(字符类型(字符宽度))

表修改字段: alter table 表名 change 旧字段名 新字段名(字符累类型(字符宽度))

删除字段: alter table 表名 dorp 字段名

修改表名:alter table 表名 rename 新表名

向表格中插入新的行

方法一:

insert into 表名 (字段1, 字段2 ,字段3) values (1,‘xiao’ ,“nan”,“86” )

方法二:

insert into 表名 values (2,"wang ",“nv”,“76”),(3,"wang ",“nv”,“76”),(4,"wang ",“nv”,“76”)

alter table ruixia default charset=utf8 ; #修改默认的编码格式

对表的数据进行查询,修改,删除,添加

#SELECT 查

#insert into 增

#update … set 改

delete 删

#从一个表中查询所有的数据

select * from baoan003 ;

#查询表中指定字段的数据

select id,name ,age from baoan003 ;

#给表字段取别名 AS

select id “编号”,name as “姓名” ,age as"年龄" from baoan003 ;

#指定条件查询内容 用where+条件

select * from baoan003 where age=23 ;

where 条件使用注意:

where +条件 条件中有(=,>,<,>=,<=,!= ,<>)

如:select * from baoan003 where age!=23 ;

and 且 条件1和条件2 同时满足

如:select * from baoan003 where age!=23 or math=98;

or 或 条件1和条件2 至少满足一个,满足其中一个就可以显示;

between and 在什么范围之间 (注意:between的值包含了本身)

select * from baoan003 where math between 81 AND 98;

in

is null 为空

如:select * from baoan003 where class is null;

is not null 非空

如:select * from baoan003 where class is not null;

对表中的数据进行排序 order by ,asc 升序 ,desc 降序

降序:

select * from baoan003 order by id desc;

升序

select * from baoan003 order by chinese asc;

注意点:升序asc可以省略不写

#二次排序

select * from baoan003 order by math ASC, chinese desc ;

#模糊匹配查询 LIKE

% :匹配0个字符或者多个字符

_:表示一个字符

select * from baoan003 where english like “7%”;#表示7开头的分数

select * from baoan003 where english like “%7”;#表示7结尾的分数

select * from baoan003 where english like “%7%”;#表示含有7的分数

select * from baoan003 where english like “7__”;表示具体的位数的数据(select * from baoan003 where char_length(english)=7

限制 limit m,n 后面接两个值

#m 表示下标 ,n 表示步长(可以理解为取多少个数)

select * from baoan003 limit 2,4 ;

#group by 分组 having

select sum(age),sex from baoan003 group by sex ;

select max(age),sex from baoan003 group by sex ;

groupby 一般不会单独使用,通常都是和聚合函数组合使用 ,

group by 后 查询出来的结果,在需要根据条件查询用having

select max(age) s,sex from baoan003 group by sex having s>23 ;

select max(age) ,sex from baoan003 group by sex having max(age) >23 ;

having +条件 和where +条件 用法一样,但是场景不一样,一般group

by 的后面 接having

注意:分组 使用函数 ,在select 和from 接的字段 ,只能是函数, 和指定分组的字段 才能匹配;

sql函数

max 最大值

min 最小值

avg 平均值

count 统计总数

sum 求和

distinct 去重

select sum(age) from baoan003 ;

select min(age) from baoan003 ;

select max(age) from baoan003 ;

select count(age) from baoan003 ;

select avg(age) from baoan003 ;

select distinct(age) from baoan003 ;

#update … set 改

update 表名. set 修改的字段=字段新值 where 条件

update xiaodao set name=“国龙” where id=2 ;

update xiaodao set name=“国龙” where id=4 or id=1;

delete 删

delete from 表名 清空表数据

#truncate 快速删除表内大量数据

truncate baoan003

#drop

drop>truncate>delete

注意:1、drop 是删除表和表数据

2、truncate 删除无法恢复

3、delete 删除可恢复

#如:

1、delete from xiaodao ;

2、delete from xiaodao where id=1;

3

delete from 表名 where 条件

如:delete from xiaodao ; 删除表内所有数据

如:delete from xiaodao where id =6; 指定条件删除

表可以取别名:

select * from baoan003 as s ; as可以省略 s可以自定义,代表表的别名

备份表结构

create table 新表名 like 备份的原表 ;

create table nn like mm ;

备份数据:

INSERT into 新表有表结构 select * from 备份的原表;

INSERT into nn select * from mm;

备份表结构和表数据:

reate table 新表名 as(select * from 备份的原表);

如:create table ss as(select * from baoan003);

注意:备份表中的某些表字段的数据:

步骤先备份表,在备份数据

INSERT into 新表 (字段名1,字段名2) select 字段名1 ,段名2 from 备份原表;

INSERT into jj (id,name) select id ,name from mm;

linux中备份:

备份数据库

mysqldump -u root -p baoan > baoan00

< 还原数据库

先建一个库名,

mysql -u root -p 新库 < 脚本.sql

文档:DAY 10 MySQL基础.note

链接:http://note.youdao.com/noteshare?id=09ad19a85820ea9f66bc9d7522407770