mysql库表操作

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);
 
# 这些内容,大多以记忆为主,主要是需要记住数据库已经表格的关键字已经用法,很少涉及到什么逻辑之类的内容(只有查询那块知识有一点逻辑相关的)
 
# 希望大家共同努力一起学习,如果里面有讲的有错误的地方,也希望大家指正!!!
 
 
上一个
环境安装
下一个
mysql查询操作
最近修改: 2024-08-14Powered by