浅谈mysql
浅谈mysql
什么是数据库?
- 数据:表示信息的符号(数值,字符串,音频,视频)
- 数据库:数据的集合
数据库
- 创建数据库:create database 数据库名
- 选择数据库:use database
- 删除数据库:drop 数据库名
表(结构)
- 创建:
create table tablename(column_name,column_type) Engine=InnoDB Default charset=utf8
例如:
create table if not exists test(
id int unsigned auto_increment,
title varchar(100) not null,
author varchar(40) not null,
PRIMARY KEY (id)
)Engine=InnoDB DEFAULT CHARSET=utf8;
- 删除:drop table tablename
- 修改:
- 删除某字段:alter table tablename drop 字段名
- 添加某字段并定义数据类型:alter table tablename add 字段名 int
- 修改字段类型:alter table tablename modify c char(10) 把c字段数据类型改为char(10)
- 修改字段名称:alter table tablename i j int 把i字段更名为j数据类型改为int
- 修改表名:alter table tablename rename to new_tablename
- 修改字段默认值:alter table tablename alter i set default 100 把i字段的默认值设为100
表(数据)
- 增: insert into tablename(field1,field2…)values(value1,value2…)
- 删:delete from tablename where…
- 改: update tablename set field1=new_value1,field2=new_value2 where…
- 查: select column_name from tablename where…
mysql数据类型
- 数值类型:int,float,double等
- 日期和时间类型:date,year,time,timestamp等
- 字符串类型:char,varchar等
mysql 运算符
- 算数运算符:
运算符 | 作用 |
---|---|
+ | 加法 |
– | 减法 |
* | 乘法 |
/ | 除法 |
% | 取余 |
- 比较运算符:
符号 | 描述 | 备注 |
---|---|---|
= | 等于 | |
<>, != | 不等于 | |
> | 大于 | |
< | 小于 | |
<= | 小于等于 | |
>= | 大于等于 | |
BETWEEN | 在两值之间 | >=min&&<=max |
NOT BETWEEN | 不在两值之间 | |
IN | 在集合中 | |
NOT IN | 不在集合中 | |
<=> | 严格比较两个NULL值是否相等 | 两个操作码均为NULL时,其所得值为1;而当一个操作码为NULL时,其所得值为0 |
LIKE | 模糊匹配 | |
REGEXP 或 RLIKE | 正则式匹配 | |
IS NULL | 为空 | |
IS NOT NULL | 不为空 |
- 逻辑运算符
运算符号 | 作用 |
---|---|
NOT 或 ! | 逻辑非 |
AND | 逻辑与 |
OR | 逻辑或 |
XOR | 逻辑异或 |
- 位运算符
位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。
运算符号 | 作用 |
---|---|
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
! | 取反 |
<< | 左移 |
>> | 右移 |
union的用法
- 删除重复数据
- 语法:
select expression1,expression2...from tablename where[conditions] union [All|Distinct] select expression1,expression2...from tablename where[conditions]
排序:
- Asc 升序,desc 降序
- 语法:
select field1.field2...from tablename1,tablename2...order by field1[ASC|desc]默认是升序
分组:group by
语法:
select column_name, function(column_name)
from table_name
where column_name operator value
group by column_name;
连接的使用
- inner join:获取两个表中字段匹配关系的记录
- left join:获取左表所有记录,即使右表没有对应匹配的记录
- right join:与left join相反
null值的处理
- is null
- is not null
事务
- begin 或 start transaction开始事务
- rollback 或 rollback work事务回滚
- commit 或 commit work 事务确认
创建索引
语法:
create index index_name on tablename(username(length))
临时表
create temporary table tablename(column_name,column_type) Engine=InnoDB Default charset=utf8
例如:
create temporary table test(
id int unsigned auto_increment,
title varchar(100) not null,
author varchar(40) not null,
PRIMARY KEY (id)
)Engine=InnoDB DEFAULT CHARSET=utf8;
复制表的步骤
- show create table tablename:获取数据表的完整结构;
- 修改sql语句的数据表名,并执行sql语句
- 拷贝数据:insert into new tablename(field1,field2…)select field1,field2…from old tablename
版权声明:本文为emptyCup原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。