mysql数据库常用语法
创建数据库
create database [if not exists] 数据库名;
删除数据库
drop database 数据库名
选择数据库
use 数据库名
创建表
create table table_name (column_name column_type);
例子:create table if not exists table_name(
name varchar(12) not null auto_increment
primary key(name))engine=innodb default charset=utf-8;
PRIMARY KEY关键字 主键 , ENGINE 设置存储引擎,CHARSET 设置编码。
查看表
show tables;
查看表结构
desc table_name;
删除表
drop table table_name;
更新表数据
update table_name set 字段名=值, ... where(条件);
插入表数据
insert into table_name (字段名...) values (字段值...);
删除表数据
delect from table_name [where (条件)]
查询表数据
select 字段名 from table_name [group by/order by(asc升序/desc降序)] where(条件) limit (start,size)
LIKE 子句
select * from table_name where name like "%name";
UNION [all(所有数据) /
distinct(去重复数据)] 连接两表去除重复
select * from table_name1 union [all/diatinct] select * from table_name2 where(条件) ;
Order by 排序
order by 列名 (ASC升序/DESC降序)
分组 group by
group by 列名
INNER JOIN 内连接 : 获取两个表中字段匹配关系的记录。
select * from table_name1 a inner join table_name2 b on a.id=b.id
LEFT JOIN(左连接): 获取左表所有记录,即使右表没有对应匹配的记录。
select * from table_name1 a left join table_name2 b on a.id=b.id
RIGHT JOIN(右连接): 获取右表所有记录,即使左表没有对应匹配的记录。
select * from table_name1 a right join table_name2 b on a.id=b.id
空值比较
is null : 当值是null时,返回true;
is not null:当值不是null时,返回true;
<=>:当比较的两值为null时,返回true;
正则表达式 REGEXP "表达式 "
^a -------------------- 匹配输入字符串的开始位置,匹配以a开始的数据
z$ -------------------- 匹配输入字符串的结束位置,匹配以z结束的数据
. -------------------- 匹配除 "\n" 之外的任何单个字符,要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。
[....]------------------字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。
[^...]------------------负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。
p1|p2|p3-------------匹配 p1 或 p2 或 p3。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。
* ----------------------匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
+----------------------匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
{n}--------------------n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
{n,m}----------------m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。
事务(atomicity原子性 consistency一致性 isolation隔离性 durability永久性)
begin 开始一个事务
rollback 事务回滚
commit 事务提交
set autocommit=0 禁止自动提交事务
set autocommit=1 开启自动提交事务
ALTER命令:修改表名或字段名
添加字段
删除字段alter table table_name add age int(12)
修改字段alter table table_name drop 字段名
索引类型:alter table table_name change 老字段名 新字段名 类型
1------ index普通索引
2------ unique index 唯一索引
3------ primary key 主键索引
4------
创建索引
添加索引create index indexName on mytable(username(length));
删除索引alter table tableName add index indexName(columnName)
复制表并插入值drop index [indexName] on mytable;
create table table_name like 要复制的表名 insert into table_name (*) select * from 要复制的表名;
数据源信息
select version(); -------------------------- 查询服务器版本信息
select database(); ----------------------- 查询当前数据库名
select user(); ------------------------------ 查询当前用户名
show status; ------------------------------ 查看服务器状态
show variables; -------------------------- 查看服务器配置变量
过滤重复数据
1:distinct [dɪˈstɪŋkt]:有区别的,明显的
2:group by 分组select distinct * from table_name;
select * from table_name group by (name);