mysql基础语法和小知识点整理

备注:(大神勿喷!!!)
  • mysql 数据库命令不区分大小写,但是在Mac 终端中,如果想使用补全命令必须使用大写。
  • 默认创建的数据库默认不支持中文字符,如果我们需要它支持中文字符,则将它的编码设置为utf8格式,使用alter 来修改。
  • 数据库语句用分号结束,如果没有输入分号会有个-> 等待你继续输入的符号。

1.数据库管理

1.1 create 创建数据库

create database testDB;

1.2 show 查看所有数据库

show databases;

1.3 alter 修改数据库
alter 命令修改数据库编码:

ALTER DATABASE testDB CHARACTER SET UTF8;

1.4 use 使用数据库
要创建和修改表的时候 要先进入对应的数据库中

use testDB;

1.5 查看当前使用的数据库

select database();

1.6 drop 删除数据库

drop database testDB;

2. 表管理

2.1 create 创建表

create table  T_PEOPLE (
  -> ID int AUTO_INCREMENT PRIMARY KEY,
  -> NAME varchar(20) not null,
  -> AGE int not null,
  -> BIRTHDAY datetime);

2.2 show 显示表

show tables;

2.3 desc 查看表结构

desc T_PEOPLE;

2.4 alter 修改表结构(增、删、改)
默认创建的表不支持中文字符,所以需将表编码设置为utf8:

ALTER TABLE T_PEOPLE CONVERT TO CHARACTER SET UTF8;
2.4.1 insert 在表中添加列(字段)
alter table T_PEOPLE add star BOOL;
2.4.2 alter 修改表(列)字段
alter table T_PEOPLE DROP column star;
2.4.3 删除表(列)字段
alter table T_PEOPLE DROP column star;
2.4.4 rename 重命名表名
RENAME TABLE PEOPLE TO NEW_PEOPLE;

2.5 create 利用已有数据创建新表

create table newTable select * from T_PEOPLE;

3. 数据的操作及管理

3.1 增加数据(增)

insert into T_PEOPLE VALUES (null, ‘Anny‘, 22, ‘1992-05-22‘);

3.2 删除数据(删)

delete from T_PEOPLE where name = ‘Lisa‘;

3 修改数据(改)

update T_PEOPLE set name=‘Calvin‘ where name = ‘Garvey‘;

3.4 查询数据(查)

select * from PEOPLE;

格式:select * from <表名>,星 代表所有字段。

查询数据时也可指定显示的(列)字段:

select NAME, AGE, BIRTHDAY from T_PEOPLE;

4 一些简单的例子

  • 建表
create table if not exists t_b2 (id integer primary key autoincrement ,name text NOT NULL DEFAULT ' ' collate nocase,phone text not null default '请输入',email text not null default ' 'collate nocase,unique(name,phone) )   ;
  • like
    查询以j 开头的 名字 like ‘j%’
    % 是贪婪匹配 可以匹配该字符本身之外的所有字符 可以和not 配合使用否定一些模式
select  *from tb2 where name like '%ch%' and name not like  ‘%en’ ;
  • limit
    限制返回纪录的最大数 offset指定偏移记录
 select  *from tb2 orderby id desc  limit 1 offset 1 ;

limit 和offset 一起用时候可以用逗号代替offset 例如 limit 2,1 等于limit 1 offset 2;

  • 数学函数
select  id ,upper(name),length(name) from  tb2  limit 10;
select  id ,upper(name),length(name) from  tb2  where length(name) <5 limit 10;
  • 聚合函数
    是从一组纪录中计算聚合值 包括sum(), avg(), count(), min(), max()
select  count(*)from tb2 where length(name) >3;
select  avg(length(name))from tb2 ;

不仅可以对from 进行计算 也可以对where子句进行计算

  • 聚合的主要部分是分组
    group by 和select 区别 前者接收where子句的输出,并将其分割成共享某个字段上同等值的小组 后者接收所有的组

例如获取每个type_id 组的数量

select  type_id ,count(*) from food group by type_id;

结果示例 type_id   count(*)
                  1             22

group by 可以配合having 来过滤约束作用

select  type_id ,count(*) from food group by type_id having count(*) < 20 ;

计算count 的时候最好加入聚合语句 (group by)

  • distinct 去掉重复
select  distinct name  from tb2
  • 符号表示
<> 不等于
>''大于零的意思
isnull 不为null值
  • 指数或者小数点 用real 类型
  • 十六进制存储为blob 类型
  • sqlite 不支持 TRUNCATE
  • using 使用
select t_author.id, t_peoples.name from t_author left join t_peoples using(id);

你可能感兴趣的:(mysql基础语法和小知识点整理)