首页 > 数据库 >6、Mysql操作数据库以及数据表

6、Mysql操作数据库以及数据表

时间:2023-07-31 21:48:02浏览次数:38  
标签:10 数据库 primary 数据表 innodb key Mysql id

学习sql规则,可以让mysql服务器帮咱们做其他操作

1、操作数据库(文件夹)

create database 数据库名 default charset utf8;

表示整个数据库是utf8的格式

 

use 数据库名;

使用这个数据库

 

查看数据库

show databases;

 

删除数据库

drop database 数据库名;

数据库没有修改这一说,如果你想修改,就删除数据库,再创建数据库

 

2、操作表(文件)

use 数据库名;

先进入数据库

 

show tables;

然后看这个数据库下有哪些表

 

创建表

create table 表名(列名1 数据类型,列名2 数据类型) engine=innodb default charset=utf8;

创建表的时候也需要给它设置编码,一般设置为utf8,我们还可以加上engine=innodb,表示引擎是innodb,innodb是支持出错后的回滚操作的,这叫事务,原子性操作,一旦中间任何位置出了差错,都要回滚到原来的状态。

mysql只有引擎是innodb的时候,才支持事务,咱们的程序一般情况下都是支持事务操作的,所以引擎就设置成innodb,如果我的网站不允许,不会出现这种事务性的操作,那你选什么引擎都可以,推荐选myisam,因为它相对于innodb来说,支持全局索引,相对来说存储的时候速度更快一点,但就是不支持事务。

引擎其实就是一段代码,如果是这个引擎,以这种方式,那个引擎以那种方式,相当于写了if else判断。

举个例子

create table t1(id int,name char(10)) default charset=utf8;

我们创建了一个表叫t1,用的utf8编码,这个表有2列

 int为数字类型,char是字符串类型,后面括号的10表示只能有10个字符,如果超过10个就只取前面10个,永远只占10个字符。 查看表 show tables;   create table t2(id int null,name char(10))engine=innodb default charset=utf8; 数据类型后面还可以加null,表示可以为空,这一列就不用插入数据,加not null表示不可以为空,不写默认不为空   insert into t2(id,name)values(1,"张三"); 我们正经插入一条数据   insert into t2(name)values("zhangsan"); 然后我们把id拿掉,只写name,是不是表示只给name这一列插数据呀,后面的值只写一个zhangsan,这样写也能插进去  

我们查询一下表里的数据   咱们在后面还可以加default,default 1表示默认是1,就是咱们不填值的时候帮咱们填的值 还有唯一标识,表示每个人的东西不能重复,所以可以加上auto_increment primary key,如果你加上它之后,这一列就会自增,就是从1开始,它每次都是加1,这一列你还不用给它插数据。 在mysql里,还有一个约束,如果你是自增的,就必须是个key,这个key称为索引。 和auto_increment搭配的是primary key primary key有2个作用: 1、表示约束,约束的条件是不能重复,且不能为空 如果有一列设置了primary key,就表示不能为空,也不能重复 2、加速查找 就是你查的时候会特别快,因为它会给你生成另外一个文件,另外一个文件会帮咱们去查找,在这只要知道它会查找就可以了,讲索引的时候会细说。 1个表里只能有一个自增列并且只能有1个主键,auto_increment和primary key还有绑定关系的,如果你设置了auto_increment,就必须得是primary key,不然就报错了 一般情况下,咱们只要是auto_increment都会给它设置成primary key的
create table t1(
  id int not null auto_increment primary key,
  name char(10)
)engine=innodb default charset=utf8;

上面这段sql表示创建1个表,表里有2列,一般我们让id自增的,它是个int类型,not null表示不允许为空,auto_increment表示它会自增,primary key表示它会约束,再加上一个加速查找,这个只对id这一列生效,跟其他列没有关系。

自增列按照上面这种写法,它作为这张表里每一行数据的唯一标识

 

清空表

delete from 表名;

表示清空这张表里的内容,下次再插入数据,它那个自增id是根据原来的继续往后走

 

truncate table 表名;(推荐)

这条命令清空表之后,再插入数据,我们查询看到是从1开始了

truncate比delete要快得多,数据量大的话会特别明显

 

删除表

drop table 表名;

 

3、操作表(文件)里的内容 查看表里的数据 select * from 表名; *表示所有的列   插入数据 insert into 表名(列名1,列名2) values(数字,"字符串"); 表示在表里往这2列插入数据

标签:10,数据库,primary,数据表,innodb,key,Mysql,id
From: https://www.cnblogs.com/z-x-y/p/17594548.html

相关文章

  • openGauss数据库常用操作命令
    1.以操作系统用户omm登录数据库主节点su-omm1.1启动服务分布式openGauss:gs_om-tstart启动服务gs_om-trestart重启服务集中式openGauss:gs_om-tstop关闭服务gs_om-tstart启动服务1.2使用“gs_om-tstatus–detail”命令查询openGauss各实例状......
  • Java面试题 P19:Redis篇:Redis做为缓存,mysql的数据如何与redis进行同步呢(双写一致)
    双写一致性:当修改了数据库的数据也要同时更新缓存的数据,缓存和数据库的数据要保持一致。     共享锁:读锁代码 排他锁,写数据。读锁和写锁的值要一致。   MQ异步消息通知:    ......
  • 脏读,不可重复读,幻读 ,mysql5.7以后默认隔离级别是什么?什么是qps,tps,并发量,pv,uv、什么是
    目录一、脏读,不可重复读,幻读,mysql5.7以后默认隔离级别是什么?脏读,不可重复读,幻读脏读不可重复读幻读mysql5.7以后默认隔离级别是什么二、什么是qps,tps,并发量,pv,uv三、什么是接口幂等性问题,如何解决?一、脏读,不可重复读,幻读,mysql5.7以后默认隔离级别是什么?程序访问数据库,往往是多......
  • pymysql的sql注入问题
     pymysql.SQL注入 今日内容概要python操作MySQLSQL注入问题修改表SQL语句补充视图、触发器、存储过程事务流程控制、函数python操作MySQLpython中支持操作MySQL的模块有很多,常用的是pymysql这是一个第三方模块,需要下载安装使用#python连接mysq......
  • MongoDB数据库的部署和应用
    推荐步骤:在Centos01上部署MongoDB服务器客户端登录验证在centos01的MongoDB配置文件通过配置文件控制MongoDB服务,配置MongoDB身份验证在centos01的MongoDB服务器配置身份验证管理和修改配置文件支持验证在centos01管理MongoDB管理数据,集合批量数据管理实验步骤创建管理MongoDB组和......
  • 数据库三大范式是什么、mysql有哪些索引类型,分别有什么作用、事务的特性和隔离级别
    目录1数据库三大范式是什么2mysql有哪些索引类型,分别有什么作用3事务的特性和隔离级别事务四大特性(ACID)隔离级别--->为了保证四个特性的隔离性而有的1数据库三大范式是什么-https://zhuanlan.zhihu.com/p/618012849-#第一范式:1NF是指数据库表的每一列都是不可分割 -每列......
  • 数据库三大范式&mysql的索引类型和作用&事务的特性和隔离级别
    数据库三大范式&mysql的索引类型和作用&事务的特性和隔离级别数据库三大范式第一范式#数据库表的每一列都是不可分割的基本数据-每列的值具有原子性,不可再分割-每个字段的值都只能是单一值举例:学籍信息不符合第一范式,可以继续分割第二范式#在第一范式的基础上-如果......
  • JDBC p5 数据库连接池
    数据库连接池传统获取Connection问题分析传统的JDBC数据库使用DriverManager来获取,每次向数据库建立连接的时候都要将Connection加载到内存中,再验证IP地址,用户名和密码(0.05~1s时间)。需要数据库连接的时候,就向数据库要求一个,频繁的进行数据库连接操作将占用很多的系统......
  • Nebula图数据库网络监控无法显示的问题
    背景:因公司使用的图数据是Nebula,在部署监控的过程发现无法获取网络监控的前端显示,原因是生产上有虚拟网络,而且不是以eth开头的,这个需要修改源码才能解决1.进入nebula-dashboard的前端修改界面cd/opt/nebula-dashboard/public2.打开main.1314ff9d9190129689ac.js修改device=~"(eth......
  • 从源码解读Mysql 5.7性能和数据安全性的提升
    下面我们从源码来分析mysql的事务提交以及事务在何时将binlog复制到从库的。MYSQL_BIN_LOG::ordered_commit,这个是事务在binlog阶段提交的核心函数,通过该函数,实现了事务日志写入binlog文件,以及触发dump线程将binlog发送到slave,在最后的步骤,将事务设置为提交状态。我们来分析MYSQL_B......