数据库创建:1.创建数据库 2.创建表 3.添加数据
约束:primary key(主键约束)、foreign key(外键约束)、not null(非空约束)、 unique(唯一约束)、属性值自动增加(auto_increment)、default(设置默认值)
字段表示:*号代表所有字段(字段相当于列)
常用命令
创建数据库:create database 数据库名;
查看有哪些数据库存在:show databases;
使用该数据库:use 数据库名称;
查看有哪些表存在:show tables;
创建数据表:create table 表名(列名 数据类型 约束条件);
向表中添加一行数据:insert into 表名 values(值 1,值 2,……);
向表中添加多行数据:insert into 表名 values (值 1,值 2,值 3,……),(值 1,值 2,值 3,……),……;
修改表名:alter table 旧表名 rename 新表名;
修改字段名(列名)和数据类型:alter table 表名 change 旧列名 新列名 新数 据类型;
添加字段名(列)到最开头:alter table 表名 add 列名 数据类型 first;
添加字段名(列)到某一列后方:alter table 表名 add 属性名 数据类型 after 列 名;
删除列:alter table 表名 drop 列名;
删除表:drop table 表名;
删除数据库:drop database 数据库名;
修改数据:update 表名 set 列名 1=值 1,列名 2=值 2,列名 n=值 n where 条件表 达式;
删除数据:delete from 表名 where 条件表达式;
删除表中所有数据:delete from 表名;
查看表结构:describe 表名;
显示查询表中所有信息:select * from 表名;
显示表中指定列的信息:select 列名 from 表名;
根据条件搜索信息:select * from 表名 where 条件表达式;
and 条件形式搜索信息:select * from 表名 where 条件 1 and 条件 2;
or 条件形式搜索信息:select * from 表名 where 条件 1 or 条件 2;
between…and 范围条件形式搜索信息:select * from 表名 where 列名 between 范围开始值 and 范围结束值;
in 条件形式搜索信息:select * from 表名 where 列名 in (值 1,值 2,……);
like 模糊查询:select * from 表名 where 列名 like ‘字符串’;(%表任意长度,_ 表一个长度的字符)
空值(非空)查询:select * form 表名 where 列名 is [not]null;
列名变成其别名显示搜索信息:select 列名 1 as 别名 1,列名 2 as 别名 2,…… from 表名;
对指定列升序排序:select * from 表名 order by 列名;
对指定列降序排序:select * from 表名 order by 列名 desc;
对指定列分组查询:select * from 表名 group by 列名;
从第一条记录往下显示 n 条记录:select * from 表名 limit n;
指定位置往下显示 n 条记录:select * from 表名 limit 开始位置,n;(开始位置为 0 代表从第一条记录开始)
统计表中的总记录数:select count(*) from 表名; 注:sum() 求和、max() 最大值、min() 最小值、avg()平均值
内连接查询:select 表 1.列名,表 2.列名,…… from 表名 1,表名 2 where 表 名 1.列名 A =列名 2.列名 B;(列名 A、列名 B 是两张表中相同意义的字段)
左外连接查询:select * from 表名 1 left join 表名 2 on 表名 1.列名 A =列 名 2.列名 B; (列名 A、列名 B 是两张表中相同意义的字段,左连接的话,左边 的表为主表,以左边表的意义字段为基础,把右边表的数据拉过来)
右外连接查询:select * from 表名 1 right join 表名 2 on 表名 1.列名 A =列 名 2.列名 B; (列名 A、列名 B 是两张表中相同意义的字段,右连接的话,右边 的表为主表,以右边表的意义字段为基础,把左边表的数据拉过来)
子查询:select * from 表名 where 列名=(select 查询语句);(类似于这种, 在查询语句中还包含有查询语句)
函数
计算字符串 m 的字符数:char_length(m);
计算字符串 m 的长度:length(m);
拼接字符串:concat(m,n,…) 将字符串 str 从第 m 位置开始,n 个字符字符长的子串替换为字符串 instr: insert(str,m,n,instr)
返回 str 字符串左边的 m 个字符:left(str,m)
返回 str 字符串右边的 n 个字符:right(str,n)
获取传入值的绝对值:abs()
向上取最接近的整数:ceil()、ceiling()
向下取最接近的整数:floor()
生产 0-1 之间的一个随机数:rand()
获取当前日期:curdate()
获取当前时间:curtime()
获取当前时间和日期:now()
返回日期 d 中的月份:month(d)
返回日期 d 中的月份所对应的英文名称:monthname(d)
计算日期 d1 于 d2 相隔的天数:datediff(d1,d2)