数据库的创建
create database database_name;
数据库的删除
drop database database_name;
更加安全的创建和删除(表的创建和删除也可以使用此方法可以减少报错当使用sql进行数据库的操作时)
# 如果不存在则创建
create database if not exists database_name;
# 如果存在则删除
drop database if exists database_name;
表的创建
create table table_name(
column_name1 value_type,
column_name2 value_type,
...);
字段的约束:
- 自增约束 auto_increment 此字段在插入数据时可以不填充值,系统自动自增填充,一般为整型字段
- 主键约束 primary key 使用此约束则此字段唯一且不能为空
- 外键约束 foreign key 保证两表间参照的完整性
- 非空约束 not null
- 唯一约束 unique
- 默认值 default
常用的数据类型:
- int 大整数值 4 Bytes
- text 长文本数据 0-65 535 bytes
- date 日期值 YYYY-MM-DD 3Bytes
- varchar 变长字符串 0-65535 bytes
- char 定长字符串 0-255 bytes
- text 长文本数据 0-65 535 bytes
表的删除
drop table table_name;
表的更改
# 修改表名
rename table table_name to new_table_name;
# 往表中添加字段
alter table table_name add column_name type;
# 删除表中的字段
alter table table_name drop column_name;
# 修改字段的类型
alter table table_name modify column_name type;
# 修改字段的名字及类型
alter table table_name change column_name new_column_name type;
查询语句(select)
查询所有的talbe表中的所有的所有字段的所有信息
select * from table_name;
指定列名进行查询
select column_name1, column_name2 from table_name;
条件查询
select * from table_name where id=1;
模糊查询
可以使用’%‘来代替任意的字符类
select * from table_name where column_name like '%关键字';
对查询的数据进行排序(asc 表示降序 ;desc 升序排列)
select * from table_name order by column_name asc;
去除重复值查询
select distinct column_name from table_name;
使用正则进行查询
模式 | 描述 |
---|---|
^ | 查找特定字符开头的 |
$ | 查找以特定字符结尾的 |
. | 任意匹配一个字符 |
[...] | 匹配其中包含的字符的字符串 |
[^...] | 例'[^1-8]'匹配不包含1-8之间的数,是包含1和8 |
p1|p2|p3 | 匹配包含p1或p2或p3的字符串 |
* | 匹配前置字符出现0或多次的字符串 |
+ | 匹配前置字符出现1或多次的字符串 |
{m} | 匹配前置字符出现m次 |
{m,n} | 匹配前置字符出现m到n之间次数的 |
select * from member where column_name regexp '正则表达式';
相关信息的查询
查看mysql安装目录
select @@basedir
# 查看系统版本
select @@version_compile_os
更新语句(update)
一般需要where指定条件,否则会将每条数据的相应的字段的值都更改为指定的值
update table_name set column_name=value where column_name=value;
删除语句(delete)
指定删除某一条数据
delete from table_name where column_name=value;
插入数据(insert into)
insert into table_name values (value1,value2,...);
常用的函数
- database() 查看当前使用的数据库
- version() 查看当前使用数据库的版本
- group_concat() 对查询出来的字段进行拼接,组成一串字符串(拼接字段可以任意添加和减少)
- concat_ws(seq,str1,str2) 使用seq对字段str1和str2进行拼接
- count() 一般配合分组进行使用,对不同分组进行计数
- floor() 向下取整函数
- rand() 产生一个0~1的随机数
- system_user()查看系统用户
- current_user()
- user()
- left(s,n)截取字符串s从左开始的n个字符
- right(s,n)截取字符串s从右开始的n个字符
- mid(s,start,len) 截取字符串s从start字符开始len个字符
- substr(s,start,len)截取字符串s从start字符开始len个字符
- if(条件,v1,v2)如果条件成立则执行v1,否则执行v2
- ascii(a) 将字母a转换为ascii码值只对对传入的第一个字符进行转化
- oct(value)将数值转化为八进制
- hex(str) 将str转化为十六进制
- char(value) 将value与ascii对应的字符进行对应转化
- ucase(str)将字符串转化为大写
- now()返回当前系统时间和日期
- sum(column_name) 计算查询字段的和
- max(column_name) 返回查询字段的最大值
- min(column_name) 返回查询字段的最小值
- round(value,len)保留value值的小数点位数,使用四舍五入法