浅谈mysql

什么是数据库?

  1. 数据:表示信息的符号(数值,字符串,音频,视频)
  2. 数据库:数据的集合

数据库

  1. 创建数据库:create database 数据库名
  2. 选择数据库:use database
  3. 删除数据库:drop 数据库名

表(结构)

  1. 创建:
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;
  1. 删除:drop table tablename
  2. 修改:
  • 删除某字段: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

表(数据)

  1. 增: insert into tablename(field1,field2…)values(value1,value2…)
  2. 删:delete from tablename where…
  3. 改: update tablename set field1=new_value1,field2=new_value2 where…
  4. 查: select column_name from tablename where…

mysql数据类型

  1. 数值类型:int,float,double等
  2. 日期和时间类型:date,year,time,timestamp等
  3. 字符串类型:char,varchar等

mysql 运算符

  1. 算数运算符:
运算符 作用
+ 加法
减法
* 乘法
/ 除法
% 取余
  1. 比较运算符:
符号 描述 备注
= 等于
<>, != 不等于
> 大于
< 小于
<= 小于等于
>= 大于等于
BETWEEN 在两值之间 >=min&&<=max
NOT BETWEEN 不在两值之间
IN 在集合中
NOT IN 不在集合中
<=> 严格比较两个NULL值是否相等 两个操作码均为NULL时,其所得值为1;而当一个操作码为NULL时,其所得值为0
LIKE 模糊匹配
REGEXP 或 RLIKE 正则式匹配
IS NULL 为空
IS NOT NULL 不为空
  1. 逻辑运算符
运算符号 作用
NOT 或 ! 逻辑非
AND 逻辑与
OR 逻辑或
XOR 逻辑异或
  1. 位运算符

位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。

运算符号 作用
& 按位与
| 按位或
^ 按位异或
! 取反
<< 左移
>> 右移

union的用法

  1. 删除重复数据
  2. 语法:
select expression1,expression2...from tablename where[conditions] union [All|Distinct] select expression1,expression2...from tablename where[conditions]

排序:

  1. Asc 升序,desc 降序
  2. 语法:
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;

连接的使用

  1. inner join:获取两个表中字段匹配关系的记录
  2. left join:获取左表所有记录,即使右表没有对应匹配的记录
  3. right join:与left join相反

null值的处理

  1. is null
  2. is not null

事务

  1. begin 或 start transaction开始事务
  2. rollback 或 rollback work事务回滚
  3. 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;

复制表的步骤

  1. show create table tablename:获取数据表的完整结构;
  2. 修改sql语句的数据表名,并执行sql语句
  3. 拷贝数据:insert into new tablename(field1,field2…)select field1,field2…from old tablename

版权声明:本文为emptyCup原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/emptyCup/p/13132587.html