前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL1--库表记录-引擎的操作

MySQL1--库表记录-引擎的操作

作者头像
以某
发布2023-03-07 14:36:28
3670
发布2023-03-07 14:36:28
举报
文章被收录于专栏:Jack96

文章目录

MySQL–库表记录-引擎的操作

关系型数据库,解决了数据的完整性,也解决导航问题,但是带来的是低效率.

NOSQL(非关系型数据库):MongoDB,Redis

Linux数据库的开启和连接

代码语言:javascript
复制
1.Ubuntu  :    service mysqld  start/ stop/ restart/ reload/  status
2.CentOS7 :    systemctl       stop/ start    mysqld
3.CentOS6 :    service mysqld  start/ stop/ restart/ reload/ status
4.Deepin  :    systemctl       stop /start    mysqld
代码语言:javascript
复制
语法:mysql -hloaclhost  -uroot -p123456 -P3306
1. -h : host(ip地址)   localhost = 127.0.0.1
2. -u : username(用户账户)
3. -p : password(密码)
4. -P : port(端口,默认端口3306)
代码语言:javascript
复制
#退出
1.exit
2.quit
3.\q

SQL语言

代码语言:javascript
复制
结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

关系型数据库

数据库

SQL类型

公司

access

SQL

微软

SQL-server

T-SQL

微软

Oracle

PL/SQL

甲骨文

MySQL

My/SQL

甲骨文

SQL-Lite

内嵌型小型数据库

移动前端用的比较多

思考题:

代码语言:javascript
复制
#已知SQL是标准的SQL,Oracle编写的PL/SQL能不能爱Mysql上运行?
答:可以

1. 库的操作:

代码语言:javascript
复制
show,use, alter, drop
创建数据库
代码语言:javascript
复制
create database [if not exists] `数据库名` charset=字符编码(utf8mb4);

1.如果多次创建会报错
2.字符编码不指定默认utf8mb4
3.给数据库命名一定要习惯性加上反引号,防止和关键字冲突
查看数据库
代码语言:javascript
复制
show databases;
  • 选择数据库
代码语言:javascript
复制
use  `数据库的名字`;
显示建库语句
代码语言:javascript
复制
show create database `数据库名`;
  • 修改数据库字符集
代码语言:javascript
复制
#只能修改字符集
alter database `数据库名`  charset=字符集;
删除数据库
代码语言:javascript
复制
drop database [if exists] `数据库的名字`;

2. 表的引擎

代码语言:javascript
复制
innodb 在 写的操作上非常的有优势(事物)  CUD全是写的操作  5%
mysql5.5以后默认的搜索引擎
1. 支持行级锁/表级锁
2. 支持事务
3. 支持外键(性能不好)
4. 并发性更好


myisam 在 读的操作上非常的有优势(健全的索引)  R操作      95%
1. 支持全文索引(innodb不支持)
2. 支持表级锁
3. 支持的数据量更大
4. 读取(查询)行性能更好

# 引擎的存储方式
myisam将一张表存储为三个文件
demo.frm  -> 表的结构
demo.MYD  -> 存储的是数据
demo.MYI  -> 存储的是表的索引
#myisam的文件可以任意的移动

innodb将一张表存储为两个文件
demo.frm  -> 表的结构+表的索引
demo.ibd  -> 存储的是数据
ibd存储是有限的,存储不足自动创建ibd1,ibd2
#innodb的文件创建在哪个数据库中,不认任意的移动

3. 表的操作

CDAS
代码语言:javascript
复制
CUAS操作:增删改查
C : create      创建表
D : drop        删除表
A : alter       修改表名及字段的增删改
S : desc        查询表结构
S : show create 查看创建表语句

less /etc/my.cnf
默认的存储路径
datadir = /data/mysql
表的创建:create
代码语言:javascript
复制
create table [if not exists] 表的名字(
	id int not null auto_increment primary key comment '主键',
    account char(255) comment '用户名' default 'admin',
    pwd varchar(65535) comment '密码' not null
)engine=myisam charset=utf8mb4;

#字符集如果不指定,默认继承库的字符集.
#engine 默认innodb 
删除表:drop
代码语言:javascript
复制
#删除表必须在数据库中进行删除
drop table [if exists] `表名`
修改表名及字段: alter
代码语言:javascript
复制
alter table : 表的名称修改,移动表,表字段的增删改
表:rename, rename to
字段:add,modify, change, drop


1.修改表的名称
alter table `old_name` rename `new_name`;

2.增加一个新的字段
alter table `table_name`  add `field_name` 数据类型 属性;

将某个字段添加在第一个位置
alter table `table_name`  add `field_name` 数据类型 属性      first;

添加在某一个字段之后
alter table `table_name`  add `field_name` 数据类型 属性 after 指定字段;

3.修改字段的属性
alter table `table_name` modify `字段名` 数据类型 属性;

4.修改字段的名称
alter table `表名` change `原字段名` `新的字段名` 数据类型 属性;

5.修改字段的位置
alter table `表名` change `原字段名` `新的字段名` 数据类型 after `指定字段`;

6.修改表的引擎
alter table `表名` engine = innodb|myisam;

7.移动表 到指定的数据库
alter table `表名`  rename to 数据库名.表名;

8.删除字段
alter table `表名` drop `字段名`;
显示建表结构
代码语言:javascript
复制
show create table `表的名字`\G

#另外一种方式,显示的是表的属性
desc `表名`;
describe `表名`;
  • 查看所有的表
代码语言:javascript
复制
#必须先选择数据库
show tables;
复制表
代码语言:javascript
复制
create table abc(
    id int primary key auto_increment comment '主键',
    username char(32) not null comment '账户',
    password char(32) not null comment '密码'
)engine=myisam;

insert into abc values(null,'admin',md5(123456)),(null,'admin1',md5(123456));
代码语言:javascript
复制
1.create table `表名` select * from `db_name.tb_name`;
特点:把数据给复制过来了,但是没有复制主键

2.create table `表名` like `db_name.tb_name`;
特点:复制所有表结构,但是不复制数据
#数据可以单独复制
insert into `表名` select * from `要被复制的表名`;

4. 表中数据的操作

ISUD
代码语言:javascript
复制
SQL:Structured Query Language: 结构化查询语言

数据插入:     insert into 
数据查询:     select * from `表名`;
数据值的更改:  update `test` set `name`='xu' where account=1;
数据值的删除:  delete from; truncate
insert(插入字段对应的数据)
代码语言:javascript
复制
#主键字段不用我们考虑
#not null 的字段,说明一定要输入数据

#一次插入一行
insert into `表名` set `字段`=值,`字段`=值;


#一次插入多行
insert into `表名`(字段1,字段2....)  values(值1,值2...),values(值1,值2...);

insert into `表名` values(null,值1,值2....),values(null,值1,值2....);
select(查询)
代码语言:javascript
复制
#*的位置一个结果集
#* 代表所有的字段名
select * from `表名`;
select 字段1,字段2 from `表名`;
update(更新字段对应的值)
代码语言:javascript
复制
#在更新的时候一定要加上where条件,只执行返回结果为True的语句

update `表名` set `字段名`=新值 where `字段名`=值;
update `test` set `name`='xu' where account=1;
# 多条件
update `表名` set `字段名`=值 where `字段`=值 and `字段`=值;

#if:将salary表中sex字段对应性别互换
update salary 
set sex=if(sex='female','male','female')
delete(删除整条数据)
代码语言:javascript
复制
#删除表中的所有数据
delete from `表名`;

#在删除的时候一定要加上where条件
#where相当于if条件,只执行返回结果为True的语句

delete from `表名` where `字段` = 值;

delete from `表名` where  `字段` in (1,2,3,4);


#一旦数据被删除,再次插入数据,自增长的列的记录值,从最大值的下一次开始.
#在开发中,真实数据是无价的,数据是不会被删除
#数据保留位置,是为了数据恢复准备的.


#删除表在重建=>清空表(在开发的时候会经常使用)
truncate `表名`

总结:根据英文单词对应的操作

代码语言:javascript
复制
查询语句顺序:
select 字段(结果集) from 表名(数据源) 
[where 条件] 
[group by 分组]
[having 条件]
[order by 排序 asc|desc]
[limit 限制 m,n];


show:
% : 匹配所有
show databases;
show tables;
show create table table_name;
show variables like 'character_%';
show variables like 'gen%';
show variables like 'autocommit';
show variables like 'log_output%';



use:
use database_name;


alter:
alter database db_name charset=uft8;

alter table `old_name` rename `new_name`;
alter table `tb_name` add `field_name` char(255) not null first/(after `field_name`);
alter table `tb_name` modify `field_name` int(16) not null;
alter table `tb_name` change `old_field_name` `new_field_name` ...;
alter table `tb_name` change `old_fname` `old_fname` char(255) not null after `field_name`;
alter table `tb_name` engine=innodb
alter table `tb_name` rename to new_dbname.tb_name;


drop
drop database db_name;
drop table tb_name;


create      
create database `db_name` charset=uft8;
create table `tb_name`(id ...)engine=myisam charset=utf8;
create table `tb_name` select * from db_name.tb_name;
create table `tb_name` like `db_name.tb_name`;
           instert into `tb_name` select * from `db_name.tb_name`;


desc       
desc tb_name;


insert into 
insert into `tb_name` set field_name=value1, ...;
insert into `tb_name`(f_name1, f_name2, null, ...) values(v1, v2, v3, ...);
instert into `tb_name` select * from `db_name.tb_name`;


select * from `tb_name`;
select db.* from tb \G ;
select version();        # 显示mysql版本
select now();            # 显示当前时间
select rand();           # 随机数
select unix_timestamp(); # 显示Unix时间戳
select @@tx_isolation;   # 查看隔离级别


set session transaction isolation level read commited;  # 设置隔离级别

update:
update `tb_name` set `field_name1`=new_value where f_name2=v2 and f_name3=v3; 
update `test` set `name`='xu' where account=1;


delete:
delete from tb_name;
delete from `tb_name` where `f_name`=value;
delete from `tb_name` where `f_name` in (f1, f2, f3, ...);
 
 
truncate `tb_name`;

set autocommit=1;
set global log_output='table';

start transaction;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • MySQL–库表记录-引擎的操作
  • Linux数据库的开启和连接
  • SQL语言
  • 关系型数据库
  • 1. 库的操作:
    • 创建数据库
      • 查看数据库
        • 显示建库语句
          • 删除数据库
          • 2. 表的引擎
          • 3. 表的操作
            • CDAS
              • 表的创建:create
                • 删除表:drop
                  • 修改表名及字段: alter
                    • 显示建表结构
                      • 复制表
                      • 4. 表中数据的操作
                        • ISUD
                          • insert(插入字段对应的数据)
                            • select(查询)
                              • update(更新字段对应的值)
                                • delete(删除整条数据)
                                • 总结:根据英文单词对应的操作
                                相关产品与服务
                                云数据库 SQL Server
                                腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档