MySQL的基本操作
#进入数据库
mysql -h localhost -uroot -p
#展示所有的数据库
show databases
#进入某一个数据库
use database_name
#展示某个数据库中的所有表
show tables
#退出数据库
exit&&quit
#允许用户远程登录
grant all on *.* to 用户名@'%'identified by '密码' #运行这句话,也就表示在MySQL的user表中创建了一个用户。
其中需要注意的是:bit(1) 一位,表示一个比特位。(常用与表示性别)
float:声明格式:float(m,n) m:总长度,n:小数点位数;默认为(10,2)
double:声明格式:double(m,n) m:总长度,n:小数点位数;默认为(16,4)
decimal:decimal(m,n),m:总长度,n:小数点位数,无默认值,主要精确的表示存款。
char:声明:char(n) 表示定长字符串。不足时用空格填充,超过时报错
varchar:声明:varchar(n),表示可变长度字符串,不足时以字符串长度,超过时,改变长度。(65535)
text:用户存放大文本
date:表示日期 (年-月-日 YYYY-MM-DD)
time:表示时间 (时-分-秒 HH:MM:SS)
datetime:日期时间 (日期时间: YYYY-MM-DD HH:MM:SS),范围:1000 01- 00:00:00 - 9999-12-31 23:59:59
timestamp:时间戳 (时间戳: YYYYMMDDSSHHMMSS),范围:1970 01- 00:00:00 - 2037-12-31 23:59:59
blob:存放二进制
clob:存放二进制
enum:枚举类型
json:json数据
sql是结构化的查询语句(SQL),是一种数据库查询和程序设计语言,用于存储数据以及查询、更新、和管理关系型数据库。用于数据库数据的增删改查、数据库对象的创建,修改,和删除、用户权限、以及事务。
sql语句的分类:
- DQL:数据查询语句:select
- DML:数据库操作语句:insert 、update 、delete
- DDL :数据库定义语句:create、alter、drop
- DCL:数据库控制语句:grant (授权)、revoke(取消授权)
- TCL:事务控制语句:COMMIT、ROLLBACK
作用:用于删除、创建、查看、切换数据库、表
操作数据库
#创建数据库
create databse database_name charset=utf-8
#删除数据库
drop database database_name
#使用/切换数据库
use databse_name
#查看当前选择的数据库
select database()
操作表:
#展示数据库中的所有表
show tables
#创建表
create table t_table(field1 type,field type ...)
#修改字段:add|change|drop|modify
#添加字段
alter table t_name add field type
#添加字段位置到首位
alter table t_name add field type first
#修改已有字段位置
alter table t_name modify field1 type after/before field2
#修改字段名称
alter table t_name change old_name new_name type
#修改字段类型
alter table t_name modify field type
#删除字段
alter table t_name drop field
#删除表
drop table t_name;
补充:
change和modify的区别?
alter table 表名 modify 字段 属性 约束;
alter table 表名 change 旧字段 新字段 属性 约束;
#显示表的结构
desc t_name
#表的重命名
rename table old_name to new_name
#查看表的建表语句
show create table t_name;
用于操作数据的语句(不包括修改表的结构和属性)
插入数据
#插入一条完整的记录
insert into 表名 values(....)
#缺省插入(字段与值要对应)
insert into 表名(fields1,field2,field3...) values(value1,value2value3...)
#多行完整数据插入
insert into 表名 values(....),(...),(...),(...)
#将一张表中所有数据插入到另一张表中
insert into table1 select * from table2
修改数据
#update
update t_name set field1=value1 ,field2=value2,field3=value3 where ...
ps:如果不加where ,默认全部修改
删除数据
#删除一条记录
delete from t_name where ....
ps:如果不加where 默认删除表中的所有记录,但是自增不会重置
#清空表数据,并将自增设置为1,重新开始
truncate table userinfo;
#数据导出
mysqldump –uroot –p 数据库名 > /Desktop/备份文件.sql
#数据导入(在导入数据库时,前提是此数据库已经存在,并且为空)
mysql –uroot –p < /Desktop/备份文件.sql
#加载数据文件
source /路径/文件名.sql
#count 统计有多少行记录
select count(1) from emp; //1表示常量,每一条记录都有一个1,查看1的个数
#max 查看记录中某个字段最大的
select max(id) from emp;
#min 查看记录中某个字段最小的
select min(id) from emp;
#sum 查看记录中某个字段的总和
select sum(salary) from emp;
#avg 查段看记录中某个字的平均值
select avg(salary) from emp;
ps:在使用这些函数时,如果在加其他字段,可能显示的值不一样,默认是显示表中的第一行的字段值
#md5加密函数(不可逆)
MD5(pwd)
#密码加密
passowrd(pwd)
#sha加密
sha(str)
#数学函数
PI() //圆周率
Ceil(num) //向上取整
floor() //向下取整
round(num,保留的小数位数) //四舍五入,如果第二个参数为负数,从小数点前一会四舍五入。
Mod(5,2) //取模 相当于 5%2
Rand() //随机数,[0,1)
从表中随机取数据:select * from emp GROUP BY RAND() limit 2;
Pow(2,2) //2的2次方
#字符函数
replace(str,oldword,newold) //替换
lpad(str,len,padstr) //左填充,当字符串不够len时,用字符进行左填充
rpad(str,len,padstr) //右填充,当字符串不够len时,用字符进行右填充
trim() //删除首位的空格
#日期函数
Now() //当前的时间
Sysdate() //获取系统时间
Current_date() //获取系统当前日期
Current_time() //获取系统当前时间
Year(date) //获取日期中的年
Month(date) //获取日期中的月
Last_day(date) //获取当前月的最后一天(返回的是一个日期)
Date_add(date,interval num 单位) //计算日期(返回的是一个日期)
#例:
select date_add(now(),INTERVAL 2 month) //+2月
select date_add(now(),INTERVAL 2 day) //+2天
select date_add(now(),INTERVAL 2 year) //+2年
select date_add(now(),INTERVAL -2 year) //-2年
MySQL中的运算符 主要用于select和from子句中:
例:
select 1+1,1*2,2/2,0 ; (除法,保留小数double类型)
整除:select 3 div 2 //返回1
0做除数: select 3 / 0 //返回null
算数运算符
+ - * / div(整除)
比较运算符
=(等于) >= <= !=(或者<>)
1表示:true, 0表示false
is null //是否为空 is not null //是否不为空
between and //在什么和什么之间
in //在什么范围中
any //在比什么其中之一怎么样
all //比所有都怎么样
逻辑运算符
and //与
or //或
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。