数据库常用语法

来源:互联网 发布:死神来了 游戏 知乎 编辑:程序博客网 时间:2024/06/08 10:01

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_incrementprimary 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]:有区别的,明显的

select distinct * from table_name;
2group by分组
select * from table_name group by (name);