mysql库表操作
关系型数据库:
Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL
非关系型数据库:
NoSql、Cloudant、MongoDb、redis、HBase
创建mysql账户
第一步:
必须要先进入mysql
create user 'xiaoqi'@'%'identified by 'qwe123';
# % :指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,
如果想让该用户可以从任意远程主机登陆,可以使用通配符%
第二步:
给他所有权限:
grant all on *.* to 'xiaoqi'@'%';
#用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则
使用ALL
# *.* 所有库.所有表
刷新:
flush privileges; # 权限
select user(); # 查看当前用户
删除
drop user
drop user "qiye"@"%"; # 退出再进就没了
MySQL库操作
# 每句话写完之后,都要以英文;结尾
select database(); # 查看当前在哪个数据库
create database mydb; # 创建数据库,在没有创建数据库之前(没有同样的数据库)可以新增数据库,如果该数据库已存在,则报错
# 要保证不报错,需要加if not exist
create database if not exists mydb; # 没有该数据库就给我创建,有就不创建
# 我现在在这个库里没有?
select database();
drop database 库名; # 删库跑路 用户 表格
# 使用数据库
use 数据库名;
select now(); # 获取当前时间
show create table xingyue; # 查看表结构
MySQL表数据操作
# 插入数据
insert into xingyue(id,name) values(1, 'xiaoming'),(2,'qiyue');
# 插入多条数据
insert into xingyue(id,name) values(2,'xiaowang'),(3,'lili');
# 不指名字段,就是要插入全字段,有多少字段就要插入多少,少一个都不行
insert into xingyue value(4,'xiaoli');
# values加不加s都能插入多个,不过加s书写更规范些
# 只能插入单挑数据
insert into xingyue set id=5,name='haha'
# into 可加可不加
insert xingyue set id=6,name='qiye';
#查询语句select
# 查询在xingyue表格里面的所有字段名的内容
select * from xingyue;
#条件查询
# 提取id号小于4的所有数据
select id from xingyue where id < 4;
# 在xingyue表格当中,提取名字
select name from xingyue;
# 更新数据update
# 更新在xingyue表格中id号为2的整行数据
update xingyue set name='heihei' where id = 2;
# 如果where id = 2这个条件不加的话,默认会更新表中所有数据
就比如: update xingyue set name='heihei';
这样会在xingyue的表格当中更新所有的name,那整张表格,name字段的值都变成了heihei
# 删除数据
# 删除id号为4的那行数据
delete from xingyue where id=4;
# 如果要删除整张表格里面的数据,那就不需要加后面的where条件
delete from xingyue;
select * from xingyue; # 什么数据有没有了
# 创建新表
create table old_tb (id int,name char(10),age char(4));
show create table tb_name;
# 修改表名
# 但凡英语好点的都知道,rename是重新命名的意思(re有重复的意思,name是名字的意思),这里用到了关键字alter table和rename to,old_tb是老的表名,new_tb是新表名的名字
alter table old_tb rename to new_tb;
# 查看表名是否已经改变
show tables; # 已经改名字了
# 改字段
alter table new_tb change column id new_id int;
# 修改字段类型
# 运用到新关键词modify,就是修改的意思,column是列的意思,所以这句话顾名思义就是在讲修改new_tb表格中的字段name的类型,修改成varchar类型,长度设置为10
# varchar(10) 字符 有多少就算多少 10个字节
# char(10) 没有10个会用空格补齐到10个
alter table new_tb modify column name varchar(10);
alter table new_tb add sex int;
# 删除 drop
# 删除字段
# 删除在new_tb表格里面的sex字段
alter table new_tb drop sex;
# 创建表格t1,包含int类型的id字段和float浮点型的qq字段,第一个数字 3
表示总共的有效数字数量,也就是整个数字(不包括小数点)的位数。第二个数字 3
指的是小数点后的位数。
#如 FLOAT(5,2)
,这里 5
代表总共的有效数字个数,2
代表小数点后的数字个数。因此一个例子可能是 999.99
。
create table t1(id int, qq float(3,3));
# 查看表结构
desc t1;
# 插入数据12321和0.22222
insert into t1 value(12321,0.22222);
# 这条语句创建了一个名为 qiye
的表,表中有一个名为 time
的列,数据类型为 timestamp
。如果没有指定默认值,timestamp
列的默认行为是在插入新记录时自动设置为当前时间。
create table qiye(time timestamp) #默认增加创建时间
# 这条语句将一条新记录插入到 qiye
表中。在此操作中,default
关键字会触发 MySQL 使用 time
列的默认值,即当前的时间戳。
insert into qiye values(default);
# 这条语句的效果与前一条语句相同。由于没有提供任何值,MySQL 将使用所有列的默认值。这对于 timestamp
类型的列,默认是当前时间。
insert qiye values(); # 也能直接增加
# 这条语句创建了一个名为 baye
的表,有两个列:id
和 time
。其中,id
列是整数类型,time
列是 timestamp
类型,且默认值设置为 current_timestamp
。这意味着如果没有为 time
列指定一个值,MySQL 将自动使用当前时间。
create table baye(id int,time timestamp default current_timestamp)
# 这条语句插入了一条新记录到 baye
表中,id
列的值设置为 1
,而 time
列使用默认值,即当前时间。使用 default
明确指明要使用列的默认值。
insert into baye(id,time) values(1,default);
# 这些内容,大多以记忆为主,主要是需要记住数据库已经表格的关键字已经用法,很少涉及到什么逻辑之类的内容(只有查询那块知识有一点逻辑相关的)
# 希望大家共同努力一起学习,如果里面有讲的有错误的地方,也希望大家指正!!!