数据库的操作

【一】库的增删改查
【0】导入数据文件
source D:\bjpowernode.sql
【1】创建数据库
语法:
create database [if not exists] 数据库名 [character set 编码字符集];
create databases db1;
# 设置库的默认编码
create databases db1 charset='gbk';
【2】查看数据库
show databases;  -- 查看所有数据库
show databases like '%test%'; -- 查看名字中包含test的数据库
show create database 数据库名; -- 查看数据库的建库sql语句
【3】修改数据库
 名字:
 rename database 旧名字 to 新名字;
 这个语法在 mysql-5.1.7 中被添加进来,到了mysql-5.1.23又去掉了,官方不推荐,会有丢失数据的危险!
字符编码:
alter database db2 charset='utf8';
【4】删库
drop database db2;
【5】查看当前库下面的表
(1)查看所有的表
show tables;
(2)查看指定的表
show create table 表名;
【二】表的增删改查
【1】查看当前所在库的名字
select database();  --  查看当前使用的数据库
【2】切换到指定库
use 数据库名;        -- 切换数据库
【3】创建表--》前提是已经切换到指定库了
create table student(
    id int auto_increment,   -- 字段名:id,数据类型:int整型,auto_increment整数自动增长+1
    name varchar(10),   -- 字段名:name, 数据类型:varchar字符串(长度限制最多10个字符)
    sex int default 1,  -- 字段名:sex,数据类型:int整型,默认值(default):1 相当于True 
    classes int,         -- 字段名:classes, 数据类型:int整型,
    age int,             -- 字段名:age,数据类型:int整数,
    description text,  -- 字段名:description,数据类型:text文本
    primary key (id)  -- 设置主键(id) 每个表必须都有主键,用以区分不同行的数据
);
【3】查看当前表的详细信息
describe 表名;
或
desc t1;
【4】查看建表语句
show create table 表名;
【5】修改表
(1)修改表的字段类型
alter table 表名 modify 字段名 字段类型(宽度);
或
alter table 表名 change 旧字段名 新字段名 新数据类型;
(2)修改表名字重命名
alter table 原表名 rename 新表名;
(3)添加字段
默认是尾部追加字段
alter table 表名 add 字段名 字段类型;
指定追加位置
alter table 表名 add 字段名 字段类型 after 原字段名;
指定头部添加字段
alter table 表名 add 字段名 字段类型 first;
(4)删除字段
alter table 表名 drop 字段名;
(5)删除表
drop table 表名;
(6)以绝对路径的形式操作不同的库
create table db2.t1(id int);
(7)重置表信息
TRUNCATE table 表名;
【三】数据的增删改查
【1】数据的增加
列名与值一一对应
单条记录:
insert into user(name, age, selary) values('lisi', 18, 100);
多条记录:
insert into student values(002,'lzj',22,10),(003,'lll',22,10);
【2】数据的查看
select * from 表名;
【3】数据的更改
当id=1时,把名字改为xx
update 表名 set name='xx' where 条件;
update t1 set name='mengmeng' where id > 1;
【4】删除数据
delete from 表名 where 条件;
# 删除指定字段的数据
delete from t1 where id > 1;
# 删除指定字段的数据
delete from t1 where name='dream';
# 清空当前表的所有数据
delete from t1;
【四】MySQL支持哪些运算符?
运算符 说明
= 等于
<>或!= 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
between ... and ... 两个值之间,等同于 >= and <=
is null 为null (is not null 不为空)
and 并且
or 或者
in 包含,相当于多个 or (not in 不在这个范围内)
not not 可以取非,主要用在is或in中
like like称为模糊匹配,支持 % 或下划线匹配 (% 匹配任意个字符)
  • 补充

    • and的优先级高于or。

    • between...and...当数值时为闭区间,且and前面的数值必须比后面大。若为字符,区间为前闭后开。

【五】处理函数
函数名 解释 用法
lower 转换小写 lower(要转换字段名称)
upper 转换大写 upper(要转换字段名称)
substr 取子串 substr(被截取字段名称,起下标,截取长度)
length 取长度 用法: length(字段名称)
trim 去除空格 trim(字符串)
str_to_date 将字符串转换成日期 str_to_date("日期字符串","日期格式")
date_format 格式化日期 date_format(日期类型数据,"日期格式")
format 设置千分位
round 四舍五入 round(要四舍五入的数字,四舍五入到哪一位),默认保留整数位
rand 生成 0~1 随机数 rand()
ifull 将 null 转换成一个具体的值 ifull(字段名称,将要替换的值)
  • 数据处理函数是该数据本身特有的,有些函数可能在其它数据库不起作用;
相关推荐
云和数据.ChenGuang6 分钟前
Django 应用安装脚本 – 如何将应用添加到 INSTALLED_APPS 设置中 原创
数据库·django·sqlite
woshilys34 分钟前
sql server 查询对象的修改时间
运维·数据库·sqlserver
Hacker_LaoYi35 分钟前
SQL注入的那些面试题总结
数据库·sql
建投数据2 小时前
建投数据与腾讯云数据库TDSQL完成产品兼容性互认证
数据库·腾讯云
Hacker_LaoYi3 小时前
【渗透技术总结】SQL手工注入总结
数据库·sql
岁月变迁呀3 小时前
Redis梳理
数据库·redis·缓存
独行soc3 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
你的微笑,乱了夏天3 小时前
linux centos 7 安装 mongodb7
数据库·mongodb
工业甲酰苯胺3 小时前
分布式系统架构:服务容错
数据库·架构
独行soc4 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘