Mysql复习

SQL基本操作

对SQL的基本操作根据操作对象进行分类:库操作,表操作(字段),数据操作

库操作:对数据库增删改查

创建数据库

Create database 数据库的名字[库选项]

库选项:用来约束数据库,分为两个选项

字符集设定:charsct/charcter set具体字符集

查看数据库

show database like `pattem`;--patterm是匹配模式

%表示匹配多个字符

_:表示匹配单个字符

更新数据库

数据库的名字不可以修改

数据库的修改仅限库选项:字符集和校对集(校队集依赖字符集)

Alter database 数据库[库选项];

Charsct/character set[=]字符集

删除数据库

drop database 数据库


表操作

新增数据表

Create table [if no exists]表名(

字段名字  数据类型 ;

字段名字  数据类型;

查看数据表、

show tables like '%s ';

更新数据库

修改学生表中的gender字段为sex。

alter table my_student change sex varchar(10);

添加学生表中的年龄字段

alter table my_student add sex varchar(10)

修改学生表中的年龄字段(age)

alter table student drop age

删除数据表

drop table 表

插入数据

insert into mytudent表 values(1,`itcats`,`male`)

insert into mystdent (number,sex) values(2,`男`)

查看数据

select * from mystudent;

select x,name from mystudent where id=1;

高级查询

select 字段 from 数据源 [where 条件子句 ] [groud by 子句]

[having 子句] [order by子句][himit子句]

凡是groud by语句不能用where来查要用having

distinct去重

子查询

select * from (select* from student)as s;

where子句

where子句:用来判断数据,筛选数据

判断条件:运算符:>< >= <= !=,<>,=,like and  between....and   in/not in

floor(rand()*20)取值0开始,floor 向下取余

group by 分组。根据某个字段段进行分组

分组的意思:是为了统计数据(按组统计,按分组字段进行数据统计)

SQL提供了一系列统计函数

count()max() avg()  min() sum()

count()可以写字段 

having子句与where子句条件一样

意义:where查询后再进行条件查询。

select id,count(*) from student   group by id having count(*)>=2 

order by 字段 desc 降序

limit限制

1.只用来限制长度 limit数据量

2.只用来限制起始位置 limit 0,2         0开始,长度为2

连接查询

意义:在用户查看数据的时候,需要显示的数据来自多张表

连接查询分为4种

内连接,外连接,自然连接和交叉连接

交叉连接=左表,右表


内连接

左表 inner jion右表 on 左表字段=右表字段(on可以,where没有on效率高)

外连接

以某张表为主,去处里面的所有记录,然后进行每条与另外一张表进行连接;

不管能不能匹配上条件,最终都会保留,能匹配正确保留,不能匹配其他表的话

都置空null,

左外连接

select s.c c.name from s_name s left join c_name c on s.c_id=c.id 

-------左表为表

更新数据

Update 表名 set 字段 

update mystudent set sex='famale' where name=`jim` 

更新多个字段

update NetFlowStatus 
set elapsed_sec=888,total_MB=999 
where eth_num=0;

记住要写条件

delect from 表名 where sex=`mane`

要写条件

子查询



in any/some all 

行子查询



分组查询都是去第一个,所以有排序的先排序再分组






字段数据类型(列类型)

SQL中将数据类型分为了三大类:数值类型,字符类型和时间日期类型;

数值型

数值型数据:都是数值

系统将数值型分为整数型和小数型。

整数型

Int:标准整型(常用)

Float:占4个字节ccshuju,精度范围大概为7为左右

double:占用8个字节存储数据,精度范围大概为15位左右

时间日期lx

Datetime时间日期:格式YYYY.mm.dd.HHH

Date 日期,就是datetime中的date部分

Time时间(段);指定的某个区间    

Timestamp 时间擢  从1997年开始

Time 


枚举字符串

枚举:enum 事先将所有可能的结果都设计好,

实际上存储的数据必须是规定好的数据中的一个。

枚举的使用方式

定义:enunm(可能出现的元素列表);//如enum(`男`;`女`;·`不男不女`;`妖`);

使用:存储数据,只能存储上面定义好的数据

create table student(

gender enum(`男`,`女`,·`保密`);

)

枚举原理:枚举在进行数据规范的时候(定义的时候);系统会自动建立一个数字与枚举元素对应关系

(关系放在日志中);然后在进行数据插入的



字段属性

主键

primary key主要的键

一张表只能一个字段可以使用对应的键。

更新主键和删除主键

没有办法直接更新主键

Alter table 表名 drop primary key;

唯一键(与主键区别可以多个字段为空,而且多个可以为空(空字段不参与唯一性比较))

unique 

更新唯一键$删除唯一键

一般都删除,因为没有更新

Alter table 表名drop idnex number;  是特殊的索引


索引的意义

1.提升查询数据的效率

2.约束数据的有效性(唯一性)

Mysql中提供了多种索引

1.主键索引:primary key

2.唯一索引:unique key


外键

foreign key

增加外键

alter table my_foreign add[指定外键名] foreign key (外键字段) reference 父表主键my_class(id)




















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值